2 Commits 7ea5187b14 ... 5b42556692

Author SHA1 Message Date
  liuqilin 5b42556692 完成批量调整 7 years ago
  liuqilin 001076d285 修复服装Bug 7 years ago
76 changed files with 17929 additions and 16043 deletions
  1. BIN
      .vs/Garden5_2017/v15/Server/sqlite3/storage.ide
  2. BIN
      .vs/Garden5_2017/v15/Server/sqlite3/storage.ide-shm
  3. BIN
      .vs/Garden5_2017/v15/Server/sqlite3/storage.ide-wal
  4. 0 0
      Assets/Resource/Animations/人物动画/stand_ske.json
  5. 0 0
      Assets/Resource/Animations/人物动画/stand_tex_0.json
  6. 0 0
      Assets/Resource/Animations/人物动画/stand_tex_1.json
  7. BIN
      Assets/Resource/Animations/人物动画/stand_texture_0.png
  8. 133 133
      Assets/Resource/Animations/人物动画/stand_texture_0.png.meta
  9. BIN
      Assets/Resource/Animations/人物动画/stand_texture_1.png
  10. 110 107
      Assets/Resource/Animations/人物动画/stand_texture_1.png.meta
  11. 2 0
      Assets/Resource/Prefab/Object/DebugMode.prefab
  12. 198 0
      Assets/Resource/Prefab/Object/Garden.prefab
  13. 102 2
      Assets/Resource/Prefab/Object/Tutorial.prefab
  14. 609 23
      Assets/Resource/Prefab/PrefabUI/Canvas.prefab
  15. 192 0
      Assets/Resource/Prefab/PrefabUI/MouseCloseItem.prefab
  16. 10 0
      Assets/Resource/Prefab/PrefabUI/MouseCloseItem.prefab.meta
  17. 81 0
      Assets/Resource/Prefab/PrefabUI/UIFlyGold.prefab
  18. 10 0
      Assets/Resource/Prefab/PrefabUI/UIFlyGold.prefab.meta
  19. 2 2
      Assets/Resource/Shader/DragonboneUGUIMat.mat
  20. 1 1
      Assets/Resource/Shader/GrayMat.mat
  21. 51 51
      Assets/Resource/XML/Config/ability_config.xml
  22. 137 137
      Assets/Resource/XML/Config/achieve_config.xml
  23. 18 18
      Assets/Resource/XML/Config/award_config.xml
  24. 15 7
      Assets/Resource/XML/Config/cost_config.xml
  25. 176 176
      Assets/Resource/XML/Config/dressRoom_config.xml
  26. 66 66
      Assets/Resource/XML/Config/flower_config.xml
  27. 18 18
      Assets/Resource/XML/Config/iap_config.xml
  28. 12 12
      Assets/Resource/XML/Config/lottery_config.xml
  29. 9 9
      Assets/Resource/XML/Config/minigame_config.xml
  30. 8 8
      Assets/Resource/XML/Config/offline_config.xml
  31. 33 33
      Assets/Resource/XML/Config/pack_config.xml
  32. 7 7
      Assets/Resource/XML/Config/plaza_room_config.xml
  33. 12 12
      Assets/Resource/XML/Config/robot_config.xml
  34. 30 30
      Assets/Resource/XML/Config/signin_config.xml
  35. 44 44
      Assets/Resource/XML/Config/skill_config.xml
  36. 12 12
      Assets/Resource/XML/Config/visit_config.xml
  37. 106 105
      Assets/Resource/XML/PlayerConfig.xml
  38. 8 1
      Assets/Resource/XML/lan/ChineseSimplified.xml
  39. 8 1
      Assets/Resource/XML/lan/ChineseTraditional.xml
  40. 8 1
      Assets/Resource/XML/lan/English.xml
  41. BIN
      Assets/Resource/Xlsx/cost_config.xlsx
  42. BIN
      Assets/Resource/Xlsx/language_config.xlsx
  43. BIN
      Assets/Resource/Xlsx/skill_config.xlsx
  44. 10 10
      Assets/Script/AssetBundleUtility/AssetBundleUtility.prefab
  45. 1161 1125
      Assets/Script/Label/CanvasLabel.cs
  46. 6 0
      Assets/Script/Label/LanguageLabel.cs
  47. 82 81
      Assets/Script/Label/PlayerConfigLabel.cs
  48. 154 153
      Assets/Script/Label/ResourceLabel.cs
  49. 86 0
      Assets/Script/Manage/CommentRewardManager.cs
  50. 13 0
      Assets/Script/Manage/CommentRewardManager.cs.meta
  51. 2122 2064
      Assets/Script/Manage/ConfigManager.cs
  52. 2 0
      Assets/Script/Manage/HttpManager.cs
  53. 562 550
      Assets/Script/Manage/Initializer.cs
  54. 1547 1538
      Assets/Script/Manage/Manager.cs
  55. 10 0
      Assets/Script/Manage/Panel.meta
  56. 83 0
      Assets/Script/Manage/Panel/ChangeMouseBubble.cs
  57. 13 0
      Assets/Script/Manage/Panel/ChangeMouseBubble.cs.meta
  58. 239 0
      Assets/Script/Manage/Panel/ChangeMousePanel.cs
  59. 13 0
      Assets/Script/Manage/Panel/ChangeMousePanel.cs.meta
  60. 37 0
      Assets/Script/Manage/Panel/EyeCloseItem.cs
  61. 13 0
      Assets/Script/Manage/Panel/EyeCloseItem.cs.meta
  62. 36 0
      Assets/Script/Manage/Panel/MouseCloseItem.cs
  63. 13 0
      Assets/Script/Manage/Panel/MouseCloseItem.cs.meta
  64. 286 286
      Assets/Script/Manage/PlayerManager.cs
  65. 713 713
      Assets/Script/Manage/SocialManager.cs
  66. 1702 1642
      Assets/Script/Manage/TutorialManager.cs
  67. 3918 3910
      Assets/Script/Manage/UIManager.cs
  68. 1204 1158
      Assets/Script/Manage/VisitManager.cs
  69. 14 8
      Assets/Script/Object/Player.cs
  70. 189 188
      Assets/Script/Social/FashionShowCommentPanel.cs
  71. 270 260
      Assets/Script/Tool/Anim/TweenVec.cs
  72. 4 145
      Assets/Script/Tool/Auxiliary.cs
  73. 1113 1113
      Assets/Script/Tool/Bundle.cs
  74. 58 55
      Assets/Script/Tool/SceneMask.cs
  75. 25 25
      Assets/Script/Tool/UI/HudTarget.cs
  76. 3 3
      ProjectSettings/ProjectSettings.asset

BIN
.vs/Garden5_2017/v15/Server/sqlite3/storage.ide


BIN
.vs/Garden5_2017/v15/Server/sqlite3/storage.ide-shm


BIN
.vs/Garden5_2017/v15/Server/sqlite3/storage.ide-wal


File diff suppressed because it is too large
+ 0 - 0
Assets/Resource/Animations/人物动画/stand_ske.json


File diff suppressed because it is too large
+ 0 - 0
Assets/Resource/Animations/人物动画/stand_tex_0.json


File diff suppressed because it is too large
+ 0 - 0
Assets/Resource/Animations/人物动画/stand_tex_1.json


BIN
Assets/Resource/Animations/人物动画/stand_texture_0.png


+ 133 - 133
Assets/Resource/Animations/人物动画/stand_texture_0.png.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 guid: c486bd2e1e577b24a86013546709abda
-timeCreated: 1524835651
+timeCreated: 1525401186
 licenseType: Pro
 TextureImporter:
   fileIDToRecycleName:
@@ -326,8 +326,8 @@ TextureImporter:
       name: "\u4E0A\u88631\u8896\u5B50\u53F3"
       rect:
         serializedVersion: 2
-        x: 554
-        y: 1736
+        x: 3358
+        y: 753
         width: 57
         height: 56
       alignment: 0
@@ -365,20 +365,6 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u88D9\u5B501"
-      rect:
-        serializedVersion: 2
-        x: 3427
-        y: 2660
-        width: 212
-        height: 142
-      alignment: 0
-      pivot: {x: 0, y: 0}
-      border: {x: 0, y: 0, z: 0, w: 0}
-      outline: []
-      physicsShape: []
-      tessellationDetail: -1
-    - serializedVersion: 2
       name: "\u5DE6\u624B\u770B\u6E05\u5DE6\u624B\u4F60\u7684\u5DE6\u624B\uFF01\uFF01"
       rect:
         serializedVersion: 2
@@ -491,13 +477,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u5634\u5DF42"
+      name: "\u88D9\u5B503"
       rect:
         serializedVersion: 2
-        x: 554
-        y: 1699
-        width: 56
-        height: 35
+        x: 3427
+        y: 2660
+        width: 212
+        height: 142
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -505,7 +491,7 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u5634\u5DF43"
+      name: "\u5634\u5DF42"
       rect:
         serializedVersion: 2
         x: 4016
@@ -519,13 +505,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u978B\u5B502"
+      name: "\u5634\u5DF43"
       rect:
         serializedVersion: 2
-        x: 4025
-        y: 407
-        width: 66
-        height: 134
+        x: 554
+        y: 1699
+        width: 56
+        height: 35
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -533,11 +519,11 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u978B\u5B503"
+      name: "\u978B\u5B502"
       rect:
         serializedVersion: 2
         x: 480
-        y: 1017
+        y: 1425
         width: 66
         height: 134
       alignment: 0
@@ -579,7 +565,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 3427
-        y: 2804
+        y: 2948
         width: 212
         height: 142
       alignment: 0
@@ -606,8 +592,8 @@ TextureImporter:
       name: "\u5934\u53D14\uFF08\u84DD\u8272\uFF09"
       rect:
         serializedVersion: 2
-        x: 1530
-        y: 2849
+        x: 2373
+        y: 3437
         width: 572
         height: 657
       alignment: 0
@@ -620,8 +606,8 @@ TextureImporter:
       name: "\u5934\u53D14\uFF08\u7EFF\u8272\uFF09"
       rect:
         serializedVersion: 2
-        x: 2373
-        y: 3437
+        x: 1530
+        y: 2849
         width: 572
         height: 657
       alignment: 0
@@ -648,8 +634,8 @@ TextureImporter:
       name: "\u5934\u53D15\uFF08\u7EA2\u8272\uFF09"
       rect:
         serializedVersion: 2
-        x: 2
-        y: 2365
+        x: 2815
+        y: 2584
         width: 610
         height: 506
       alignment: 0
@@ -662,8 +648,8 @@ TextureImporter:
       name: "\u5934\u53D15\uFF08\u9EC4\u8272\uFF09"
       rect:
         serializedVersion: 2
-        x: 2815
-        y: 2584
+        x: 2
+        y: 2365
         width: 610
         height: 506
       alignment: 0
@@ -676,8 +662,8 @@ TextureImporter:
       name: "\u5934\u53D16+\u4E0B\uFF08\u68D5\uFF09"
       rect:
         serializedVersion: 2
-        x: 2104
-        y: 2163
+        x: 3658
+        y: 3324
         width: 382
         height: 770
       alignment: 0
@@ -690,8 +676,8 @@ TextureImporter:
       name: "\u5934\u53D16+\u4E0A\uFF08\u68D5\uFF09"
       rect:
         serializedVersion: 2
-        x: 3227
-        y: 2102
+        x: 3464
+        y: 752
         width: 449
         height: 448
       alignment: 0
@@ -704,8 +690,8 @@ TextureImporter:
       name: "\u5934\u53D16+\u4E0B\uFF08\u7EFF\uFF09"
       rect:
         serializedVersion: 2
-        x: 3658
-        y: 3324
+        x: 1364
+        y: 1418
         width: 382
         height: 770
       alignment: 0
@@ -719,7 +705,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 3227
-        y: 1652
+        y: 2102
         width: 449
         height: 448
       alignment: 0
@@ -732,8 +718,8 @@ TextureImporter:
       name: "\u5934\u53D16+\u4E0B\uFF08\u9EC4\uFF09"
       rect:
         serializedVersion: 2
-        x: 3658
-        y: 2552
+        x: 2104
+        y: 2163
         width: 382
         height: 770
       alignment: 0
@@ -747,7 +733,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 3464
-        y: 752
+        y: 1202
         width: 449
         height: 448
       alignment: 0
@@ -760,8 +746,8 @@ TextureImporter:
       name: "\u5934\u53D16+\u4E0B\uFF08\u7C89\uFF09"
       rect:
         serializedVersion: 2
-        x: 1364
-        y: 1418
+        x: 3658
+        y: 2552
         width: 382
         height: 770
       alignment: 0
@@ -774,8 +760,8 @@ TextureImporter:
       name: "\u5934\u53D16+\u4E0A\uFF08\u7C89\uFF09"
       rect:
         serializedVersion: 2
-        x: 3464
-        y: 1202
+        x: 3227
+        y: 1652
         width: 449
         height: 448
       alignment: 0
@@ -788,8 +774,8 @@ TextureImporter:
       name: "\u5934\u53D17(\u6A59)"
       rect:
         serializedVersion: 2
-        x: 1722
-        y: 3508
+        x: 2
+        y: 2873
         width: 649
         height: 586
       alignment: 0
@@ -802,8 +788,8 @@ TextureImporter:
       name: "\u5934\u53D17(\u7C73\u767D)"
       rect:
         serializedVersion: 2
-        x: 2
-        y: 2873
+        x: 1722
+        y: 3508
         width: 649
         height: 586
       alignment: 0
@@ -830,8 +816,8 @@ TextureImporter:
       name: "\u5934\u53D18(\u7C89)"
       rect:
         serializedVersion: 2
-        x: 653
-        y: 2030
+        x: 2104
+        y: 2935
         width: 709
         height: 500
       alignment: 0
@@ -858,8 +844,8 @@ TextureImporter:
       name: "\u5934\u53D18(\u7EFF)"
       rect:
         serializedVersion: 2
-        x: 2104
-        y: 2935
+        x: 653
+        y: 2030
         width: 709
         height: 500
       alignment: 0
@@ -929,7 +915,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 1128
-        y: 32
+        y: 458
         width: 548
         height: 424
       alignment: 0
@@ -942,8 +928,8 @@ TextureImporter:
       name: "\u8111\u58F32+\u4E0B\uFF08\u68D5\u8272\uFF09\u53E6\u4E00\u79CD\u53D1\u578B"
       rect:
         serializedVersion: 2
-        x: 2
-        y: 789
+        x: 1364
+        y: 884
         width: 476
         height: 532
       alignment: 0
@@ -956,8 +942,8 @@ TextureImporter:
       name: "\u8111\u58F32+\u4E0B\uFF08\u7C89\u8272\uFF09\u53E6\u4E00\u79CD\u53D1\u578B"
       rect:
         serializedVersion: 2
-        x: 614
-        y: 962
+        x: 2
+        y: 1323
         width: 476
         height: 532
       alignment: 0
@@ -971,7 +957,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 614
-        y: 1496
+        y: 962
         width: 476
         height: 532
       alignment: 0
@@ -984,8 +970,8 @@ TextureImporter:
       name: "\u8111\u58F33+\u4E0B\uFF08\u7C89\u8272\uFF09"
       rect:
         serializedVersion: 2
-        x: 2
-        y: 1323
+        x: 614
+        y: 1496
         width: 476
         height: 532
       alignment: 0
@@ -995,13 +981,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u8111\u58F33+\u4E0A\uFF08\u7C89\u8272\uFF09"
+      name: "\u8111\u58F33+\u4E0B\uFF08\u7D2B\u8272\uFF09"
       rect:
         serializedVersion: 2
-        x: 3579
-        y: 364
-        width: 444
-        height: 386
+        x: 2
+        y: 789
+        width: 476
+        height: 532
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -1009,13 +995,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u8111\u58F33+\u4E0B\uFF08\u7D2B\u8272\uFF09"
+      name: "\u8111\u58F33+\u4E0A\uFF08\u7D2B\u8272\uFF09"
       rect:
         serializedVersion: 2
-        x: 1364
-        y: 884
-        width: 476
-        height: 532
+        x: 2228
+        y: 14
+        width: 444
+        height: 386
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -1023,11 +1009,11 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u8111\u58F33+\u4E0A\uFF08\u7D2B\u8272\uFF09"
+      name: "\u8111\u58F33+\u4E0A\uFF08\u9EC4\u8272\uFF09"
       rect:
         serializedVersion: 2
-        x: 2228
-        y: 14
+        x: 3579
+        y: 364
         width: 444
         height: 386
       alignment: 0
@@ -1107,7 +1093,7 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: 9
+      name: 10
       rect:
         serializedVersion: 2
         x: 4025
@@ -1121,7 +1107,7 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: 10
+      name: 11
       rect:
         serializedVersion: 2
         x: 480
@@ -1135,11 +1121,11 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: 11
+      name: 12
       rect:
         serializedVersion: 2
         x: 480
-        y: 1425
+        y: 1289
         width: 66
         height: 134
       alignment: 0
@@ -1195,7 +1181,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 3915
-        y: 1324
+        y: 1502
         width: 171
         height: 176
       alignment: 0
@@ -1247,13 +1233,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u4E0A\u886310"
+      name: "\u4E0A\u886313"
       rect:
         serializedVersion: 2
-        x: 3915
-        y: 864
-        width: 179
-        height: 144
+        x: 1364
+        y: 2205
+        width: 124
+        height: 162
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -1261,13 +1247,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u4E0A\u886313"
+      name: "\u4E0A\u886310\uFF08\u9EC4\uFF09"
       rect:
         serializedVersion: 2
-        x: 1364
-        y: 2205
-        width: 124
-        height: 162
+        x: 3915
+        y: 864
+        width: 179
+        height: 144
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -1306,7 +1292,7 @@ TextureImporter:
       name: "\u4E0A\u886312\u8896\u5B50\u5DE6"
       rect:
         serializedVersion: 2
-        x: 3495
+        x: 3563
         y: 2592
         width: 66
         height: 66
@@ -1320,7 +1306,7 @@ TextureImporter:
       name: "\u4E0A\u886312\u8896\u5B50\u53F3"
       rect:
         serializedVersion: 2
-        x: 1254
+        x: 1191
         y: 929
         width: 61
         height: 61
@@ -1349,7 +1335,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 548
-        y: 1195
+        y: 1258
         width: 61
         height: 61
       alignment: 0
@@ -1362,8 +1348,8 @@ TextureImporter:
       name: "\u4E0A\u886313\u8896\u5B50\u5DE6"
       rect:
         serializedVersion: 2
-        x: 3427
-        y: 2592
+        x: 3998
+        y: 32
         width: 66
         height: 66
       alignment: 0
@@ -1376,8 +1362,8 @@ TextureImporter:
       name: "\u4E0A\u886313\u8896\u5B50\u53F3"
       rect:
         serializedVersion: 2
-        x: 548
-        y: 1321
+        x: 1128
+        y: 929
         width: 61
         height: 61
       alignment: 0
@@ -1404,8 +1390,8 @@ TextureImporter:
       name: "\u4E0A\u88632\u8896\u5B50\u53F3"
       rect:
         serializedVersion: 2
-        x: 3358
-        y: 753
+        x: 554
+        y: 1736
         width: 57
         height: 56
       alignment: 0
@@ -1418,8 +1404,8 @@ TextureImporter:
       name: "\u4E0A\u88636\u8896\u5B50\u5DE6"
       rect:
         serializedVersion: 2
-        x: 3998
-        y: 32
+        x: 3495
+        y: 2592
         width: 66
         height: 66
       alignment: 0
@@ -1432,7 +1418,7 @@ TextureImporter:
       name: "\u4E0A\u88636\u8896\u5B50\u53F3"
       rect:
         serializedVersion: 2
-        x: 1191
+        x: 1254
         y: 929
         width: 61
         height: 61
@@ -1446,8 +1432,8 @@ TextureImporter:
       name: "\u4E0A\u88637\u8896\u5B50\u5DE6"
       rect:
         serializedVersion: 2
-        x: 3563
-        y: 2592
+        x: 653
+        y: 3082
         width: 66
         height: 66
       alignment: 0
@@ -1461,7 +1447,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 548
-        y: 1258
+        y: 1321
         width: 61
         height: 61
       alignment: 0
@@ -1474,8 +1460,8 @@ TextureImporter:
       name: "\u4E0A\u88637\u7C89\u8896\u5B50\u53F3"
       rect:
         serializedVersion: 2
-        x: 1128
-        y: 929
+        x: 548
+        y: 1195
         width: 61
         height: 61
       alignment: 0
@@ -1488,8 +1474,8 @@ TextureImporter:
       name: "\u4E0A\u88637\u7C89\u8896\u5B50\u5DE6"
       rect:
         serializedVersion: 2
-        x: 653
-        y: 3082
+        x: 3427
+        y: 2592
         width: 66
         height: 66
       alignment: 0
@@ -1628,8 +1614,8 @@ TextureImporter:
       name: "\u5934\u53D19-\u84DD"
       rect:
         serializedVersion: 2
-        x: 3015
-        y: 811
+        x: 2228
+        y: 402
         width: 447
         height: 457
       alignment: 0
@@ -1726,8 +1712,8 @@ TextureImporter:
       name: "\u5934\u53D19-\u7C89"
       rect:
         serializedVersion: 2
-        x: 2228
-        y: 402
+        x: 3015
+        y: 811
         width: 447
         height: 457
       alignment: 0
@@ -1765,11 +1751,11 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u978B\u5B5014b"
+      name: "\u978B\u5B5014c"
       rect:
         serializedVersion: 2
         x: 480
-        y: 1289
+        y: 1017
         width: 66
         height: 134
       alignment: 0
@@ -1824,8 +1810,8 @@ TextureImporter:
       name: "\u5934\u53D110(\u7D2B)"
       rect:
         serializedVersion: 2
-        x: 2
-        y: 303
+        x: 1842
+        y: 1284
         width: 444
         height: 484
       alignment: 0
@@ -1950,7 +1936,7 @@ TextureImporter:
       name: "\u4E0A\u886314b-\u8896\u5B502"
       rect:
         serializedVersion: 2
-        x: 721
+        x: 785
         y: 3086
         width: 62
         height: 62
@@ -1978,7 +1964,7 @@ TextureImporter:
       name: "\u4E0A\u886314c-\u8896\u5B502"
       rect:
         serializedVersion: 2
-        x: 785
+        x: 721
         y: 3086
         width: 62
         height: 62
@@ -1992,8 +1978,8 @@ TextureImporter:
       name: "\u5934\u53D110(\u68D5)"
       rect:
         serializedVersion: 2
-        x: 1842
-        y: 1284
+        x: 2
+        y: 303
         width: 444
         height: 484
       alignment: 0
@@ -2077,7 +2063,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 1128
-        y: 458
+        y: 32
         width: 548
         height: 424
       alignment: 0
@@ -2091,7 +2077,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 3427
-        y: 2948
+        y: 2804
         width: 212
         height: 142
       alignment: 0
@@ -2105,7 +2091,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 3915
-        y: 1502
+        y: 1324
         width: 171
         height: 176
       alignment: 0
@@ -2115,6 +2101,20 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
+      name: "\u978B\u5B50-\u7F3A\u5931"
+      rect:
+        serializedVersion: 2
+        x: 480
+        y: 1153
+        width: 66
+        height: 134
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: -1
+    - serializedVersion: 2
       name: "\u4E0A\u886314"
       rect:
         serializedVersion: 2
@@ -2230,8 +2230,8 @@ TextureImporter:
       name: "\u978B\u5B5018"
       rect:
         serializedVersion: 2
-        x: 480
-        y: 1153
+        x: 4025
+        y: 407
         width: 66
         height: 134
       alignment: 0

BIN
Assets/Resource/Animations/人物动画/stand_texture_1.png


+ 110 - 107
Assets/Resource/Animations/人物动画/stand_texture_1.png.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 guid: c0256ea9e745dc544ae7035b55f87b84
-timeCreated: 1524835661
+timeCreated: 1525401202
 licenseType: Pro
 TextureImporter:
   fileIDToRecycleName:
@@ -119,6 +119,9 @@ TextureImporter:
     21300224: "\u5934\u53D117-3"
     21300226: "\u8111\u58F33+\u4E0A\uFF08\u9EC4\u8272\uFF09"
     21300228: "\u5934\u53D117-2\u540E"
+    21300230: "\u88D9\u5B50-\u7F3A\u5931"
+    21300232: "\u5934\u53D117-1"
+    21300234: "\u8111\u58F33+\u4E0A\uFF08\u7C89\u8272\uFF09"
   externalObjects: {}
   serializedVersion: 4
   mipmaps:
@@ -220,11 +223,25 @@ TextureImporter:
     serializedVersion: 2
     sprites:
     - serializedVersion: 2
+      name: "\u88D9\u5B501"
+      rect:
+        serializedVersion: 2
+        x: 2679
+        y: 3296
+        width: 212
+        height: 142
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: -1
+    - serializedVersion: 2
       name: "\u978B\u5B5015-1_2"
       rect:
         serializedVersion: 2
-        x: 1593
-        y: 2817
+        x: 1022
+        y: 2814
         width: 66
         height: 134
       alignment: 0
@@ -237,8 +254,8 @@ TextureImporter:
       name: "\u978B\u5B5015-2_1"
       rect:
         serializedVersion: 2
-        x: 1942
-        y: 2926
+        x: 648
+        y: 2857
         width: 66
         height: 134
       alignment: 0
@@ -265,8 +282,8 @@ TextureImporter:
       name: "\u4E0A\u88631"
       rect:
         serializedVersion: 2
-        x: 1608
-        y: 2953
+        x: 2042
+        y: 2960
         width: 165
         height: 111
       alignment: 0
@@ -279,8 +296,8 @@ TextureImporter:
       name: 2
       rect:
         serializedVersion: 2
-        x: 648
-        y: 2721
+        x: 1942
+        y: 2926
         width: 66
         height: 134
       alignment: 0
@@ -293,8 +310,8 @@ TextureImporter:
       name: "\u978B\u5B501"
       rect:
         serializedVersion: 2
-        x: 1729
-        y: 2813
+        x: 4015
+        y: 3072
         width: 66
         height: 134
       alignment: 0
@@ -307,8 +324,8 @@ TextureImporter:
       name: "\u4E0A\u88632"
       rect:
         serializedVersion: 2
-        x: 2042
-        y: 2960
+        x: 1775
+        y: 2949
         width: 165
         height: 111
       alignment: 0
@@ -321,8 +338,8 @@ TextureImporter:
       name: "\u4E0A\u88633"
       rect:
         serializedVersion: 2
-        x: 1426
-        y: 2848
+        x: 1608
+        y: 2953
         width: 165
         height: 111
       alignment: 0
@@ -346,13 +363,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u88D9\u5B503"
+      name: "\u978B\u5B503"
       rect:
         serializedVersion: 2
-        x: 2679
-        y: 3296
-        width: 212
-        height: 142
+        x: 3335
+        y: 3044
+        width: 66
+        height: 134
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -360,7 +377,7 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u8111\u58F33+\u4E0A\uFF08\u9EC4\u8272\uFF09"
+      name: "\u8111\u58F33+\u4E0A\uFF08\u7C89\u8272\uFF09"
       rect:
         serializedVersion: 2
         x: 2
@@ -461,8 +478,8 @@ TextureImporter:
       name: "\u88D9\u5B504"
       rect:
         serializedVersion: 2
-        x: 2893
-        y: 3296
+        x: 2408
+        y: 3289
         width: 203
         height: 142
       alignment: 0
@@ -475,8 +492,8 @@ TextureImporter:
       name: "\u88D9\u5B505"
       rect:
         serializedVersion: 2
-        x: 2408
-        y: 3289
+        x: 2893
+        y: 3296
         width: 203
         height: 142
       alignment: 0
@@ -559,8 +576,8 @@ TextureImporter:
       name: 3
       rect:
         serializedVersion: 2
-        x: 1022
-        y: 2950
+        x: 3997
+        y: 3247
         width: 66
         height: 134
       alignment: 0
@@ -573,8 +590,8 @@ TextureImporter:
       name: 4
       rect:
         serializedVersion: 2
-        x: 1022
-        y: 2814
+        x: 3572
+        y: 3165
         width: 66
         height: 134
       alignment: 0
@@ -601,8 +618,8 @@ TextureImporter:
       name: 6
       rect:
         serializedVersion: 2
-        x: 1865
-        y: 2813
+        x: 1593
+        y: 2817
         width: 66
         height: 134
       alignment: 0
@@ -615,8 +632,8 @@ TextureImporter:
       name: 7
       rect:
         serializedVersion: 2
-        x: 3335
-        y: 3044
+        x: 1729
+        y: 2813
         width: 66
         height: 134
       alignment: 0
@@ -629,8 +646,8 @@ TextureImporter:
       name: 8
       rect:
         serializedVersion: 2
-        x: 648
-        y: 2857
+        x: 1661
+        y: 2681
         width: 66
         height: 134
       alignment: 0
@@ -640,11 +657,11 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: 12
+      name: 9
       rect:
         serializedVersion: 2
-        x: 1182
-        y: 3562
+        x: 1797
+        y: 2813
         width: 66
         height: 134
       alignment: 0
@@ -658,7 +675,7 @@ TextureImporter:
       rect:
         serializedVersion: 2
         x: 1182
-        y: 3426
+        y: 3562
         width: 66
         height: 134
       alignment: 0
@@ -699,8 +716,8 @@ TextureImporter:
       name: "\u5934\u99709"
       rect:
         serializedVersion: 2
-        x: 390
-        y: 2993
+        x: 794
+        y: 3086
         width: 351
         height: 307
       alignment: 0
@@ -713,8 +730,8 @@ TextureImporter:
       name: "\u5934\u997010"
       rect:
         serializedVersion: 2
-        x: 794
-        y: 3086
+        x: 390
+        y: 2993
         width: 351
         height: 307
       alignment: 0
@@ -741,8 +758,8 @@ TextureImporter:
       name: "\u4E0A\u88636"
       rect:
         serializedVersion: 2
-        x: 2879
-        y: 3068
+        x: 2237
+        y: 3053
         width: 180
         height: 111
       alignment: 0
@@ -755,8 +772,8 @@ TextureImporter:
       name: "\u4E0A\u88637"
       rect:
         serializedVersion: 2
-        x: 2055
-        y: 3073
+        x: 2419
+        y: 3053
         width: 180
         height: 111
       alignment: 0
@@ -780,13 +797,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u4E0A\u886311"
+      name: "\u4E0A\u886310"
       rect:
         serializedVersion: 2
-        x: 2408
-        y: 3166
-        width: 186
-        height: 121
+        x: 1874
+        y: 3178
+        width: 179
+        height: 144
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -794,13 +811,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u4E0A\u886312"
+      name: "\u4E0A\u886311"
       rect:
         serializedVersion: 2
-        x: 2419
-        y: 3053
-        width: 180
-        height: 111
+        x: 2679
+        y: 3460
+        width: 186
+        height: 121
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -808,13 +825,13 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u4E0A\u886310\uFF08\u9EC4\uFF09"
+      name: "\u4E0A\u886312"
       rect:
         serializedVersion: 2
-        x: 1874
-        y: 3178
-        width: 179
-        height: 144
+        x: 2879
+        y: 3068
+        width: 180
+        height: 111
       alignment: 0
       pivot: {x: 0, y: 0}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -825,8 +842,8 @@ TextureImporter:
       name: "\u4E0A\u886311(\u7C89)"
       rect:
         serializedVersion: 2
-        x: 2679
-        y: 3460
+        x: 2408
+        y: 3166
         width: 186
         height: 121
       alignment: 0
@@ -853,8 +870,8 @@ TextureImporter:
       name: "\u4E0A\u88637\uFF08\u7C89\uFF09"
       rect:
         serializedVersion: 2
-        x: 2237
-        y: 3053
+        x: 2055
+        y: 3073
         width: 180
         height: 111
       alignment: 0
@@ -979,8 +996,8 @@ TextureImporter:
       name: "\u978B\u5B5014-1"
       rect:
         serializedVersion: 2
-        x: 1797
-        y: 2813
+        x: 3997
+        y: 3383
         width: 66
         height: 134
       alignment: 0
@@ -993,8 +1010,8 @@ TextureImporter:
       name: "\u978B\u5B5015-1"
       rect:
         serializedVersion: 2
-        x: 4015
-        y: 3072
+        x: 1865
+        y: 2813
         width: 66
         height: 134
       alignment: 0
@@ -1007,8 +1024,8 @@ TextureImporter:
       name: "\u978B\u5B5015-2"
       rect:
         serializedVersion: 2
-        x: 3997
-        y: 3247
+        x: 648
+        y: 2721
         width: 66
         height: 134
       alignment: 0
@@ -1035,8 +1052,8 @@ TextureImporter:
       name: "\u4E0B\u886314b\u8774\u8776\u7ED3"
       rect:
         serializedVersion: 2
-        x: 3417
-        y: 3301
+        x: 3682
+        y: 3208
         width: 263
         height: 137
       alignment: 0
@@ -1063,8 +1080,8 @@ TextureImporter:
       name: "\u4E0B\u886314c\u8774\u8776\u7ED3"
       rect:
         serializedVersion: 2
-        x: 3682
-        y: 3208
+        x: 3417
+        y: 3301
         width: 263
         height: 137
       alignment: 0
@@ -1091,8 +1108,8 @@ TextureImporter:
       name: "\u978B\u5B5014a"
       rect:
         serializedVersion: 2
-        x: 1661
-        y: 2681
+        x: 1022
+        y: 2950
         width: 66
         height: 134
       alignment: 0
@@ -1102,11 +1119,11 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u978B\u5B5014c"
+      name: "\u978B\u5B5014b"
       rect:
         serializedVersion: 2
-        x: 3997
-        y: 3383
+        x: 1182
+        y: 3426
         width: 66
         height: 134
       alignment: 0
@@ -1217,8 +1234,8 @@ TextureImporter:
       name: "\u65B0\u978B\u5B5016"
       rect:
         serializedVersion: 2
-        x: 3572
-        y: 3165
+        x: 1661
+        y: 2817
         width: 66
         height: 134
       alignment: 0
@@ -1245,8 +1262,8 @@ TextureImporter:
       name: "\u4E0A\u8863-\u7F3A\u5931"
       rect:
         serializedVersion: 2
-        x: 1775
-        y: 2949
+        x: 1426
+        y: 2848
         width: 165
         height: 111
       alignment: 0
@@ -1256,20 +1273,6 @@ TextureImporter:
       physicsShape: []
       tessellationDetail: -1
     - serializedVersion: 2
-      name: "\u978B\u5B50-\u7F3A\u5931"
-      rect:
-        serializedVersion: 2
-        x: 1661
-        y: 2817
-        width: 66
-        height: 134
-      alignment: 0
-      pivot: {x: 0, y: 0}
-      border: {x: 0, y: 0, z: 0, w: 0}
-      outline: []
-      physicsShape: []
-      tessellationDetail: -1
-    - serializedVersion: 2
       name: "\u4E0B\u886314"
       rect:
         serializedVersion: 2
@@ -1301,8 +1304,8 @@ TextureImporter:
       name: "\u5934\u53D117-1\u540E"
       rect:
         serializedVersion: 2
-        x: 425
-        y: 3302
+        x: 1703
+        y: 3324
         width: 367
         height: 394
       alignment: 0
@@ -1315,8 +1318,8 @@ TextureImporter:
       name: "\u5934\u53D117-1_1"
       rect:
         serializedVersion: 2
-        x: 2
-        y: 3310
+        x: 871
+        y: 3698
         width: 421
         height: 396
       alignment: 0
@@ -1343,8 +1346,8 @@ TextureImporter:
       name: "\u5934\u53D117-2\u540E"
       rect:
         serializedVersion: 2
-        x: 1703
-        y: 3324
+        x: 425
+        y: 3302
         width: 367
         height: 394
       alignment: 0
@@ -1371,8 +1374,8 @@ TextureImporter:
       name: "\u5934\u53D117-3"
       rect:
         serializedVersion: 2
-        x: 871
-        y: 3698
+        x: 2
+        y: 3310
         width: 421
         height: 396
       alignment: 0

+ 2 - 0
Assets/Resource/Prefab/Object/DebugMode.prefab

@@ -161,6 +161,8 @@ MonoBehaviour:
   - {fileID: 1173200693923306, guid: 3cbac8864a3ca4a4fbee23187ed8b18d, type: 2}
   - {fileID: 1523257016453190, guid: 4267e2a622c30f343b2a61c510f2afbb, type: 2}
   - {fileID: 1736686314392062, guid: d1a1d9de169ce7748bd63fdc38eb4f9b, type: 2}
+  - {fileID: 1559384439776738, guid: f73ef7b72254f574b83ae55b248d5d63, type: 2}
+  - {fileID: 1312818161542146, guid: f8e3f7c7d79a28745b5e7015b85a6407, type: 2}
   AtlasList:
   - {fileID: 21300004, guid: b31bbacb2e0ff3d459f4878983a39b50, type: 3}
   - {fileID: 21300006, guid: b31bbacb2e0ff3d459f4878983a39b50, type: 3}

+ 198 - 0
Assets/Resource/Prefab/Object/Garden.prefab

@@ -385,6 +385,21 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!1 &1606339575310926
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224526022893638850}
+  m_Layer: 5
+  m_Name: UIFlyGoldPos
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
 --- !u!1 &1612795935123952
 GameObject:
   m_ObjectHideFlags: 1
@@ -778,6 +793,7 @@ Transform:
   m_Children:
   - {fileID: 4008559618325982}
   - {fileID: 4576759688754552}
+  - {fileID: 224526022893638850}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1200,9 +1216,20 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 15.114285, y: 10.785714}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 15.12, y: 10.8}
+  m_EdgeRadius: 0
 --- !u!95 &95656197025045548
 Animator:
   serializedVersion: 3
@@ -1229,6 +1256,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1244,17 +1272,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 1fa36d506663581428d79677d65831ba, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212095036317392974
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1264,6 +1300,7 @@ SpriteRenderer:
   m_Enabled: 0
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1279,17 +1316,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 0f3e3eeea807f624094c4ec12bed1cc7, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212185477215766394
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1299,6 +1344,7 @@ SpriteRenderer:
   m_Enabled: 0
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1314,17 +1360,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: e8b64131e9364da43a1355c81da8ba16, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212297538244440076
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1334,6 +1388,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1349,17 +1404,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 1d48b7dbff4e9544f8f515b8853663d7, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212306657225187814
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1369,6 +1432,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1384,17 +1448,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 0}
   m_Color: {r: 1, g: 1, b: 1, a: 0}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 0
+  m_MaskInteraction: 0
 --- !u!212 &212309050241798670
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1404,6 +1476,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1419,17 +1492,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 4324bacd5b14e004da78e4bc8983d4f9, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212319376484865296
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1439,6 +1520,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1454,17 +1536,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: a32314b9bd4a082478ff8d1ad9a5c0ed, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212354945701907106
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1474,6 +1564,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1489,17 +1580,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: a7c224cfc73846c4f872c063adc586b2, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212394763641946984
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1509,6 +1608,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1524,17 +1624,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 70c3c26b0d699b447a93c31f311fc6f0, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212537051338820940
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1544,6 +1652,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1559,17 +1668,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 70c3c26b0d699b447a93c31f311fc6f0, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212548306413466646
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1579,6 +1696,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1594,17 +1712,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 835b8b4c0a7b71a4d9ac0f6aca9fb9f0, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212678618548551084
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1614,6 +1740,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1629,17 +1756,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 771441d8180f85841913a3e43b69db70, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212704068213746162
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1649,6 +1784,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1664,17 +1800,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 70c3c26b0d699b447a93c31f311fc6f0, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212760045093916298
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1684,6 +1828,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1699,17 +1844,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 0}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 0
+  m_MaskInteraction: 0
 --- !u!212 &212768922091164368
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1719,6 +1872,7 @@ SpriteRenderer:
   m_Enabled: 0
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1734,17 +1888,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: c7d5126aad641e84c80dcc1465fc8099, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212779788271210252
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1754,6 +1916,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1769,17 +1932,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: f53fd937a56c897499953ea605e80b40, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212800766242443178
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -1789,6 +1960,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -1804,14 +1976,40 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 79b5132a50620a84bb48bfe072f3819d, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+--- !u!224 &224526022893638850
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1606339575310926}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 2.25, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_Children: []
+  m_Father: {fileID: 4257060777002720}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 2.25}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}

+ 102 - 2
Assets/Resource/Prefab/Object/Tutorial.prefab

@@ -176,7 +176,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1766945874161584}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 0, y: -0.049999952, z: -5}
+  m_LocalPosition: {x: 0, y: -0.049999952, z: -10}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
   - {fileID: 4623297893201200}
@@ -292,9 +292,20 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0.00000011920929}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 6.9499993, y: 7.683333}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 6.5, y: 7.69}
+  m_EdgeRadius: 0
 --- !u!61 &61049781784132804
 BoxCollider2D:
   m_ObjectHideFlags: 1
@@ -306,23 +317,45 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0.00000011920929}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 6.9499993, y: 7.683333}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 6.5, y: 7.69}
+  m_EdgeRadius: 0
 --- !u!61 &61099977475492946
 BoxCollider2D:
   m_ObjectHideFlags: 1
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1766945874161584}
-  m_Enabled: 1
+  m_Enabled: 0
   m_Density: 1
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0, y: 0}
+    oldSize: {x: 0, y: 0}
+    newSize: {x: 0, y: 0}
+    adaptiveTilingThreshold: 0
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 20, y: 12}
+  m_EdgeRadius: 0
 --- !u!61 &61264148295984334
 BoxCollider2D:
   m_ObjectHideFlags: 1
@@ -334,9 +367,20 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0, y: 0}
+    oldSize: {x: 0, y: 0}
+    newSize: {x: 0, y: 0}
+    adaptiveTilingThreshold: 0
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 1, y: 1}
+  m_EdgeRadius: 0
 --- !u!61 &61572162505445090
 BoxCollider2D:
   m_ObjectHideFlags: 1
@@ -348,9 +392,20 @@ BoxCollider2D:
   m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_UsedByEffector: 0
+  m_UsedByComposite: 0
   m_Offset: {x: 0, y: 0.00000011920929}
+  m_SpriteTilingProperty:
+    border: {x: 0, y: 0, z: 0, w: 0}
+    pivot: {x: 0.5, y: 0.5}
+    oldSize: {x: 6.9499993, y: 7.683333}
+    newSize: {x: 1, y: 1}
+    adaptiveTilingThreshold: 0.5
+    drawMode: 0
+    adaptiveTiling: 0
+  m_AutoTiling: 0
   serializedVersion: 2
   m_Size: {x: 6.5, y: 7.69}
+  m_EdgeRadius: 0
 --- !u!212 &212165519778928714
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -360,6 +415,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -375,17 +431,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: c908138147baba04c85352056094f108, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0.8235294}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212568885060939064
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -395,6 +459,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -410,17 +475,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: c908138147baba04c85352056094f108, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0.8235294}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212591545104655128
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -430,6 +503,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -445,17 +519,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: c908138147baba04c85352056094f108, type: 3}
   m_Color: {r: 1, g: 1, b: 1, a: 0.8235294}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
 --- !u!212 &212599308390594212
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -465,6 +547,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -480,17 +563,25 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 0}
   m_Color: {r: 0, g: 0, b: 0, a: 1}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 0
+  m_MaskInteraction: 0
 --- !u!212 &212652995293248826
 SpriteRenderer:
   m_ObjectHideFlags: 1
@@ -500,6 +591,7 @@ SpriteRenderer:
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
   m_MotionVectors: 1
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 0
@@ -515,14 +607,22 @@ SpriteRenderer:
   m_PreserveUVs: 0
   m_IgnoreNormalsForChartDetection: 0
   m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
   m_SelectedEditorRenderState: 0
   m_MinimumChartSize: 4
   m_AutoUVMaxDistance: 0.5
   m_AutoUVMaxAngle: 89
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 0
+  m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: e4b9c6a4105e96345a144d5439198512, type: 3}
   m_Color: {r: 0, g: 0, b: 0, a: 0.7058824}
   m_FlipX: 0
   m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0

File diff suppressed because it is too large
+ 609 - 23
Assets/Resource/Prefab/PrefabUI/Canvas.prefab


+ 192 - 0
Assets/Resource/Prefab/PrefabUI/MouseCloseItem.prefab

@@ -0,0 +1,192 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+  m_ObjectHideFlags: 1
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications: []
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 0}
+  m_RootGameObject: {fileID: 1559384439776738}
+  m_IsPrefabParent: 1
+--- !u!1 &1559384439776738
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224451398661898108}
+  - component: {fileID: 222332960584945598}
+  - component: {fileID: 114795514948131156}
+  - component: {fileID: 114437920074334876}
+  m_Layer: 5
+  m_Name: MouseCloseItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1801938898403454
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224236438488272980}
+  - component: {fileID: 222383622626086382}
+  - component: {fileID: 114504935980382334}
+  m_Layer: 5
+  m_Name: Icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &114437920074334876
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1559384439776738}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 114795514948131156}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
+      Culture=neutral, PublicKeyToken=null
+--- !u!114 &114504935980382334
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1801938898403454}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+--- !u!114 &114795514948131156
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1559384439776738}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 21300000, guid: 539ac228823be0f43baa8723377703e3, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+--- !u!222 &222332960584945598
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1559384439776738}
+--- !u!222 &222383622626086382
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1801938898403454}
+--- !u!224 &224236438488272980
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1801938898403454}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 224451398661898108}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 56.81, y: 56.81}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224451398661898108
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1559384439776738}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 224236438488272980}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}

+ 10 - 0
Assets/Resource/Prefab/PrefabUI/MouseCloseItem.prefab.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f73ef7b72254f574b83ae55b248d5d63
+timeCreated: 1525663246
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 100100000
+  userData: 
+  assetBundleName: ui
+  assetBundleVariant: 

+ 81 - 0
Assets/Resource/Prefab/PrefabUI/UIFlyGold.prefab

@@ -0,0 +1,81 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+  m_ObjectHideFlags: 1
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications: []
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 0}
+  m_RootGameObject: {fileID: 1312818161542146}
+  m_IsPrefabParent: 1
+--- !u!1 &1312818161542146
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224619927066263744}
+  - component: {fileID: 222152920009496550}
+  - component: {fileID: 114086464273619404}
+  m_Layer: 5
+  m_Name: UIFlyGold
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &114086464273619404
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1312818161542146}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 21300000, guid: 95463847f23b0ac40a1ad2b0866ab7b1, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+--- !u!222 &222152920009496550
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1312818161542146}
+--- !u!224 &224619927066263744
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1312818161542146}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}

+ 10 - 0
Assets/Resource/Prefab/PrefabUI/UIFlyGold.prefab.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f8e3f7c7d79a28745b5e7015b85a6407
+timeCreated: 1525684778
+licenseType: Pro
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 100100000
+  userData: 
+  assetBundleName: ui
+  assetBundleVariant: 

+ 2 - 2
Assets/Resource/Shader/DragonboneUGUIMat.mat

@@ -8,7 +8,7 @@ Material:
   m_PrefabInternal: {fileID: 0}
   m_Name: DragonboneUGUIMat
   m_Shader: {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
-  m_ShaderKeywords: UNITY_UI_CLIP_RECT _EMISSION
+  m_ShaderKeywords: _EMISSION
   m_LightmapFlags: 1
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
@@ -39,7 +39,7 @@ Material:
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MainTex:
-        m_Texture: {fileID: 2800000, guid: c0256ea9e745dc544ae7035b55f87b84, type: 3}
+        m_Texture: {fileID: 2800000, guid: c486bd2e1e577b24a86013546709abda, type: 3}
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MetallicGlossMap:

+ 1 - 1
Assets/Resource/Shader/GrayMat.mat

@@ -8,7 +8,7 @@ Material:
   m_PrefabInternal: {fileID: 0}
   m_Name: GrayMat
   m_Shader: {fileID: 4800000, guid: ac390d8200b91bd419e2d7b9e580d07d, type: 3}
-  m_ShaderKeywords: UNITY_UI_CLIP_RECT _EMISSION
+  m_ShaderKeywords: _EMISSION
   m_LightmapFlags: 1
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0

+ 51 - 51
Assets/Resource/XML/Config/ability_config.xml

@@ -1,114 +1,114 @@
-<data>
-  <item id="1" name="花园" class="1" class_id="1" coin_person="5" person="1" skill_cd="" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="5" unlock_pos="" upgrade_cur="1" upgrade_amnt="800" upgrade_fml="a*1.07" upgrade_plus="0.5%" upgrade_person="1.7%" upgrade_cd="" desc="每人次收入 金币[&amp;coin_person&amp;][lv],每分钟来访[&amp;person&amp;*60][lv]人" icon="红-公园" anim="" label="" />
-  <item id="2" name="缤纷彩虹" class="1" class_id="5" coin_person="" person="5%" skill_cd="" unlock_lv="5" unlock_ahead_cur="2" unlock_ahead_delta="1" unlock_ahead_minimun="200" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="150" upgrade_fml="a" upgrade_plus="" upgrade_person="5%" upgrade_cd="" desc="每分钟增加[&amp;person&amp;*60][lv]人参观,永久有效" icon="红-彩虹" anim="Item,GardenRainbow" label="" />
-  <item id="3" name="玉树樱花" class="1" class_id="6" coin_person="5%" person="" skill_cd="" unlock_lv="35" unlock_ahead_cur="2" unlock_ahead_delta="1" unlock_ahead_minimun="300" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="150" upgrade_fml="a" upgrade_plus="5%" upgrade_person="" upgrade_cd="" desc="每人次收入提升[&amp;coin_person&amp;][lv],永久有效" icon="红-樱花树" anim="Item,GardenRightTree,GardenLeftTree" label="" />
-  <item id="4" name="滴哩哩的小黄鹂" class="1" class_id="7" coin_person="" person="" skill_cd="5%" unlock_lv="110" unlock_ahead_cur="2" unlock_ahead_delta="1" unlock_ahead_minimun="500" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_cd="5%" desc="技能冷却时间减少[&amp;skill_cd&amp;][lv],永久有效" icon="红-黄鹂鸟" anim="Item,BirdPivot" label="" />
-  <item id="5" name="黄色小蜜蜂" class="2" class_id="1" coin_person="2.07" person="" skill_cd="" unlock_lv="2" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="1" upgrade_amnt="1600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-黄色蜜蜂" anim="Elf,Bee_Yellow" label="" />
-  <item id="6" name="紫色小蜜蜂" class="2" class_id="2" coin_person="2.96" person="" skill_cd="" unlock_lv="10" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="1600" unlock_pos="1" upgrade_cur="1" upgrade_amnt="3200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-紫色蜜蜂" anim="Elf,Bee_Purple" label="" />
-  <item id="7" name="蓝色小蜜蜂" class="2" class_id="3" coin_person="5.34" person="" skill_cd="" unlock_lv="30" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="3200" unlock_pos="1" upgrade_cur="1" upgrade_amnt="6400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-蓝色蜜蜂" anim="Elf,Bee_Blue" label="" />
-  <item id="8" name="红色小蜜蜂" class="2" class_id="4" coin_person="18.2" person="" skill_cd="" unlock_lv="80" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="6400" unlock_pos="1" upgrade_cur="1" upgrade_amnt="12800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-红色蜜蜂" anim="Elf,Bee_Red" label="" />
-  <item id="9" name="白色小蜜蜂" class="2" class_id="5" coin_person="49.05" person="" skill_cd="" unlock_lv="120" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="12800" unlock_pos="1" upgrade_cur="1" upgrade_amnt="25600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-白色蜜蜂" anim="Elf,Bee_White" label="" />
-  <item id="10" name="黄色小蝴蝶" class="2" class_id="6" coin_person="3.68" person="" skill_cd="" unlock_lv="20" unlock_ahead_cur="2" unlock_ahead_delta="5" unlock_ahead_minimun="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="12800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-黄蝴蝶" anim="Elf,Butterfly_Yellow" label="" />
-  <item id="11" name="紫色小蝴蝶" class="2" class_id="7" coin_person="8.27" person="" skill_cd="" unlock_lv="50" unlock_ahead_cur="2" unlock_ahead_delta="5" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="12800" unlock_pos="1" upgrade_cur="1" upgrade_amnt="25600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-紫蝴蝶" anim="Elf,Butterfly_Purple" label="" />
-  <item id="12" name="蓝色小蝴蝶" class="2" class_id="8" coin_person="28.17" person="" skill_cd="" unlock_lv="100" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="25600" unlock_pos="1" upgrade_cur="1" upgrade_amnt="51200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-蓝蝴蝶" anim="Elf,Butterfly_Blue" label="" />
-  <item id="13" name="红色小蝴蝶" class="2" class_id="9" coin_person="117.53" person="" skill_cd="" unlock_lv="160" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="51200" unlock_pos="1" upgrade_cur="1" upgrade_amnt="102400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-红蝴蝶" anim="Elf,Butterfly_Red" label="" />
-  <item id="14" name="白色小蝴蝶" class="2" class_id="10" coin_person="620.69" person="" skill_cd="" unlock_lv="220" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="102400" unlock_pos="1" upgrade_cur="1" upgrade_amnt="204800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-白蝴蝶" anim="Elf,Butterfly_White" label="" />
-  <item id="15" name="黄色蜻蜓" class="2" class_id="11" coin_person="19.81" person="" skill_cd="" unlock_lv="90" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="102400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓5" anim="Elf,Dragonfly_Yellow" label="" />
-  <item id="16" name="紫色蜻蜓" class="2" class_id="12" coin_person="67.49" person="" skill_cd="" unlock_lv="140" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="102400" unlock_pos="1" upgrade_cur="1" upgrade_amnt="204800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓2" anim="Elf,Dragonfly_Purple" label="" />
-  <item id="17" name="蓝色蜻蜓" class="2" class_id="13" coin_person="249.95" person="" skill_cd="" unlock_lv="190" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="204800" unlock_pos="1" upgrade_cur="1" upgrade_amnt="409600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓1" anim="Elf,Dragonfly_Blue" label="" />
-  <item id="18" name="红色蜻蜓" class="2" class_id="14" coin_person="1061.02" person="" skill_cd="" unlock_lv="240" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="409600" unlock_pos="1" upgrade_cur="1" upgrade_amnt="819200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓4" anim="Elf,Dragonfly_Red" label="" />
-  <item id="19" name="白色蜻蜓" class="2" class_id="15" coin_person="7622.18" person="" skill_cd="" unlock_lv="310" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="819200" unlock_pos="1" upgrade_cur="1" upgrade_amnt="1638400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓" anim="Elf,Dragonfly_White" label="" />
-  <item id="20" name="黄色金龟子" class="2" class_id="16" coin_person="54.25" person="" skill_cd="" unlock_lv="130" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="819200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫1" anim="Elf,Beetle_Yellow" label="" />
-  <item id="21" name="紫色金龟子" class="2" class_id="17" coin_person="326.79" person="" skill_cd="" unlock_lv="200" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="819200" unlock_pos="1" upgrade_cur="1" upgrade_amnt="1638400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫4" anim="Elf,Beetle_Purple" label="" />
-  <item id="22" name="蓝色金龟子" class="2" class_id="18" coin_person="2371.34" person="" skill_cd="" unlock_lv="270" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="1638400" unlock_pos="1" upgrade_cur="1" upgrade_amnt="3276800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫2" anim="Elf,Beetle_Blue" label="" />
-  <item id="23" name="红色金龟子" class="2" class_id="19" coin_person="17035.26" person="" skill_cd="" unlock_lv="340" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="3276800" unlock_pos="1" upgrade_cur="1" upgrade_amnt="6553600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫" anim="Elf,Beetle_Red" label="" />
-  <item id="24" name="白色金龟子" class="2" class_id="20" coin_person="121366.87" person="" skill_cd="" unlock_lv="410" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="6553600" unlock_pos="1" upgrade_cur="1" upgrade_amnt="13107200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫3" anim="Elf,Beetle_White" label="" />
-  <comment>
+<data>
+  <item id="1" name="花园" class="1" class_id="1" coin_person="5" person="1" skill_cd="" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="5" unlock_pos="" upgrade_cur="1" upgrade_amnt="800" upgrade_fml="a*1.07" upgrade_plus="0.5%" upgrade_person="1.7%" upgrade_cd="" desc="每人次收入 金币[&amp;coin_person&amp;][lv],每分钟来访[&amp;person&amp;*60][lv]人" icon="红-公园" anim="" label="" />
+  <item id="2" name="缤纷彩虹" class="1" class_id="5" coin_person="" person="5%" skill_cd="" unlock_lv="5" unlock_ahead_cur="2" unlock_ahead_delta="1" unlock_ahead_minimun="200" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="150" upgrade_fml="a" upgrade_plus="" upgrade_person="5%" upgrade_cd="" desc="每分钟增加[&amp;person&amp;*60][lv]人参观,永久有效" icon="红-彩虹" anim="Item,GardenRainbow" label="" />
+  <item id="3" name="玉树樱花" class="1" class_id="6" coin_person="5%" person="" skill_cd="" unlock_lv="35" unlock_ahead_cur="2" unlock_ahead_delta="1" unlock_ahead_minimun="300" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="150" upgrade_fml="a" upgrade_plus="5%" upgrade_person="" upgrade_cd="" desc="每人次收入提升[&amp;coin_person&amp;][lv],永久有效" icon="红-樱花树" anim="Item,GardenRightTree,GardenLeftTree" label="" />
+  <item id="4" name="滴哩哩的小黄鹂" class="1" class_id="7" coin_person="" person="" skill_cd="5%" unlock_lv="110" unlock_ahead_cur="2" unlock_ahead_delta="1" unlock_ahead_minimun="500" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_cd="5%" desc="技能冷却时间减少[&amp;skill_cd&amp;][lv],永久有效" icon="红-黄鹂鸟" anim="Item,BirdPivot" label="" />
+  <item id="5" name="黄色小蜜蜂" class="2" class_id="1" coin_person="2.07" person="" skill_cd="" unlock_lv="2" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="1" upgrade_amnt="1600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-黄色蜜蜂" anim="Elf,Bee_Yellow" label="" />
+  <item id="6" name="紫色小蜜蜂" class="2" class_id="2" coin_person="2.96" person="" skill_cd="" unlock_lv="10" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="1600" unlock_pos="1" upgrade_cur="1" upgrade_amnt="3200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-紫色蜜蜂" anim="Elf,Bee_Purple" label="" />
+  <item id="7" name="蓝色小蜜蜂" class="2" class_id="3" coin_person="5.34" person="" skill_cd="" unlock_lv="30" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="3200" unlock_pos="1" upgrade_cur="1" upgrade_amnt="6400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-蓝色蜜蜂" anim="Elf,Bee_Blue" label="" />
+  <item id="8" name="红色小蜜蜂" class="2" class_id="4" coin_person="18.2" person="" skill_cd="" unlock_lv="80" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="6400" unlock_pos="1" upgrade_cur="1" upgrade_amnt="12800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-红色蜜蜂" anim="Elf,Bee_Red" label="" />
+  <item id="9" name="白色小蜜蜂" class="2" class_id="5" coin_person="49.05" person="" skill_cd="" unlock_lv="120" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="12800" unlock_pos="1" upgrade_cur="1" upgrade_amnt="25600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-白色蜜蜂" anim="Elf,Bee_White" label="" />
+  <item id="10" name="黄色小蝴蝶" class="2" class_id="6" coin_person="3.68" person="" skill_cd="" unlock_lv="20" unlock_ahead_cur="2" unlock_ahead_delta="5" unlock_ahead_minimun="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="12800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-黄蝴蝶" anim="Elf,Butterfly_Yellow" label="" />
+  <item id="11" name="紫色小蝴蝶" class="2" class_id="7" coin_person="8.27" person="" skill_cd="" unlock_lv="50" unlock_ahead_cur="2" unlock_ahead_delta="5" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="12800" unlock_pos="1" upgrade_cur="1" upgrade_amnt="25600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-紫蝴蝶" anim="Elf,Butterfly_Purple" label="" />
+  <item id="12" name="蓝色小蝴蝶" class="2" class_id="8" coin_person="28.17" person="" skill_cd="" unlock_lv="100" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="25600" unlock_pos="1" upgrade_cur="1" upgrade_amnt="51200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-蓝蝴蝶" anim="Elf,Butterfly_Blue" label="" />
+  <item id="13" name="红色小蝴蝶" class="2" class_id="9" coin_person="117.53" person="" skill_cd="" unlock_lv="160" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="51200" unlock_pos="1" upgrade_cur="1" upgrade_amnt="102400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-红蝴蝶" anim="Elf,Butterfly_Red" label="" />
+  <item id="14" name="白色小蝴蝶" class="2" class_id="10" coin_person="620.69" person="" skill_cd="" unlock_lv="220" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="102400" unlock_pos="1" upgrade_cur="1" upgrade_amnt="204800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-白蝴蝶" anim="Elf,Butterfly_White" label="" />
+  <item id="15" name="黄色蜻蜓" class="2" class_id="11" coin_person="19.81" person="" skill_cd="" unlock_lv="90" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="102400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓5" anim="Elf,Dragonfly_Yellow" label="" />
+  <item id="16" name="紫色蜻蜓" class="2" class_id="12" coin_person="67.49" person="" skill_cd="" unlock_lv="140" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="102400" unlock_pos="1" upgrade_cur="1" upgrade_amnt="204800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓2" anim="Elf,Dragonfly_Purple" label="" />
+  <item id="17" name="蓝色蜻蜓" class="2" class_id="13" coin_person="249.95" person="" skill_cd="" unlock_lv="190" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="204800" unlock_pos="1" upgrade_cur="1" upgrade_amnt="409600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓1" anim="Elf,Dragonfly_Blue" label="" />
+  <item id="18" name="红色蜻蜓" class="2" class_id="14" coin_person="1061.02" person="" skill_cd="" unlock_lv="240" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="409600" unlock_pos="1" upgrade_cur="1" upgrade_amnt="819200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓4" anim="Elf,Dragonfly_Red" label="" />
+  <item id="19" name="白色蜻蜓" class="2" class_id="15" coin_person="7622.18" person="" skill_cd="" unlock_lv="310" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="819200" unlock_pos="1" upgrade_cur="1" upgrade_amnt="1638400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="蜻蜓" anim="Elf,Dragonfly_White" label="" />
+  <item id="20" name="黄色金龟子" class="2" class_id="16" coin_person="54.25" person="" skill_cd="" unlock_lv="130" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="819200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫1" anim="Elf,Beetle_Yellow" label="" />
+  <item id="21" name="紫色金龟子" class="2" class_id="17" coin_person="326.79" person="" skill_cd="" unlock_lv="200" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="819200" unlock_pos="1" upgrade_cur="1" upgrade_amnt="1638400" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫4" anim="Elf,Beetle_Purple" label="" />
+  <item id="22" name="蓝色金龟子" class="2" class_id="18" coin_person="2371.34" person="" skill_cd="" unlock_lv="270" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="1638400" unlock_pos="1" upgrade_cur="1" upgrade_amnt="3276800" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫2" anim="Elf,Beetle_Blue" label="" />
+  <item id="23" name="红色金龟子" class="2" class_id="19" coin_person="17035.26" person="" skill_cd="" unlock_lv="340" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="3276800" unlock_pos="1" upgrade_cur="1" upgrade_amnt="6553600" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫" anim="Elf,Beetle_Red" label="" />
+  <item id="24" name="白色金龟子" class="2" class_id="20" coin_person="121366.87" person="" skill_cd="" unlock_lv="410" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="1" unlock_amnt="6553600" unlock_pos="1" upgrade_cur="1" upgrade_amnt="13107200" upgrade_fml="a*1.07" upgrade_plus="2%" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="瓢虫3" anim="Elf,Beetle_White" label="" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <name>
 名称
-</name>
+</name>
     <class>
 所属类别
-</class>
+</class>
     <class_id>
 所属
 类别序号
-</class_id>
+</class_id>
     <coin_person>
 每人次收入
 基础值
-</coin_person>
+</coin_person>
     <person>
 每秒参观数
 基础值
-</person>
+</person>
     <skill_cd>
 技能冷却
-</skill_cd>
+</skill_cd>
     <unlock_lv>
 解锁等级
-</unlock_lv>
+</unlock_lv>
     <unlock_ahead_cur>
 提前解锁
 消耗货币
-</unlock_ahead_cur>
+</unlock_ahead_cur>
     <unlock_ahead_delta>
 提前解锁每一级增加值
-</unlock_ahead_delta>
+</unlock_ahead_delta>
     <unlock_ahead_minimun>
 提前解锁
 消耗最小值
-</unlock_ahead_minimun>
+</unlock_ahead_minimun>
     <unlock_cur>
 解锁
 消耗货币
-</unlock_cur>
+</unlock_cur>
     <unlock_amnt>
 解锁
 消耗数值
-</unlock_amnt>
+</unlock_amnt>
     <unlock_pos>
 解锁
 开启位置数
-</unlock_pos>
+</unlock_pos>
     <upgrade_cur>
 升级
 消耗货币
-</upgrade_cur>
+</upgrade_cur>
     <upgrade_amnt>
 升级
 消耗基础值
-</upgrade_amnt>
+</upgrade_amnt>
     <upgrade_fml>
 升级
 消耗公式
-</upgrade_fml>
+</upgrade_fml>
     <upgrade_plus>
 升级
 收入加成
-</upgrade_plus>
+</upgrade_plus>
     <upgrade_person>
 升级
 参观数加成
-</upgrade_person>
+</upgrade_person>
     <upgrade_cd>
 升级
 冷却加成
-</upgrade_cd>
+</upgrade_cd>
     <desc>
 描述
-</desc>
+</desc>
     <icon>
 图标
-</icon>
+</icon>
     <anim>
 场景物件
-</anim>
+</anim>
     <label>
 标签
-</label>
-  </comment>
+</label>
+  </comment>
 </data>

+ 137 - 137
Assets/Resource/XML/Config/achieve_config.xml

@@ -1,162 +1,162 @@
-<data>
-  <item id="1" index="1" name="美丽花园-1" desc="花园等级达到 30" type="1" value="15" parent="" del="1" diamond_once="15" coin_person="" person="" icon="红-公园" />
-  <item id="2" index="1" name="美丽花园-2" desc="花园等级达到 50" type="1" value="30" parent="1" del="1" diamond_once="20" coin_person="" person="" icon="红-公园" />
-  <item id="3" index="1" name="美丽花园-3" desc="花园等级达到 100" type="1" value="50" parent="2" del="1" diamond_once="35" coin_person="" person="" icon="红-公园" />
-  <item id="4" index="1" name="美丽花园-4" desc="花园等级达到 200" type="1" value="100" parent="3" del="1" diamond_once="50" coin_person="" person="" icon="红-公园" />
-  <item id="5" index="1" name="美丽花园-5" desc="花园等级达到 300" type="1" value="250" parent="4" del="1" diamond_once="65" coin_person="" person="" icon="红-公园" />
-  <item id="6" index="1" name="美丽花园-6" desc="花园等级达到 400" type="1" value="400" parent="5" del="0" diamond_once="80" coin_person="" person="" icon="红-公园" />
-  <item id="21" index="2" name="鼓鼓的钱包-1" desc="拥有1000金币" type="2" value="3000" parent="" del="1" diamond_once="10" coin_person="" person="" icon="绿-免费金币" />
-  <item id="22" index="2" name="鼓鼓的钱包-2" desc="拥有2000金币" type="2" value="50000" parent="21" del="1" diamond_once="15" coin_person="" person="" icon="绿-免费金币" />
-  <item id="23" index="2" name="鼓鼓的钱包-3" desc="拥有3000金币" type="2" value="1000000" parent="22" del="1" diamond_once="20" coin_person="" person="" icon="绿-免费金币" />
-  <item id="24" index="2" name="鼓鼓的钱包-4" desc="拥有5000金币" type="2" value="100000000" parent="23" del="1" diamond_once="25" coin_person="" person="" icon="绿-免费金币" />
-  <item id="25" index="2" name="鼓鼓的钱包-5" desc="拥有8000金币" type="2" value="5000000000" parent="24" del="1" diamond_once="40" coin_person="" person="" icon="绿-免费金币" />
-  <item id="26" index="2" name="鼓鼓的钱包-6" desc="拥有10000金币" type="2" value="50000000000" parent="25" del="0" diamond_once="50" coin_person="" person="" icon="绿-免费金币" />
-  <item id="41" index="3" name="精明的商人-1" desc="总共获取3000金币" type="3" value="10000" parent="" del="1" diamond_once="15" coin_person="" person="" icon="4大技能2" />
-  <item id="42" index="3" name="精明的商人-2" desc="总共获取8000金币" type="3" value="100000000" parent="41" del="1" diamond_once="20" coin_person="" person="" icon="4大技能2" />
-  <item id="43" index="3" name="精明的商人-3" desc="总共获取15000金币" type="3" value="10000000000" parent="42" del="1" diamond_once="35" coin_person="" person="" icon="4大技能2" />
-  <item id="44" index="3" name="精明的商人-4" desc="总共获取30000金币" type="3" value="5000000000000" parent="43" del="1" diamond_once="50" coin_person="" person="" icon="4大技能2" />
-  <item id="45" index="3" name="精明的商人-5" desc="总共获取50000金币" type="3" value="500000000000000" parent="44" del="1" diamond_once="65" coin_person="" person="" icon="4大技能2" />
-  <item id="46" index="3" name="精明的商人-6" desc="总共获取80000金币" type="3" value="5E+16" parent="45" del="0" diamond_once="80" coin_person="" person="" icon="4大技能2" />
-  <item id="61" index="4" name="花仙子-1" desc="所有精灵等级总和达到10级" type="4" value="10" parent="" del="1" diamond_once="15" coin_person="" person="" icon="蓝-高级包" />
-  <item id="62" index="4" name="花仙子-2" desc="所有精灵等级总和达到50级" type="4" value="30" parent="61" del="1" diamond_once="20" coin_person="" person="" icon="蓝-高级包" />
-  <item id="63" index="4" name="花仙子-3" desc="所有精灵等级总和达到100级" type="4" value="50" parent="62" del="1" diamond_once="35" coin_person="" person="" icon="蓝-高级包" />
-  <item id="64" index="4" name="花仙子-4" desc="所有精灵等级总和达到180级" type="4" value="100" parent="63" del="1" diamond_once="50" coin_person="" person="" icon="蓝-高级包" />
-  <item id="65" index="4" name="花仙子-5" desc="所有精灵等级总和达到400级" type="4" value="500" parent="64" del="1" diamond_once="65" coin_person="" person="" icon="蓝-高级包" />
-  <item id="66" index="4" name="花仙子-6" desc="所有精灵等级总和达到800级" type="4" value="1000" parent="65" del="0" diamond_once="80" coin_person="" person="" icon="蓝-高级包" />
-  <item id="81" index="5" name="百花争艳-1" desc="花朵数量达到1" type="5" value="1" parent="" del="1" diamond_once="10" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="82" index="5" name="百花争艳-2" desc="花朵数量达到3" type="5" value="3" parent="81" del="1" diamond_once="15" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="83" index="5" name="百花争艳-3" desc="花朵数量达到5" type="5" value="5" parent="82" del="1" diamond_once="20" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="84" index="5" name="百花争艳-4" desc="花朵数量达到10" type="5" value="10" parent="83" del="1" diamond_once="25" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="85" index="5" name="百花争艳-5" desc="花朵数量达到20" type="5" value="20" parent="84" del="1" diamond_once="40" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="86" index="5" name="百花争艳-6" desc="花朵数量达到40" type="5" value="40" parent="85" del="0" diamond_once="50" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="101" index="6" name="人山人海-1" desc="参观人次总数达到500" type="6" value="1000" parent="" del="1" diamond_once="10" coin_person="" person="" icon="4大技能1" />
-  <item id="102" index="6" name="人山人海-2" desc="参观人次总数达到2000" type="6" value="5000000" parent="101" del="1" diamond_once="15" coin_person="" person="" icon="4大技能1" />
-  <item id="103" index="6" name="人山人海-3" desc="参观人次总数达到10000" type="6" value="5000000000" parent="102" del="1" diamond_once="20" coin_person="" person="" icon="4大技能1" />
-  <item id="104" index="6" name="人山人海-4" desc="参观人次总数达到50000" type="6" value="1000000000000" parent="103" del="1" diamond_once="25" coin_person="" person="" icon="4大技能1" />
-  <item id="105" index="6" name="人山人海-5" desc="参观人次总数达到150000" type="6" value="500000000000000" parent="104" del="1" diamond_once="40" coin_person="" person="" icon="4大技能1" />
-  <item id="106" index="6" name="人山人海-6" desc="参观人次总数达到300000" type="6" value="5E+17" parent="105" del="0" diamond_once="50" coin_person="" person="" icon="4大技能1" />
-  <item id="121" index="7" name="技能大师-1" desc="使用技能5次" type="7" value="5" parent="" del="1" diamond_once="15" coin_person="" person="" icon="红-黄鹂鸟" />
-  <item id="122" index="7" name="技能大师-2" desc="使用技能10次" type="7" value="30" parent="121" del="1" diamond_once="20" coin_person="" person="" icon="红-黄鹂鸟" />
-  <item id="123" index="7" name="技能大师-3" desc="使用技能20次" type="7" value="80" parent="122" del="1" diamond_once="35" coin_person="" person="" icon="红-黄鹂鸟" />
-  <item id="124" index="7" name="技能大师-4" desc="使用技能50次" type="7" value="200" parent="123" del="1" diamond_once="50" coin_person="" person="" icon="红-黄鹂鸟" />
-  <item id="125" index="7" name="技能大师-5" desc="使用技能150次" type="7" value="350" parent="124" del="1" diamond_once="65" coin_person="" person="" icon="红-黄鹂鸟" />
-  <item id="126" index="7" name="技能大师-6" desc="使用技能250次" type="7" value="500" parent="125" del="0" diamond_once="80" coin_person="" person="" icon="红-黄鹂鸟" />
-  <item id="141" index="8" name="鉴赏大师-1" desc="观看2次广告" type="8" value="2" parent="" del="1" diamond_once="15" coin_person="" person="" icon="蓝-免费钻" />
-  <item id="142" index="8" name="鉴赏大师-2" desc="观看5次广告" type="8" value="5" parent="141" del="1" diamond_once="20" coin_person="" person="" icon="蓝-免费钻" />
-  <item id="143" index="8" name="鉴赏大师-3" desc="观看10次广告" type="8" value="10" parent="142" del="1" diamond_once="35" coin_person="" person="" icon="蓝-免费钻" />
-  <item id="144" index="8" name="鉴赏大师-4" desc="观看15次广告" type="8" value="45" parent="143" del="1" diamond_once="50" coin_person="" person="" icon="蓝-免费钻" />
-  <item id="145" index="8" name="鉴赏大师-5" desc="观看25次广告" type="8" value="100" parent="144" del="1" diamond_once="65" coin_person="" person="" icon="蓝-免费钻" />
-  <item id="146" index="8" name="鉴赏大师-6" desc="观看40次广告" type="8" value="180" parent="145" del="0" diamond_once="80" coin_person="" person="" icon="蓝-免费钻" />
-  <item id="161" index="9" name="按时打卡-1" desc="签到5次" type="9" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="红-彩虹" />
-  <item id="162" index="9" name="按时打卡-2" desc="签到10次" type="9" value="10" parent="161" del="1" diamond_once="15" coin_person="" person="" icon="红-彩虹" />
-  <item id="163" index="9" name="按时打卡-3" desc="签到15次" type="9" value="25" parent="162" del="1" diamond_once="20" coin_person="" person="" icon="红-彩虹" />
-  <item id="164" index="9" name="按时打卡-4" desc="签到25次" type="9" value="50" parent="163" del="1" diamond_once="25" coin_person="" person="" icon="红-彩虹" />
-  <item id="165" index="9" name="按时打卡-5" desc="签到35次" type="9" value="85" parent="164" del="1" diamond_once="40" coin_person="" person="" icon="红-彩虹" />
-  <item id="166" index="9" name="按时打卡-6" desc="签到50次" type="9" value="150" parent="165" del="0" diamond_once="50" coin_person="" person="" icon="红-彩虹" />
-  <item id="181" index="10" name="乐于分享-1" desc="分享1次" type="10" value="1" parent="" del="1" diamond_once="10" coin_person="" person="" icon="红-樱花树" />
-  <item id="182" index="10" name="乐于分享-2" desc="分享5次" type="10" value="5" parent="181" del="1" diamond_once="15" coin_person="" person="" icon="红-樱花树" />
-  <item id="183" index="10" name="乐于分享-3" desc="分享10次" type="10" value="10" parent="182" del="1" diamond_once="20" coin_person="" person="" icon="红-樱花树" />
-  <item id="184" index="10" name="乐于分享-4" desc="分享15次" type="10" value="15" parent="183" del="1" diamond_once="25" coin_person="" person="" icon="红-樱花树" />
-  <item id="185" index="10" name="乐于分享-5" desc="分享25次" type="10" value="25" parent="184" del="1" diamond_once="40" coin_person="" person="" icon="红-樱花树" />
-  <item id="186" index="10" name="乐于分享-6" desc="分享40次" type="10" value="40" parent="185" del="1" diamond_once="50" coin_person="" person="" icon="红-樱花树" />
-  <item id="187" index="10" name="乐于分享-7" desc="" type="10" value="80" parent="186" del="1" diamond_once="65" coin_person="" person="" icon="红-樱花树" />
-  <item id="188" index="10" name="乐于分享-8" desc="" type="10" value="120" parent="187" del="0" diamond_once="80" coin_person="" person="" icon="红-樱花树" />
-  <item id="201" index="11" name="辛勤的花匠-1" desc="完成小游戏5次" type="11" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="黄-黄色蜜蜂" />
-  <item id="202" index="11" name="辛勤的花匠-2" desc="完成小游戏10次" type="11" value="10" parent="201" del="1" diamond_once="15" coin_person="" person="" icon="黄-黄色蜜蜂" />
-  <item id="203" index="11" name="辛勤的花匠-3" desc="完成小游戏30次" type="11" value="50" parent="202" del="1" diamond_once="20" coin_person="" person="" icon="黄-黄色蜜蜂" />
-  <item id="204" index="11" name="辛勤的花匠-4" desc="完成小游戏50次" type="11" value="100" parent="203" del="1" diamond_once="25" coin_person="" person="" icon="黄-黄色蜜蜂" />
-  <item id="205" index="11" name="辛勤的花匠-5" desc="完成小游戏100次" type="11" value="500" parent="204" del="1" diamond_once="40" coin_person="" person="" icon="黄-黄色蜜蜂" />
-  <item id="206" index="11" name="辛勤的花匠-6" desc="完成小游戏200次" type="11" value="1000" parent="205" del="0" diamond_once="50" coin_person="" person="" icon="黄-黄色蜜蜂" />
-  <item id="221" index="12" name="积少成多-1" desc="收集花园里的金币50次" type="12" value="50" parent="" del="1" diamond_once="10" coin_person="" person="" icon="绿-金币包3" />
-  <item id="222" index="12" name="积少成多-2" desc="收集花园里的金币100次" type="12" value="100" parent="221" del="1" diamond_once="15" coin_person="" person="" icon="绿-金币包3" />
-  <item id="223" index="12" name="积少成多-3" desc="收集花园里的金币300次" type="12" value="450" parent="222" del="1" diamond_once="20" coin_person="" person="" icon="绿-金币包3" />
-  <item id="224" index="12" name="积少成多-4" desc="收集花园里的金币600次" type="12" value="1000" parent="223" del="1" diamond_once="25" coin_person="" person="" icon="绿-金币包3" />
-  <item id="225" index="12" name="积少成多-5" desc="收集花园里的金币1000次" type="12" value="5000" parent="224" del="1" diamond_once="40" coin_person="" person="" icon="绿-金币包3" />
-  <item id="226" index="12" name="积少成多-6" desc="收集花园里的金币2500次" type="12" value="10000" parent="225" del="0" diamond_once="50" coin_person="" person="" icon="绿-金币包3" />
-  <item id="241" index="13" name="花费的钻石-1" desc="" type="13" value="500" parent="" del="1" diamond_once="10" coin_person="" person="" icon="蓝-大量钻石" />
-  <item id="242" index="13" name="花费的钻石-2" desc="" type="13" value="1500" parent="241" del="1" diamond_once="15" coin_person="" person="" icon="蓝-大量钻石" />
-  <item id="243" index="13" name="花费的钻石-3" desc="" type="13" value="5000" parent="242" del="1" diamond_once="20" coin_person="" person="" icon="蓝-大量钻石" />
-  <item id="244" index="13" name="花费的钻石-4" desc="" type="13" value="10000" parent="243" del="1" diamond_once="25" coin_person="" person="" icon="蓝-大量钻石" />
-  <item id="245" index="13" name="花费的钻石-5" desc="" type="13" value="50000" parent="244" del="1" diamond_once="40" coin_person="" person="" icon="蓝-大量钻石" />
-  <item id="246" index="13" name="花费的钻石-6" desc="" type="13" value="500000" parent="245" del="0" diamond_once="50" coin_person="" person="" icon="蓝-大量钻石" />
-  <item id="261" index="14" name="拥有的服装-1" desc="" type="14" value="9" parent="" del="1" diamond_once="10" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="262" index="14" name="拥有的服装-2" desc="" type="14" value="15" parent="261" del="1" diamond_once="15" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="263" index="14" name="拥有的服装-3" desc="" type="14" value="30" parent="262" del="1" diamond_once="20" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="264" index="14" name="拥有的服装-4" desc="" type="14" value="60" parent="263" del="1" diamond_once="25" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="265" index="14" name="拥有的服装-5" desc="" type="14" value="90" parent="264" del="1" diamond_once="40" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="266" index="14" name="拥有的服装-6" desc="" type="14" value="120" parent="265" del="0" diamond_once="50" coin_person="" person="" icon="绿-繁花似锦" />
-  <item id="281" index="15" name="派对狂人-1" desc="" type="15" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="派对图标1" />
-  <item id="282" index="15" name="派对狂人-2" desc="" type="15" value="10" parent="281" del="1" diamond_once="15" coin_person="" person="" icon="派对图标1" />
-  <item id="283" index="15" name="派对狂人-3" desc="" type="15" value="100" parent="282" del="1" diamond_once="20" coin_person="" person="" icon="派对图标1" />
-  <item id="284" index="15" name="派对狂人-4" desc="" type="15" value="5000" parent="283" del="1" diamond_once="25" coin_person="" person="" icon="派对图标1" />
-  <item id="285" index="15" name="派对狂人-5" desc="" type="15" value="10000" parent="284" del="1" diamond_once="40" coin_person="" person="" icon="派对图标1" />
-  <item id="286" index="15" name="派对狂人-6" desc="" type="15" value="500000" parent="285" del="0" diamond_once="50" coin_person="" person="" icon="派对图标1" />
-  <item id="301" index="16" name="阔气老板-1" desc="" type="16" value="20" parent="" del="1" diamond_once="10" coin_person="" person="" icon="系统宝箱" />
-  <item id="302" index="16" name="阔气老板-2" desc="" type="16" value="200" parent="301" del="1" diamond_once="15" coin_person="" person="" icon="系统宝箱" />
-  <item id="303" index="16" name="阔气老板-3" desc="" type="16" value="2000" parent="302" del="1" diamond_once="20" coin_person="" person="" icon="系统宝箱" />
-  <item id="304" index="16" name="阔气老板-4" desc="" type="16" value="50000" parent="303" del="1" diamond_once="25" coin_person="" person="" icon="系统宝箱" />
-  <item id="305" index="16" name="阔气老板-5" desc="" type="16" value="200000" parent="304" del="1" diamond_once="40" coin_person="" person="" icon="系统宝箱" />
-  <item id="306" index="16" name="阔气老板-6" desc="" type="16" value="5000000" parent="305" del="0" diamond_once="50" coin_person="" person="" icon="系统宝箱" />
-  <item id="321" index="17" name="快来抢-1" desc="" type="17" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="钻石宝箱" />
-  <item id="322" index="17" name="快来抢-2" desc="" type="17" value="50" parent="321" del="1" diamond_once="15" coin_person="" person="" icon="钻石宝箱" />
-  <item id="323" index="17" name="快来抢-3" desc="" type="17" value="500" parent="322" del="1" diamond_once="20" coin_person="" person="" icon="钻石宝箱" />
-  <item id="324" index="17" name="快来抢-4" desc="" type="17" value="10000" parent="323" del="1" diamond_once="25" coin_person="" person="" icon="钻石宝箱" />
-  <item id="325" index="17" name="快来抢-5" desc="" type="17" value="500000" parent="324" del="1" diamond_once="40" coin_person="" person="" icon="钻石宝箱" />
-  <item id="326" index="17" name="快来抢-6" desc="" type="17" value="1000000" parent="325" del="0" diamond_once="50" coin_person="" person="" icon="钻石宝箱" />
-  <item id="341" index="18" name="花秘人-1" desc="" type="18" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="花朵宝箱" />
-  <item id="342" index="18" name="花秘人-2" desc="" type="18" value="50" parent="341" del="1" diamond_once="15" coin_person="" person="" icon="花朵宝箱" />
-  <item id="343" index="18" name="花秘人-3" desc="" type="18" value="500" parent="342" del="1" diamond_once="20" coin_person="" person="" icon="花朵宝箱" />
-  <item id="344" index="18" name="花秘人-4" desc="" type="18" value="10000" parent="343" del="1" diamond_once="25" coin_person="" person="" icon="花朵宝箱" />
-  <item id="345" index="18" name="花秘人-5" desc="" type="18" value="500000" parent="344" del="1" diamond_once="40" coin_person="" person="" icon="花朵宝箱" />
-  <item id="346" index="18" name="花秘人-6" desc="" type="18" value="1000000" parent="345" del="0" diamond_once="50" coin_person="" person="" icon="花朵宝箱" />
-  <item id="361" index="19" name="经济学-1" desc="" type="19" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="数字宝箱" />
-  <item id="362" index="19" name="经济学-2" desc="" type="19" value="50" parent="361" del="1" diamond_once="15" coin_person="" person="" icon="数字宝箱" />
-  <item id="363" index="19" name="经济学-3" desc="" type="19" value="500" parent="362" del="1" diamond_once="20" coin_person="" person="" icon="数字宝箱" />
-  <item id="364" index="19" name="经济学-4" desc="" type="19" value="10000" parent="363" del="1" diamond_once="25" coin_person="" person="" icon="数字宝箱" />
-  <item id="365" index="19" name="经济学-5" desc="" type="19" value="500000" parent="364" del="1" diamond_once="40" coin_person="" person="" icon="数字宝箱" />
-  <item id="366" index="19" name="经济学-6" desc="" type="19" value="1000000" parent="365" del="0" diamond_once="50" coin_person="" person="" icon="数字宝箱" />
-  <item id="381" index="20" name="红包达人-1" desc="" type="20" value="30" parent="" del="1" diamond_once="10" coin_person="" person="" icon="系统宝箱" />
-  <item id="382" index="20" name="红包达人-2" desc="" type="20" value="500" parent="381" del="1" diamond_once="15" coin_person="" person="" icon="系统宝箱" />
-  <item id="383" index="20" name="红包达人-3" desc="" type="20" value="50000" parent="382" del="1" diamond_once="20" coin_person="" person="" icon="系统宝箱" />
-  <item id="384" index="20" name="红包达人-4" desc="" type="20" value="1000000" parent="383" del="1" diamond_once="25" coin_person="" person="" icon="系统宝箱" />
-  <item id="385" index="20" name="红包达人-5" desc="" type="20" value="500000000" parent="384" del="1" diamond_once="40" coin_person="" person="" icon="系统宝箱" />
-  <item id="386" index="20" name="红包达人-6" desc="" type="20" value="10000000000" parent="385" del="0" diamond_once="50" coin_person="" person="" icon="系统宝箱" />
-  <comment>
+<data>
+  <item id="1" index="1" name="美丽花园-1" desc="花园等级达到 30" type="1" value="15" parent="" del="1" diamond_once="15" coin_person="" person="" icon="红-公园" />
+  <item id="2" index="1" name="美丽花园-2" desc="花园等级达到 50" type="1" value="30" parent="1" del="1" diamond_once="20" coin_person="" person="" icon="红-公园" />
+  <item id="3" index="1" name="美丽花园-3" desc="花园等级达到 100" type="1" value="50" parent="2" del="1" diamond_once="35" coin_person="" person="" icon="红-公园" />
+  <item id="4" index="1" name="美丽花园-4" desc="花园等级达到 200" type="1" value="100" parent="3" del="1" diamond_once="50" coin_person="" person="" icon="红-公园" />
+  <item id="5" index="1" name="美丽花园-5" desc="花园等级达到 300" type="1" value="250" parent="4" del="1" diamond_once="65" coin_person="" person="" icon="红-公园" />
+  <item id="6" index="1" name="美丽花园-6" desc="花园等级达到 400" type="1" value="400" parent="5" del="0" diamond_once="80" coin_person="" person="" icon="红-公园" />
+  <item id="21" index="2" name="鼓鼓的钱包-1" desc="拥有1000金币" type="2" value="3000" parent="" del="1" diamond_once="10" coin_person="" person="" icon="绿-免费金币" />
+  <item id="22" index="2" name="鼓鼓的钱包-2" desc="拥有2000金币" type="2" value="50000" parent="21" del="1" diamond_once="15" coin_person="" person="" icon="绿-免费金币" />
+  <item id="23" index="2" name="鼓鼓的钱包-3" desc="拥有3000金币" type="2" value="1000000" parent="22" del="1" diamond_once="20" coin_person="" person="" icon="绿-免费金币" />
+  <item id="24" index="2" name="鼓鼓的钱包-4" desc="拥有5000金币" type="2" value="100000000" parent="23" del="1" diamond_once="25" coin_person="" person="" icon="绿-免费金币" />
+  <item id="25" index="2" name="鼓鼓的钱包-5" desc="拥有8000金币" type="2" value="5000000000" parent="24" del="1" diamond_once="40" coin_person="" person="" icon="绿-免费金币" />
+  <item id="26" index="2" name="鼓鼓的钱包-6" desc="拥有10000金币" type="2" value="50000000000" parent="25" del="0" diamond_once="50" coin_person="" person="" icon="绿-免费金币" />
+  <item id="41" index="3" name="精明的商人-1" desc="总共获取3000金币" type="3" value="10000" parent="" del="1" diamond_once="15" coin_person="" person="" icon="4大技能2" />
+  <item id="42" index="3" name="精明的商人-2" desc="总共获取8000金币" type="3" value="100000000" parent="41" del="1" diamond_once="20" coin_person="" person="" icon="4大技能2" />
+  <item id="43" index="3" name="精明的商人-3" desc="总共获取15000金币" type="3" value="10000000000" parent="42" del="1" diamond_once="35" coin_person="" person="" icon="4大技能2" />
+  <item id="44" index="3" name="精明的商人-4" desc="总共获取30000金币" type="3" value="5000000000000" parent="43" del="1" diamond_once="50" coin_person="" person="" icon="4大技能2" />
+  <item id="45" index="3" name="精明的商人-5" desc="总共获取50000金币" type="3" value="500000000000000" parent="44" del="1" diamond_once="65" coin_person="" person="" icon="4大技能2" />
+  <item id="46" index="3" name="精明的商人-6" desc="总共获取80000金币" type="3" value="5E+16" parent="45" del="0" diamond_once="80" coin_person="" person="" icon="4大技能2" />
+  <item id="61" index="4" name="花仙子-1" desc="所有精灵等级总和达到10级" type="4" value="10" parent="" del="1" diamond_once="15" coin_person="" person="" icon="蓝-高级包" />
+  <item id="62" index="4" name="花仙子-2" desc="所有精灵等级总和达到50级" type="4" value="30" parent="61" del="1" diamond_once="20" coin_person="" person="" icon="蓝-高级包" />
+  <item id="63" index="4" name="花仙子-3" desc="所有精灵等级总和达到100级" type="4" value="50" parent="62" del="1" diamond_once="35" coin_person="" person="" icon="蓝-高级包" />
+  <item id="64" index="4" name="花仙子-4" desc="所有精灵等级总和达到180级" type="4" value="100" parent="63" del="1" diamond_once="50" coin_person="" person="" icon="蓝-高级包" />
+  <item id="65" index="4" name="花仙子-5" desc="所有精灵等级总和达到400级" type="4" value="500" parent="64" del="1" diamond_once="65" coin_person="" person="" icon="蓝-高级包" />
+  <item id="66" index="4" name="花仙子-6" desc="所有精灵等级总和达到800级" type="4" value="1000" parent="65" del="0" diamond_once="80" coin_person="" person="" icon="蓝-高级包" />
+  <item id="81" index="5" name="百花争艳-1" desc="花朵数量达到1" type="5" value="1" parent="" del="1" diamond_once="10" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="82" index="5" name="百花争艳-2" desc="花朵数量达到3" type="5" value="3" parent="81" del="1" diamond_once="15" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="83" index="5" name="百花争艳-3" desc="花朵数量达到5" type="5" value="5" parent="82" del="1" diamond_once="20" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="84" index="5" name="百花争艳-4" desc="花朵数量达到10" type="5" value="10" parent="83" del="1" diamond_once="25" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="85" index="5" name="百花争艳-5" desc="花朵数量达到20" type="5" value="20" parent="84" del="1" diamond_once="40" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="86" index="5" name="百花争艳-6" desc="花朵数量达到40" type="5" value="40" parent="85" del="0" diamond_once="50" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="101" index="6" name="人山人海-1" desc="参观人次总数达到500" type="6" value="1000" parent="" del="1" diamond_once="10" coin_person="" person="" icon="4大技能1" />
+  <item id="102" index="6" name="人山人海-2" desc="参观人次总数达到2000" type="6" value="5000000" parent="101" del="1" diamond_once="15" coin_person="" person="" icon="4大技能1" />
+  <item id="103" index="6" name="人山人海-3" desc="参观人次总数达到10000" type="6" value="5000000000" parent="102" del="1" diamond_once="20" coin_person="" person="" icon="4大技能1" />
+  <item id="104" index="6" name="人山人海-4" desc="参观人次总数达到50000" type="6" value="1000000000000" parent="103" del="1" diamond_once="25" coin_person="" person="" icon="4大技能1" />
+  <item id="105" index="6" name="人山人海-5" desc="参观人次总数达到150000" type="6" value="500000000000000" parent="104" del="1" diamond_once="40" coin_person="" person="" icon="4大技能1" />
+  <item id="106" index="6" name="人山人海-6" desc="参观人次总数达到300000" type="6" value="5E+17" parent="105" del="0" diamond_once="50" coin_person="" person="" icon="4大技能1" />
+  <item id="121" index="7" name="技能大师-1" desc="使用技能5次" type="7" value="5" parent="" del="1" diamond_once="15" coin_person="" person="" icon="红-黄鹂鸟" />
+  <item id="122" index="7" name="技能大师-2" desc="使用技能10次" type="7" value="30" parent="121" del="1" diamond_once="20" coin_person="" person="" icon="红-黄鹂鸟" />
+  <item id="123" index="7" name="技能大师-3" desc="使用技能20次" type="7" value="80" parent="122" del="1" diamond_once="35" coin_person="" person="" icon="红-黄鹂鸟" />
+  <item id="124" index="7" name="技能大师-4" desc="使用技能50次" type="7" value="200" parent="123" del="1" diamond_once="50" coin_person="" person="" icon="红-黄鹂鸟" />
+  <item id="125" index="7" name="技能大师-5" desc="使用技能150次" type="7" value="350" parent="124" del="1" diamond_once="65" coin_person="" person="" icon="红-黄鹂鸟" />
+  <item id="126" index="7" name="技能大师-6" desc="使用技能250次" type="7" value="500" parent="125" del="0" diamond_once="80" coin_person="" person="" icon="红-黄鹂鸟" />
+  <item id="141" index="8" name="鉴赏大师-1" desc="观看2次广告" type="8" value="2" parent="" del="1" diamond_once="15" coin_person="" person="" icon="蓝-免费钻" />
+  <item id="142" index="8" name="鉴赏大师-2" desc="观看5次广告" type="8" value="5" parent="141" del="1" diamond_once="20" coin_person="" person="" icon="蓝-免费钻" />
+  <item id="143" index="8" name="鉴赏大师-3" desc="观看10次广告" type="8" value="10" parent="142" del="1" diamond_once="35" coin_person="" person="" icon="蓝-免费钻" />
+  <item id="144" index="8" name="鉴赏大师-4" desc="观看15次广告" type="8" value="45" parent="143" del="1" diamond_once="50" coin_person="" person="" icon="蓝-免费钻" />
+  <item id="145" index="8" name="鉴赏大师-5" desc="观看25次广告" type="8" value="100" parent="144" del="1" diamond_once="65" coin_person="" person="" icon="蓝-免费钻" />
+  <item id="146" index="8" name="鉴赏大师-6" desc="观看40次广告" type="8" value="180" parent="145" del="0" diamond_once="80" coin_person="" person="" icon="蓝-免费钻" />
+  <item id="161" index="9" name="按时打卡-1" desc="签到5次" type="9" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="红-彩虹" />
+  <item id="162" index="9" name="按时打卡-2" desc="签到10次" type="9" value="10" parent="161" del="1" diamond_once="15" coin_person="" person="" icon="红-彩虹" />
+  <item id="163" index="9" name="按时打卡-3" desc="签到15次" type="9" value="25" parent="162" del="1" diamond_once="20" coin_person="" person="" icon="红-彩虹" />
+  <item id="164" index="9" name="按时打卡-4" desc="签到25次" type="9" value="50" parent="163" del="1" diamond_once="25" coin_person="" person="" icon="红-彩虹" />
+  <item id="165" index="9" name="按时打卡-5" desc="签到35次" type="9" value="85" parent="164" del="1" diamond_once="40" coin_person="" person="" icon="红-彩虹" />
+  <item id="166" index="9" name="按时打卡-6" desc="签到50次" type="9" value="150" parent="165" del="0" diamond_once="50" coin_person="" person="" icon="红-彩虹" />
+  <item id="181" index="10" name="乐于分享-1" desc="分享1次" type="10" value="1" parent="" del="1" diamond_once="10" coin_person="" person="" icon="红-樱花树" />
+  <item id="182" index="10" name="乐于分享-2" desc="分享5次" type="10" value="5" parent="181" del="1" diamond_once="15" coin_person="" person="" icon="红-樱花树" />
+  <item id="183" index="10" name="乐于分享-3" desc="分享10次" type="10" value="10" parent="182" del="1" diamond_once="20" coin_person="" person="" icon="红-樱花树" />
+  <item id="184" index="10" name="乐于分享-4" desc="分享15次" type="10" value="15" parent="183" del="1" diamond_once="25" coin_person="" person="" icon="红-樱花树" />
+  <item id="185" index="10" name="乐于分享-5" desc="分享25次" type="10" value="25" parent="184" del="1" diamond_once="40" coin_person="" person="" icon="红-樱花树" />
+  <item id="186" index="10" name="乐于分享-6" desc="分享40次" type="10" value="40" parent="185" del="1" diamond_once="50" coin_person="" person="" icon="红-樱花树" />
+  <item id="187" index="10" name="乐于分享-7" desc="" type="10" value="80" parent="186" del="1" diamond_once="65" coin_person="" person="" icon="红-樱花树" />
+  <item id="188" index="10" name="乐于分享-8" desc="" type="10" value="120" parent="187" del="0" diamond_once="80" coin_person="" person="" icon="红-樱花树" />
+  <item id="201" index="11" name="辛勤的花匠-1" desc="完成小游戏5次" type="11" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="黄-黄色蜜蜂" />
+  <item id="202" index="11" name="辛勤的花匠-2" desc="完成小游戏10次" type="11" value="10" parent="201" del="1" diamond_once="15" coin_person="" person="" icon="黄-黄色蜜蜂" />
+  <item id="203" index="11" name="辛勤的花匠-3" desc="完成小游戏30次" type="11" value="50" parent="202" del="1" diamond_once="20" coin_person="" person="" icon="黄-黄色蜜蜂" />
+  <item id="204" index="11" name="辛勤的花匠-4" desc="完成小游戏50次" type="11" value="100" parent="203" del="1" diamond_once="25" coin_person="" person="" icon="黄-黄色蜜蜂" />
+  <item id="205" index="11" name="辛勤的花匠-5" desc="完成小游戏100次" type="11" value="500" parent="204" del="1" diamond_once="40" coin_person="" person="" icon="黄-黄色蜜蜂" />
+  <item id="206" index="11" name="辛勤的花匠-6" desc="完成小游戏200次" type="11" value="1000" parent="205" del="0" diamond_once="50" coin_person="" person="" icon="黄-黄色蜜蜂" />
+  <item id="221" index="12" name="积少成多-1" desc="收集花园里的金币50次" type="12" value="50" parent="" del="1" diamond_once="10" coin_person="" person="" icon="绿-金币包3" />
+  <item id="222" index="12" name="积少成多-2" desc="收集花园里的金币100次" type="12" value="100" parent="221" del="1" diamond_once="15" coin_person="" person="" icon="绿-金币包3" />
+  <item id="223" index="12" name="积少成多-3" desc="收集花园里的金币300次" type="12" value="450" parent="222" del="1" diamond_once="20" coin_person="" person="" icon="绿-金币包3" />
+  <item id="224" index="12" name="积少成多-4" desc="收集花园里的金币600次" type="12" value="1000" parent="223" del="1" diamond_once="25" coin_person="" person="" icon="绿-金币包3" />
+  <item id="225" index="12" name="积少成多-5" desc="收集花园里的金币1000次" type="12" value="5000" parent="224" del="1" diamond_once="40" coin_person="" person="" icon="绿-金币包3" />
+  <item id="226" index="12" name="积少成多-6" desc="收集花园里的金币2500次" type="12" value="10000" parent="225" del="0" diamond_once="50" coin_person="" person="" icon="绿-金币包3" />
+  <item id="241" index="13" name="花费的钻石-1" desc="" type="13" value="500" parent="" del="1" diamond_once="10" coin_person="" person="" icon="蓝-大量钻石" />
+  <item id="242" index="13" name="花费的钻石-2" desc="" type="13" value="1500" parent="241" del="1" diamond_once="15" coin_person="" person="" icon="蓝-大量钻石" />
+  <item id="243" index="13" name="花费的钻石-3" desc="" type="13" value="5000" parent="242" del="1" diamond_once="20" coin_person="" person="" icon="蓝-大量钻石" />
+  <item id="244" index="13" name="花费的钻石-4" desc="" type="13" value="10000" parent="243" del="1" diamond_once="25" coin_person="" person="" icon="蓝-大量钻石" />
+  <item id="245" index="13" name="花费的钻石-5" desc="" type="13" value="50000" parent="244" del="1" diamond_once="40" coin_person="" person="" icon="蓝-大量钻石" />
+  <item id="246" index="13" name="花费的钻石-6" desc="" type="13" value="500000" parent="245" del="0" diamond_once="50" coin_person="" person="" icon="蓝-大量钻石" />
+  <item id="261" index="14" name="拥有的服装-1" desc="" type="14" value="9" parent="" del="1" diamond_once="10" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="262" index="14" name="拥有的服装-2" desc="" type="14" value="15" parent="261" del="1" diamond_once="15" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="263" index="14" name="拥有的服装-3" desc="" type="14" value="30" parent="262" del="1" diamond_once="20" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="264" index="14" name="拥有的服装-4" desc="" type="14" value="60" parent="263" del="1" diamond_once="25" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="265" index="14" name="拥有的服装-5" desc="" type="14" value="90" parent="264" del="1" diamond_once="40" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="266" index="14" name="拥有的服装-6" desc="" type="14" value="120" parent="265" del="0" diamond_once="50" coin_person="" person="" icon="绿-繁花似锦" />
+  <item id="281" index="15" name="派对狂人-1" desc="" type="15" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="派对图标1" />
+  <item id="282" index="15" name="派对狂人-2" desc="" type="15" value="10" parent="281" del="1" diamond_once="15" coin_person="" person="" icon="派对图标1" />
+  <item id="283" index="15" name="派对狂人-3" desc="" type="15" value="100" parent="282" del="1" diamond_once="20" coin_person="" person="" icon="派对图标1" />
+  <item id="284" index="15" name="派对狂人-4" desc="" type="15" value="5000" parent="283" del="1" diamond_once="25" coin_person="" person="" icon="派对图标1" />
+  <item id="285" index="15" name="派对狂人-5" desc="" type="15" value="10000" parent="284" del="1" diamond_once="40" coin_person="" person="" icon="派对图标1" />
+  <item id="286" index="15" name="派对狂人-6" desc="" type="15" value="500000" parent="285" del="0" diamond_once="50" coin_person="" person="" icon="派对图标1" />
+  <item id="301" index="16" name="阔气老板-1" desc="" type="16" value="20" parent="" del="1" diamond_once="10" coin_person="" person="" icon="系统宝箱" />
+  <item id="302" index="16" name="阔气老板-2" desc="" type="16" value="200" parent="301" del="1" diamond_once="15" coin_person="" person="" icon="系统宝箱" />
+  <item id="303" index="16" name="阔气老板-3" desc="" type="16" value="2000" parent="302" del="1" diamond_once="20" coin_person="" person="" icon="系统宝箱" />
+  <item id="304" index="16" name="阔气老板-4" desc="" type="16" value="50000" parent="303" del="1" diamond_once="25" coin_person="" person="" icon="系统宝箱" />
+  <item id="305" index="16" name="阔气老板-5" desc="" type="16" value="200000" parent="304" del="1" diamond_once="40" coin_person="" person="" icon="系统宝箱" />
+  <item id="306" index="16" name="阔气老板-6" desc="" type="16" value="5000000" parent="305" del="0" diamond_once="50" coin_person="" person="" icon="系统宝箱" />
+  <item id="321" index="17" name="快来抢-1" desc="" type="17" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="钻石宝箱" />
+  <item id="322" index="17" name="快来抢-2" desc="" type="17" value="50" parent="321" del="1" diamond_once="15" coin_person="" person="" icon="钻石宝箱" />
+  <item id="323" index="17" name="快来抢-3" desc="" type="17" value="500" parent="322" del="1" diamond_once="20" coin_person="" person="" icon="钻石宝箱" />
+  <item id="324" index="17" name="快来抢-4" desc="" type="17" value="10000" parent="323" del="1" diamond_once="25" coin_person="" person="" icon="钻石宝箱" />
+  <item id="325" index="17" name="快来抢-5" desc="" type="17" value="500000" parent="324" del="1" diamond_once="40" coin_person="" person="" icon="钻石宝箱" />
+  <item id="326" index="17" name="快来抢-6" desc="" type="17" value="1000000" parent="325" del="0" diamond_once="50" coin_person="" person="" icon="钻石宝箱" />
+  <item id="341" index="18" name="花秘人-1" desc="" type="18" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="花朵宝箱" />
+  <item id="342" index="18" name="花秘人-2" desc="" type="18" value="50" parent="341" del="1" diamond_once="15" coin_person="" person="" icon="花朵宝箱" />
+  <item id="343" index="18" name="花秘人-3" desc="" type="18" value="500" parent="342" del="1" diamond_once="20" coin_person="" person="" icon="花朵宝箱" />
+  <item id="344" index="18" name="花秘人-4" desc="" type="18" value="10000" parent="343" del="1" diamond_once="25" coin_person="" person="" icon="花朵宝箱" />
+  <item id="345" index="18" name="花秘人-5" desc="" type="18" value="500000" parent="344" del="1" diamond_once="40" coin_person="" person="" icon="花朵宝箱" />
+  <item id="346" index="18" name="花秘人-6" desc="" type="18" value="1000000" parent="345" del="0" diamond_once="50" coin_person="" person="" icon="花朵宝箱" />
+  <item id="361" index="19" name="经济学-1" desc="" type="19" value="5" parent="" del="1" diamond_once="10" coin_person="" person="" icon="数字宝箱" />
+  <item id="362" index="19" name="经济学-2" desc="" type="19" value="50" parent="361" del="1" diamond_once="15" coin_person="" person="" icon="数字宝箱" />
+  <item id="363" index="19" name="经济学-3" desc="" type="19" value="500" parent="362" del="1" diamond_once="20" coin_person="" person="" icon="数字宝箱" />
+  <item id="364" index="19" name="经济学-4" desc="" type="19" value="10000" parent="363" del="1" diamond_once="25" coin_person="" person="" icon="数字宝箱" />
+  <item id="365" index="19" name="经济学-5" desc="" type="19" value="500000" parent="364" del="1" diamond_once="40" coin_person="" person="" icon="数字宝箱" />
+  <item id="366" index="19" name="经济学-6" desc="" type="19" value="1000000" parent="365" del="0" diamond_once="50" coin_person="" person="" icon="数字宝箱" />
+  <item id="381" index="20" name="红包达人-1" desc="" type="20" value="30" parent="" del="1" diamond_once="10" coin_person="" person="" icon="系统宝箱" />
+  <item id="382" index="20" name="红包达人-2" desc="" type="20" value="500" parent="381" del="1" diamond_once="15" coin_person="" person="" icon="系统宝箱" />
+  <item id="383" index="20" name="红包达人-3" desc="" type="20" value="50000" parent="382" del="1" diamond_once="20" coin_person="" person="" icon="系统宝箱" />
+  <item id="384" index="20" name="红包达人-4" desc="" type="20" value="1000000" parent="383" del="1" diamond_once="25" coin_person="" person="" icon="系统宝箱" />
+  <item id="385" index="20" name="红包达人-5" desc="" type="20" value="500000000" parent="384" del="1" diamond_once="40" coin_person="" person="" icon="系统宝箱" />
+  <item id="386" index="20" name="红包达人-6" desc="" type="20" value="10000000000" parent="385" del="0" diamond_once="50" coin_person="" person="" icon="系统宝箱" />
+  <comment>
     <id>
 
-</id>
+</id>
     <index>
 排序索引
-</index>
+</index>
     <name>
 成就名称
-</name>
+</name>
     <desc>
 成就描述
-</desc>
+</desc>
     <type>
 成就类型
-</type>
+</type>
     <value>
 参数
-</value>
+</value>
     <parent>
 父级
-</parent>
+</parent>
     <del>
 完成后是否删除
-</del>
+</del>
     <diamond_once>
 完成后钻石一次性奖励
-</diamond_once>
+</diamond_once>
     <coin_person>
 完成后每人次增加金币数量
-</coin_person>
+</coin_person>
     <person>
 完成后增加人次
-</person>
+</person>
     <icon>
 图标
-</icon>
-  </comment>
+</icon>
+  </comment>
 </data>

+ 18 - 18
Assets/Resource/XML/Config/award_config.xml

@@ -1,48 +1,48 @@
-<data>
-  <item id="1" coin="s*0.01*l" diamond="3,15" diamond_drop="0.5/l+l*0.0001" flower_drop="(1/f+l*0.005)*0.95" flower_rate_based="0.05,0.65,0.95" rate="0,400,650" coin_drop="r*l*0.65" flower_coin="l*0.65" star_cd="1" star_time="5,20" star_duration="5" flowerID_rate_fml="1-i/40" flowerAmt_rate_fml="1-a/100000000" />
-  <comment>
+<data>
+  <item id="1" coin="s*0.01*l" diamond="3,15" diamond_drop="0.5/l+l*0.0001" flower_drop="(1/f+l*0.005)*0.95" flower_rate_based="0.05,0.65,0.95" rate="0,400,650" coin_drop="r*l*0.65" flower_coin="l*0.65" star_cd="1" star_time="5,20" star_duration="5" flowerID_rate_fml="1-i/40" flowerAmt_rate_fml="1-a/100000000" />
+  <comment>
     <id>
 
-</id>
+</id>
     <coin>
 金币奖励公式
 s表示score
-</coin>
+</coin>
     <diamond>
 钻石奖励区间
-</diamond>
+</diamond>
     <diamond_drop>
 钻石掉率公式
-</diamond_drop>
+</diamond_drop>
     <flower_drop>
 花朵掉率公式
-</flower_drop>
+</flower_drop>
     <flower_rate_based>
 花朵在评价中的掉率
-</flower_rate_based>
+</flower_rate_based>
     <rate>
 评价配置
-</rate>
+</rate>
     <coin_drop>
 掉落金币奖励
-</coin_drop>
+</coin_drop>
     <flower_coin>
 种花金币奖励
-</flower_coin>
+</flower_coin>
     <star_cd>
 减少小游戏冷却时间
-</star_cd>
+</star_cd>
     <star_time>
 每过x秒出现一个star
-</star_time>
+</star_time>
     <star_duration>
 star最大存在时间
-</star_duration>
+</star_duration>
     <flowerID_rate_fml>
 根据花的ID计算掉率
-</flowerID_rate_fml>
+</flowerID_rate_fml>
     <flowerAmt_rate_fml>
 根据花的数量计算掉率
-</flowerAmt_rate_fml>
-  </comment>
+</flowerAmt_rate_fml>
+  </comment>
 </data>

+ 15 - 7
Assets/Resource/XML/Config/cost_config.xml

@@ -1,11 +1,19 @@
-<data>
-  <item id="1" desc="c*1000" />
-  <comment>
+<data>
+  <item id="1" fml="c*1000" desc="改名字" />
+  <item id="2" fml="c*200" desc="换嘴巴和眼睛花费的金币" />
+  <item id="3" fml="25" desc="换嘴巴和眼睛花费的钻石" />
+  <item id="4" fml="c*0.001" desc="留言获得金币" />
+  <item id="5" fml="0.15" desc="留言获得金币的概率" />
+  <item id="6" fml="300" desc="留言获得金币的时间间隔" />
+  <comment>
     <id>
 
-</id>
+</id>
+    <fml>
+公式
+</fml>
     <desc>
-改名字花费
-</desc>
-  </comment>
+说明
+</desc>
+  </comment>
 </data>

+ 176 - 176
Assets/Resource/XML/Config/dressRoom_config.xml

@@ -1,221 +1,221 @@
-<data>
-  <item id="1" jump_frequency="10" type="" index="" bodypart="" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="" spriteAlpha="" armatureName="" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="2" jump_frequency="" type="1" index="0" bodypart="1" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="120" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳1" spriteAlpha="" armatureName="脑壳1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="3" jump_frequency="" type="1" index="1" bodypart="1" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="120" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳1(棕色)" spriteAlpha="" armatureName="脑壳1(棕色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="4" jump_frequency="" type="1" index="2" bodypart="1" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="120" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳1(粉色)" spriteAlpha="" armatureName="脑壳1(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="5" jump_frequency="" type="1" index="3" bodypart="1" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="105" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳2(黄色)" spriteAlpha="" armatureName="脑壳2(黄色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="6" jump_frequency="" type="1" index="4" bodypart="1" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="105" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳2" spriteAlpha="" armatureName="脑壳2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="7" jump_frequency="" type="1" index="5" bodypart="1" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="105" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳2(粉色)" spriteAlpha="" armatureName="脑壳2(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="8" jump_frequency="" type="1" index="6" bodypart="1" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="17.5" icon1offset="25.38,-112.81" icon2offset="" spriteName="脑壳3+上(粉色),脑壳3+下(粉色)" spriteAlpha="" armatureName="脑壳3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="9" jump_frequency="" type="1" index="7" bodypart="1" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="17.5" icon1offset="25.38,-112.81" icon2offset="" spriteName="脑壳3+上(黄色),脑壳3+下(黄色)脑壳2——下" spriteAlpha="" armatureName="脑壳3(黄色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="10" jump_frequency="" type="1" index="8" bodypart="1" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="17.5" icon1offset="25.38,-112.81" icon2offset="" spriteName="脑壳3+上(紫色),脑壳3+下(紫色)" spriteAlpha="" armatureName="脑壳3(紫色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="11" jump_frequency="" type="1" index="9" bodypart="1" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="15" icon1offset="1.82,-132.79" icon2offset="" spriteName="脑壳2(黄色),脑壳3+下(黄色)脑壳2——下" spriteAlpha="" armatureName="脑壳2B(黄色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="12" jump_frequency="" type="1" index="10" bodypart="1" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="15" icon1offset="1.82,-132.79" icon2offset="" spriteName="脑壳2,脑壳2+下(棕色)另一种发型" spriteAlpha="" armatureName="脑壳2B(棕色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="13" jump_frequency="" type="1" index="11" bodypart="1" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="15" icon1offset="1.82,-132.79" icon2offset="" spriteName="脑壳2(粉色),脑壳2+下(粉色)另一种发型" spriteAlpha="" armatureName="脑壳2B(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="14" jump_frequency="" type="1" index="12" bodypart="1" level="30" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头发4(粉色)" spriteAlpha="" armatureName="头发4(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="15" jump_frequency="" type="1" index="13" bodypart="1" level="30" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头发4(蓝色)" spriteAlpha="" armatureName="头发4(蓝色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="16" jump_frequency="" type="1" index="14" bodypart="1" level="30" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头发4(绿色)" spriteAlpha="" armatureName="头发4(绿色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="17" jump_frequency="" type="1" index="15" bodypart="1" level="40" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发5(棕色)" spriteAlpha="" armatureName="头发5(棕色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="18" jump_frequency="" type="1" index="16" bodypart="1" level="40" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发5(红色)" spriteAlpha="" armatureName="头发5(红色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="19" jump_frequency="" type="1" index="17" bodypart="1" level="40" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发5(黄色)" spriteAlpha="" armatureName="头发5(黄色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="20" jump_frequency="" type="1" index="18" bodypart="1" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="15" icon1offset="109.42,-91.88" icon2offset="" spriteName="头发6+上(棕),头发6+下(棕)" spriteAlpha="" armatureName="头发6(棕)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="21" jump_frequency="" type="1" index="19" bodypart="1" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="15" icon1offset="109.42,-91.88" icon2offset="" spriteName="头发6+上(粉),头发6+下(粉)" spriteAlpha="" armatureName="头发6(粉)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="22" jump_frequency="" type="1" index="20" bodypart="1" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="15" icon1offset="109.42,-91.88" icon2offset="" spriteName="头发6+上(绿),头发6+下(绿)" spriteAlpha="" armatureName="头发6(绿)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="23" jump_frequency="" type="1" index="21" bodypart="1" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="15" icon1offset="109.42,-91.88" icon2offset="" spriteName="头发6+上(黄),头发6+下(黄)" spriteAlpha="" armatureName="头发6(黄)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="24" jump_frequency="" type="1" index="22" bodypart="1" level="50" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发7(橙)" spriteAlpha="" armatureName="头发7(橙)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="25" jump_frequency="" type="1" index="23" bodypart="1" level="50" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发7(米白)" spriteAlpha="" armatureName="头发7(米白)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="26" jump_frequency="" type="1" index="24" bodypart="1" level="50" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发7(蓝色)" spriteAlpha="" armatureName="头发7(蓝色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="27" jump_frequency="" type="1" index="25" bodypart="1" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="115" iconOffset="" icon1offset="" icon2offset="" spriteName="头发8(粉)" spriteAlpha="" armatureName="头发8(粉)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="28" jump_frequency="" type="1" index="26" bodypart="1" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="115" iconOffset="" icon1offset="" icon2offset="" spriteName="头发8(紫)" spriteAlpha="" armatureName="头发8(紫)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="29" jump_frequency="" type="1" index="27" bodypart="1" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="115" iconOffset="" icon1offset="" icon2offset="" spriteName="头发8(绿)" spriteAlpha="" armatureName="头发8(绿)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="30" jump_frequency="" type="1" index="28" bodypart="1" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="115" iconOffset="" icon1offset="" icon2offset="" spriteName="头发8(黑)" spriteAlpha="" armatureName="头发8(黑)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="31" jump_frequency="" type="1" index="29" bodypart="1" level="30" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发14(粉色)" spriteAlpha="" armatureName="头发14(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="32" jump_frequency="" type="1" index="30" bodypart="1" level="23" buy_currency="2" buy_amt="38" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发9-蓝" spriteAlpha="" armatureName="头发9-蓝" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="33" jump_frequency="" type="1" index="31" bodypart="1" level="23" buy_currency="2" buy_amt="38" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发9(白)" spriteAlpha="" armatureName="头发9(白)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="34" jump_frequency="" type="1" index="32" bodypart="1" level="23" buy_currency="2" buy_amt="38" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发9-粉" spriteAlpha="" armatureName="头发9-粉" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="35" jump_frequency="" type="1" index="33" bodypart="1" level="23" buy_currency="2" buy_amt="38" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发9-黄" spriteAlpha="" armatureName="头发9-黄" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="36" jump_frequency="" type="1" index="34" bodypart="1" level="30" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="105" iconOffset="10" icon1offset="-6.67,-77.62" icon2offset="" spriteName="头发15(咖啡),头发15(咖啡)+下" spriteAlpha="" armatureName="头发15(咖啡)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="37" jump_frequency="" type="1" index="35" bodypart="1" level="70" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="95" iconOffset="" icon1offset="" icon2offset="" spriteName="头发10(紫)" spriteAlpha="" armatureName="头发10(紫)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="38" jump_frequency="" type="1" index="36" bodypart="1" level="70" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="95" iconOffset="" icon1offset="" icon2offset="" spriteName="头发10(棕)" spriteAlpha="" armatureName="头发10(棕)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="39" jump_frequency="" type="1" index="37" bodypart="1" level="70" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="95.34,-151.30" icon2offset="" spriteName="头发11(蓝),头发11(蓝)后" spriteAlpha="" armatureName="头发11(蓝)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="-70,100" desc="" />
-  <item id="40" jump_frequency="" type="1" index="38" bodypart="1" level="70" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="95.34,-151.30" icon2offset="" spriteName="头发11(棕),头发11(棕)后" spriteAlpha="" armatureName="头发11(棕)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="-70,100" desc="" />
-  <item id="41" jump_frequency="" type="1" index="39" bodypart="1" level="60" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="-40.1,-56.94" icon2offset="" spriteName="头发16,头发16后" spriteAlpha="" armatureName="头发16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="42" jump_frequency="" type="1" index="40" bodypart="1" level="1" buy_currency="1" buy_amt="0" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳-缺失" spriteAlpha="" armatureName="脑壳-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="43" jump_frequency="" type="1" index="41" bodypart="1" level="40" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="25,-15" icon2offset="" spriteName="头发17-1_1,头发17-1后" spriteAlpha="" armatureName="头发17-1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
-  <item id="44" jump_frequency="" type="1" index="42" bodypart="1" level="40" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="25,-15" icon2offset="" spriteName="头发17-2,头发17-2后" spriteAlpha="" armatureName="头发17-2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
-  <item id="45" jump_frequency="" type="1" index="43" bodypart="1" level="40" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="25,-15" icon2offset="" spriteName="头发17-3,头发17-3后" spriteAlpha="" armatureName="头发17-3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
-  <item id="401" jump_frequency="" type="6" index="0" bodypart="3" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子1" spriteAlpha="" armatureName="鞋子1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="402" jump_frequency="" type="6" index="1" bodypart="3" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="2" spriteAlpha="" armatureName="鞋子4" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="403" jump_frequency="" type="6" index="2" bodypart="3" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="3" spriteAlpha="" armatureName="鞋子5" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="404" jump_frequency="" type="6" index="3" bodypart="3" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="4" spriteAlpha="" armatureName="鞋子6" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="405" jump_frequency="" type="6" index="4" bodypart="3" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子2" spriteAlpha="" armatureName="鞋子2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="406" jump_frequency="" type="6" index="5" bodypart="3" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" icon2offset="" spriteName="12" spriteAlpha="" armatureName="鞋子14" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="407" jump_frequency="" type="6" index="6" bodypart="3" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="13" spriteAlpha="" armatureName="鞋子15" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="408" jump_frequency="" type="6" index="7" bodypart="3" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子3" spriteAlpha="" armatureName="鞋子3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="409" jump_frequency="" type="6" index="8" bodypart="3" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="11" spriteAlpha="" armatureName="鞋子13" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="410" jump_frequency="" type="6" index="9" bodypart="3" level="30" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="6" spriteAlpha="" armatureName="鞋子8" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="411" jump_frequency="" type="6" index="10" bodypart="3" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="5" spriteAlpha="" armatureName="鞋子7" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="412" jump_frequency="" type="6" index="11" bodypart="3" level="40" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="7" spriteAlpha="" armatureName="鞋子9" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="413" jump_frequency="" type="6" index="12" bodypart="3" level="40" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="8" spriteAlpha="" armatureName="鞋子10" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="414" jump_frequency="" type="6" index="13" bodypart="3" level="50" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="9" spriteAlpha="" armatureName="鞋子11" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="415" jump_frequency="" type="6" index="14" bodypart="3" level="50" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="10" spriteAlpha="" armatureName="鞋子12" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="416" jump_frequency="" type="6" index="15" bodypart="3" level="30" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="0" icon1offset="-35,0" icon2offset="" spriteName="鞋子14-1,鞋子14-2" spriteAlpha="" armatureName="鞋子16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="35,0" desc="DesignByKnife" />
-  <item id="417" jump_frequency="" type="6" index="16" bodypart="3" level="30" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="-35,0" icon2offset="" spriteName="鞋子15-1,鞋子15-2" spriteAlpha="" armatureName="鞋子17" extraBodypart="" extraArmatureName="" ignore="" icon0offset="35,0" desc="DesignByKnife" />
-  <item id="418" jump_frequency="" type="6" index="17" bodypart="3" level="50" buy_currency="2" buy_amt="350" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子14a" spriteAlpha="" armatureName="鞋子14a" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="419" jump_frequency="" type="6" index="18" bodypart="3" level="60" buy_currency="2" buy_amt="400" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子14b" spriteAlpha="" armatureName="鞋子14b" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="420" jump_frequency="" type="6" index="19" bodypart="3" level="60" buy_currency="2" buy_amt="400" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子14c" spriteAlpha="" armatureName="鞋子14c" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="421" jump_frequency="" type="6" index="20" bodypart="3" level="50" buy_currency="2" buy_amt="350" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="0" icon1offset="" icon2offset="" spriteName="新鞋子16" spriteAlpha="" armatureName="新鞋子16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="423" jump_frequency="" type="6" index="22" bodypart="3" level="40" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="-8" icon1offset="" icon2offset="" spriteName="鞋子18" spriteAlpha="" armatureName="鞋子18" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
-  <item id="422" jump_frequency="" type="6" index="21" bodypart="3" level="1" buy_currency="1" buy_amt="1" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" icon2offset="" spriteName="鞋子-缺失" spriteAlpha="" armatureName="鞋子-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="201" jump_frequency="" type="3" index="0" bodypart="2" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子1" spriteAlpha="" armatureName="裙子1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="202" jump_frequency="" type="3" index="1" bodypart="2" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子2" spriteAlpha="" armatureName="裙子2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="203" jump_frequency="" type="3" index="2" bodypart="2" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子3" spriteAlpha="" armatureName="裙子3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="204" jump_frequency="" type="3" index="3" bodypart="2" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子4" spriteAlpha="" armatureName="裙子4" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="205" jump_frequency="" type="3" index="4" bodypart="2" level="" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="94" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子5" spriteAlpha="" armatureName="裙子5" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="206" jump_frequency="" type="3" index="5" bodypart="2" level="30" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="92" iconOffset="-3.75" icon1offset="" icon2offset="" spriteName="裙子6" spriteAlpha="" armatureName="裙子6" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="207" jump_frequency="" type="3" index="6" bodypart="2" level="30" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="-5.5" icon1offset="" icon2offset="" spriteName="裙子7" spriteAlpha="" armatureName="裙子7" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="208" jump_frequency="" type="3" index="7" bodypart="2" level="30" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="-5.5" icon1offset="" icon2offset="" spriteName="裙子7(粉)" spriteAlpha="" armatureName="裙子7(粉)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="209" jump_frequency="" type="3" index="8" bodypart="2" level="30" buy_currency="2" buy_amt="600" buy_advance_currency="" buy_advance_amt="" pixelSize="116" iconOffset="-8" icon1offset="" icon2offset="" spriteName="裙子8" spriteAlpha="" armatureName="裙子8" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="210" jump_frequency="" type="3" index="9" bodypart="2" level="40" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子9" spriteAlpha="" armatureName="裙子9" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="211" jump_frequency="" type="3" index="10" bodypart="2" level="40" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-2,-0.06" icon2offset="" spriteName="裙子10,衣服10" spriteAlpha="" armatureName="裙子10" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="212" jump_frequency="" type="3" index="11" bodypart="2" level="40" buy_currency="2" buy_amt="1000" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-2,-0.06" icon2offset="" spriteName="裙子10(黄),衣服10(黄)" spriteAlpha="" armatureName="裙子10(黄)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="213" jump_frequency="" type="3" index="12" bodypart="2" level="40" buy_currency="2" buy_amt="1000" buy_advance_currency="" buy_advance_amt="" pixelSize="85" iconOffset="" icon1offset="11.96,-14.87" icon2offset="" spriteName="裙子11,衣服11" spriteAlpha="" armatureName="裙子11" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="214" jump_frequency="" type="3" index="13" bodypart="2" level="50" buy_currency="2" buy_amt="1500" buy_advance_currency="" buy_advance_amt="" pixelSize="85" iconOffset="" icon1offset="11.96,-14.87" icon2offset="" spriteName="裙子11(粉),衣服11(粉)" spriteAlpha="" armatureName="裙子11(粉)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="215" jump_frequency="" type="3" index="14" bodypart="2" level="50" buy_currency="2" buy_amt="1500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子12" spriteAlpha="" armatureName="裙子12" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="216" jump_frequency="" type="3" index="15" bodypart="2" level="50" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子13" spriteAlpha="" armatureName="裙子13" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="217" jump_frequency="" type="3" index="16" bodypart="2" level="50" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子13(紫)" spriteAlpha="" armatureName="裙子13(紫)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="218" jump_frequency="" type="3" index="17" bodypart="2" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="下衣14" spriteAlpha="" armatureName="下衣14" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="219" jump_frequency="" type="3" index="18" bodypart="2" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="下衣15" spriteAlpha="" armatureName="裙子15" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="220" jump_frequency="" type="3" index="19" bodypart="2" level="60" buy_currency="2" buy_amt="2200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="下衣14a" spriteAlpha="" armatureName="下衣14a" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="221" jump_frequency="" type="3" index="20" bodypart="2" level="70" buy_currency="2" buy_amt="2500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="1.08,77.07" icon2offset="" spriteName="下衣14b,下衣14b蝴蝶结" spriteAlpha="" armatureName="下衣14b" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="222" jump_frequency="" type="3" index="21" bodypart="2" level="70" buy_currency="2" buy_amt="2500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="1.08,77.08" icon2offset="" spriteName="下衣14c,下衣14c蝴蝶结" spriteAlpha="" armatureName="下衣14c" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="223" jump_frequency="" type="3" index="22" bodypart="2" level="60" buy_currency="2" buy_amt="2200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子16" spriteAlpha="" armatureName="裙子16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="224" jump_frequency="" type="3" index="23" bodypart="2" level="1" buy_currency="1" buy_amt="0" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子-缺失" spriteAlpha="" armatureName="裙子-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="225" jump_frequency="" type="3" index="24" bodypart="2" level="40" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子17_1" spriteAlpha="" armatureName="裙子17" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
-  <item id="601" jump_frequency="" type="4" index="0" bodypart="4" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰品1" spriteAlpha="" armatureName="头饰品1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="602" jump_frequency="" type="4" index="1" bodypart="4" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰品2" spriteAlpha="" armatureName="头饰品2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="603" jump_frequency="" type="4" index="2" bodypart="4" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰品3" spriteAlpha="" armatureName="头饰品3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="604" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰4" spriteAlpha="" armatureName="头饰4" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="605" jump_frequency="" type="4" index="4" bodypart="4" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰5" spriteAlpha="" armatureName="头饰5" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="606" jump_frequency="" type="4" index="5" bodypart="4" level="30" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰6" spriteAlpha="" armatureName="头饰6" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="607" jump_frequency="" type="4" index="6" bodypart="4" level="30" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰7" spriteAlpha="" armatureName="头饰7" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="608" jump_frequency="" type="4" index="7" bodypart="4" level="40" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰8" spriteAlpha="" armatureName="头饰8" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="609" jump_frequency="" type="4" index="8" bodypart="4" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰9" spriteAlpha="" armatureName="头饰9" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="610" jump_frequency="" type="4" index="9" bodypart="4" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰10" spriteAlpha="" armatureName="头饰10" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="611" jump_frequency="" type="4" index="10" bodypart="4" level="50" buy_currency="2" buy_amt="350" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰11" spriteAlpha="" armatureName="头饰11" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="612" jump_frequency="" type="4" index="11" bodypart="4" level="50" buy_currency="2" buy_amt="400" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰12" spriteAlpha="" armatureName="头饰12" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="613" jump_frequency="" type="4" index="12" bodypart="4" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="" icon2offset="" spriteName="装饰14" spriteAlpha="" armatureName="装饰14" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="614" jump_frequency="" type="4" index="13" bodypart="4" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰15" spriteAlpha="" armatureName="头饰15" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="615" jump_frequency="" type="4" index="14" bodypart="4" level="80" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰13-1" spriteAlpha="" armatureName="头饰13-1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="616" jump_frequency="" type="4" index="15" bodypart="4" level="80" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰13-2" spriteAlpha="" armatureName="头饰13-2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="618" jump_frequency="" type="4" index="16" bodypart="4" level="1" buy_currency="1" buy_amt="1" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰-缺失" spriteAlpha="" armatureName="头饰-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="619" jump_frequency="" type="4" index="17" bodypart="4" level="80" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="发饰17-1" spriteAlpha="" armatureName="发饰17-1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="620" jump_frequency="" type="4" index="18" bodypart="4" level="40" buy_currency="2" buy_amt="120" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="发饰17-2" spriteAlpha="" armatureName="发饰17-2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
-  <item id="617" jump_frequency="" type="4" index="15" bodypart="4" level="60" buy_currency="2" buy_amt="450" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="帽子16" spriteAlpha="" armatureName="帽子16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="801" jump_frequency="" type="2" index="0" bodypart="5" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-55.32,19.11" icon2offset="53.41,16.68" spriteName="上衣1,上衣1袖子右,上衣1袖子左" spriteAlpha="" armatureName="上衣1" extraBodypart="10,9" extraArmatureName="短袖1右,短袖1左" ignore="" icon0offset="15,0" desc="" />
-  <item id="802" jump_frequency="" type="2" index="1" bodypart="5" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-55.26,18.83" icon2offset="52.58,17.45" spriteName="上衣2,上衣2袖子右,上衣2袖子左" spriteAlpha="" armatureName="上衣2" extraBodypart="10,9" extraArmatureName="短袖2右,短袖2左" ignore="" icon0offset="" desc="" />
-  <item id="803" jump_frequency="" type="2" index="2" bodypart="5" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-55.26,18.83" icon2offset="52.58,17.45" spriteName="上衣3,上衣2袖子右,上衣2袖子左" spriteAlpha="" armatureName="上衣3" extraBodypart="10,9" extraArmatureName="短袖2右,短袖2左" ignore="" icon0offset="" desc="" />
-  <item id="804" jump_frequency="" type="2" index="3" bodypart="5" level="" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="-16" icon1offset="" icon2offset="" spriteName="上衣4" spriteAlpha="" armatureName="上衣4" extraBodypart="8,7" extraArmatureName="长袖9右,长袖9左" ignore="" icon0offset="" desc="" />
-  <item id="805" jump_frequency="" type="2" index="4" bodypart="5" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-55.26,21.94" icon2offset="53.82,20.56" spriteName="上衣5,上衣2袖子右,上衣2袖子左" spriteAlpha="" armatureName="上衣5" extraBodypart="10,9" extraArmatureName="短袖2右,短袖2左" ignore="" icon0offset="" desc="" />
-  <item id="806" jump_frequency="" type="2" index="5" bodypart="5" level="30" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-59.82,15.89" icon2offset="57.33,13.39" spriteName="上衣6,上衣6袖子右,上衣6袖子左" spriteAlpha="" armatureName="上衣6" extraBodypart="10,9" extraArmatureName="短袖6右,短袖6左" ignore="" icon0offset="" desc="" />
-  <item id="807" jump_frequency="" type="2" index="6" bodypart="5" level="30" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-59.56,16.23" icon2offset="56.97,13.65" spriteName="上衣7,上衣7袖子右,上衣7袖子左" spriteAlpha="" armatureName="上衣7" extraBodypart="10,9" extraArmatureName="短袖7右,短袖7左" ignore="" icon0offset="" desc="" />
-  <item id="808" jump_frequency="" type="2" index="7" bodypart="5" level="30" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-59.56,16.23" icon2offset="56.97,13.65" spriteName="上衣7(粉),上衣7粉袖子右,上衣7粉袖子左" spriteAlpha="" armatureName="上衣7(粉)" extraBodypart="10,9" extraArmatureName="短袖7粉右,短袖7粉左" ignore="" icon0offset="" desc="" />
-  <item id="809" jump_frequency="" type="2" index="8" bodypart="5" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣8" spriteAlpha="" armatureName="上衣8" extraBodypart="8,7" extraArmatureName="长袖9右,长袖9左" ignore="" icon0offset="" desc="" />
-  <item id="810" jump_frequency="" type="2" index="9" bodypart="5" level="40" buy_currency="2" buy_amt="350" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣9" spriteAlpha="" armatureName="上衣9" extraBodypart="8,7" extraArmatureName="长袖9右,长袖10左" ignore="" icon0offset="" desc="" />
-  <item id="811" jump_frequency="" type="2" index="10" bodypart="5" level="40" buy_currency="2" buy_amt="400" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣10" spriteAlpha="" armatureName="上衣10" extraBodypart="8,7" extraArmatureName="长袖9右,长袖11左" ignore="" icon0offset="" desc="" />
-  <item id="812" jump_frequency="" type="2" index="11" bodypart="5" level="40" buy_currency="2" buy_amt="450" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣10(黄)" spriteAlpha="" armatureName="上衣10(黄)" extraBodypart="8,7" extraArmatureName="长袖9右,长袖12左" ignore="" icon0offset="" desc="" />
-  <item id="813" jump_frequency="" type="2" index="12" bodypart="5" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣11" spriteAlpha="" armatureName="上衣11" extraBodypart="8,7" extraArmatureName="长袖9右,长袖13左" ignore="" icon0offset="" desc="" />
-  <item id="814" jump_frequency="" type="2" index="13" bodypart="5" level="50" buy_currency="2" buy_amt="550" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣11(粉)" spriteAlpha="" armatureName="上衣11(粉)" extraBodypart="8,7" extraArmatureName="长袖9右,长袖14左" ignore="" icon0offset="" desc="" />
-  <item id="815" jump_frequency="" type="2" index="14" bodypart="5" level="50" buy_currency="2" buy_amt="600" buy_advance_currency="" buy_advance_amt="" pixelSize="85" iconOffset="" icon1offset="-59.77,16.52" icon2offset="56.81,13.58" spriteName="上衣12,上衣12袖子右,上衣12袖子左" spriteAlpha="" armatureName="上衣12" extraBodypart="10,9" extraArmatureName="短袖12右,短袖12左" ignore="" icon0offset="" desc="" />
-  <item id="816" jump_frequency="" type="2" index="15" bodypart="5" level="50" buy_currency="2" buy_amt="650" buy_advance_currency="" buy_advance_amt="" pixelSize="60" iconOffset="" icon1offset="-50,36.31" icon2offset="57.8,33.83" spriteName="上衣13,上衣13袖子右,上衣13袖子左" spriteAlpha="" armatureName="上衣13" extraBodypart="10,9" extraArmatureName="短袖13右,短袖13左" ignore="" icon0offset="" desc="" />
-  <item id="817" jump_frequency="" type="2" index="16" bodypart="5" level="50" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-59.77,36.31" icon2offset="57.8,33.83" spriteName="上衣13(紫),上衣13蓝袖子右,上衣13蓝袖子左" spriteAlpha="" armatureName="上衣13(紫)" extraBodypart="10,9" extraArmatureName="短袖13蓝右,短袖13蓝左" ignore="" icon0offset="" desc="" />
-  <item id="818" jump_frequency="" type="2" index="17" bodypart="5" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣14" spriteAlpha="" armatureName="上衣14" extraBodypart="10,9" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="819" jump_frequency="" type="2" index="18" bodypart="5" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="73" iconOffset="" icon1offset="71.85,2.89" icon2offset="-66.24,-0.4" spriteName="上衣15,上衣15(袖子)-1,上衣15(袖子)-2" spriteAlpha="" armatureName="上衣15" extraBodypart="10,9" extraArmatureName="上衣15(袖子)左,上衣15(袖子)右" ignore="" icon0offset="" desc="DesignByKnife" />
-  <item id="820" jump_frequency="" type="2" index="19" bodypart="5" level="50" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣14a" spriteAlpha="" armatureName="上衣14a" extraBodypart="10,9" extraArmatureName="上衣14a-袖子2,上衣14a-袖子1" ignore="" icon0offset="" desc="" />
-  <item id="821" jump_frequency="" type="2" index="20" bodypart="5" level="70" buy_currency="2" buy_amt="800" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="" icon1offset="-59.56,16.23" icon2offset="56.97,13.65" spriteName="上衣14b,上衣14b-袖子2,上衣14b-袖子1" spriteAlpha="" armatureName="上衣14b" extraBodypart="10,9" extraArmatureName="上衣14b-袖子2,上衣14b-袖子1" ignore="" icon0offset="" desc="" />
-  <item id="822" jump_frequency="" type="2" index="21" bodypart="5" level="70" buy_currency="2" buy_amt="800" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="" icon1offset="-59.56,16.23" icon2offset="56.97,13.65" spriteName="上衣14c,上衣14c-袖子2,上衣14c-袖子1" spriteAlpha="" armatureName="上衣14c" extraBodypart="10,9" extraArmatureName="上衣14c-袖子2,上衣14c-袖子1" ignore="" icon0offset="" desc="" />
-  <item id="823" jump_frequency="" type="2" index="22" bodypart="5" level="60" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="" icon1offset="-65,25" icon2offset="50,22" spriteName="上衣16,上衣16袖子2,上衣16袖子1_1" spriteAlpha="" armatureName="上衣16" extraBodypart="10,9" extraArmatureName="上衣16袖子2,上衣16袖子1" ignore="" icon0offset="" desc="" />
-  <item id="824" jump_frequency="" type="2" index="23" bodypart="5" level="1" buy_currency="1" buy_amt="1" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣-缺失" spriteAlpha="" armatureName="上衣-缺失" extraBodypart="10,9" extraArmatureName="Empty,Empty" ignore="1" icon0offset="" desc="" />
-  <item id="825" jump_frequency="" type="2" index="24" bodypart="5" level="40" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="衣服17" spriteAlpha="" armatureName="衣服17" extraBodypart="10,9" extraArmatureName="袖子17-2,袖子17-1" ignore="" icon0offset="" desc="DesignByMiracle" />
-  <item id="1001" jump_frequency="" type="5" index="0" bodypart="6" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="禁止标志" spriteAlpha="0.75" armatureName="Empty" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="1002" jump_frequency="" type="5" index="1" bodypart="6" level="50" buy_currency="2" buy_amt="1500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀1" spriteAlpha="" armatureName="翅膀1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="1003" jump_frequency="" type="5" index="2" bodypart="6" level="80" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀2" spriteAlpha="" armatureName="翅膀2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="1004" jump_frequency="" type="5" index="3" bodypart="6" level="90" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀3" spriteAlpha="" armatureName="翅膀3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="1005" jump_frequency="" type="5" index="4" bodypart="6" level="100" buy_currency="2" buy_amt="2500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀4" spriteAlpha="" armatureName="翅膀4" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="1006" jump_frequency="" type="5" index="5" bodypart="6" level="90" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀5" spriteAlpha="" armatureName="翅膀5" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
-  <item id="1007" jump_frequency="" type="5" index="6" bodypart="6" level="1" buy_currency="1" buy_amt="0" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀-缺失" spriteAlpha="" armatureName="翅膀-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="1200" jump_frequency="" type="" index="" bodypart="11" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="眼睛1" spriteAlpha="" armatureName="眼睛1" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="1201" jump_frequency="" type="" index="" bodypart="11" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="眼睛2" spriteAlpha="" armatureName="眼睛2" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="1202" jump_frequency="" type="" index="" bodypart="11" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="眼睛3" spriteAlpha="" armatureName="眼睛3" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="1203" jump_frequency="" type="" index="" bodypart="12" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="嘴巴1" spriteAlpha="" armatureName="嘴巴1" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="1204" jump_frequency="" type="" index="" bodypart="12" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="嘴巴2" spriteAlpha="" armatureName="嘴巴2" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <item id="1205" jump_frequency="" type="" index="" bodypart="12" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="嘴巴3" spriteAlpha="" armatureName="嘴巴3" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
-  <comment>
+<data>
+  <item id="1" jump_frequency="10" type="" index="" bodypart="" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="" spriteAlpha="" armatureName="" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="2" jump_frequency="" type="1" index="0" bodypart="1" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="120" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳1" spriteAlpha="" armatureName="脑壳1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="3" jump_frequency="" type="1" index="1" bodypart="1" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="120" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳1(棕色)" spriteAlpha="" armatureName="脑壳1(棕色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="4" jump_frequency="" type="1" index="2" bodypart="1" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="120" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳1(粉色)" spriteAlpha="" armatureName="脑壳1(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="5" jump_frequency="" type="1" index="3" bodypart="1" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="105" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳2(黄色)" spriteAlpha="" armatureName="脑壳2(黄色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="6" jump_frequency="" type="1" index="4" bodypart="1" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="105" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳2" spriteAlpha="" armatureName="脑壳2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="7" jump_frequency="" type="1" index="5" bodypart="1" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="105" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳2(粉色)" spriteAlpha="" armatureName="脑壳2(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="8" jump_frequency="" type="1" index="6" bodypart="1" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="17.5" icon1offset="25.38,-112.81" icon2offset="" spriteName="脑壳3+上(粉色),脑壳3+下(粉色)" spriteAlpha="" armatureName="脑壳3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="9" jump_frequency="" type="1" index="7" bodypart="1" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="17.5" icon1offset="25.38,-112.81" icon2offset="" spriteName="脑壳3+上(黄色),脑壳3+下(黄色)脑壳2——下" spriteAlpha="" armatureName="脑壳3(黄色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="10" jump_frequency="" type="1" index="8" bodypart="1" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="17.5" icon1offset="25.38,-112.81" icon2offset="" spriteName="脑壳3+上(紫色),脑壳3+下(紫色)" spriteAlpha="" armatureName="脑壳3(紫色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="11" jump_frequency="" type="1" index="9" bodypart="1" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="15" icon1offset="1.82,-132.79" icon2offset="" spriteName="脑壳2(黄色),脑壳3+下(黄色)脑壳2——下" spriteAlpha="" armatureName="脑壳2B(黄色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="12" jump_frequency="" type="1" index="10" bodypart="1" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="15" icon1offset="1.82,-132.79" icon2offset="" spriteName="脑壳2,脑壳2+下(棕色)另一种发型" spriteAlpha="" armatureName="脑壳2B(棕色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="13" jump_frequency="" type="1" index="11" bodypart="1" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="15" icon1offset="1.82,-132.79" icon2offset="" spriteName="脑壳2(粉色),脑壳2+下(粉色)另一种发型" spriteAlpha="" armatureName="脑壳2B(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="14" jump_frequency="" type="1" index="12" bodypart="1" level="30" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头发4(粉色)" spriteAlpha="" armatureName="头发4(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="15" jump_frequency="" type="1" index="13" bodypart="1" level="30" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头发4(蓝色)" spriteAlpha="" armatureName="头发4(蓝色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="16" jump_frequency="" type="1" index="14" bodypart="1" level="30" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头发4(绿色)" spriteAlpha="" armatureName="头发4(绿色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="17" jump_frequency="" type="1" index="15" bodypart="1" level="40" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发5(棕色)" spriteAlpha="" armatureName="头发5(棕色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="18" jump_frequency="" type="1" index="16" bodypart="1" level="40" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发5(红色)" spriteAlpha="" armatureName="头发5(红色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="19" jump_frequency="" type="1" index="17" bodypart="1" level="40" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发5(黄色)" spriteAlpha="" armatureName="头发5(黄色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="20" jump_frequency="" type="1" index="18" bodypart="1" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="15" icon1offset="109.42,-91.88" icon2offset="" spriteName="头发6+上(棕),头发6+下(棕)" spriteAlpha="" armatureName="头发6(棕)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="21" jump_frequency="" type="1" index="19" bodypart="1" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="15" icon1offset="109.42,-91.88" icon2offset="" spriteName="头发6+上(粉),头发6+下(粉)" spriteAlpha="" armatureName="头发6(粉)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="22" jump_frequency="" type="1" index="20" bodypart="1" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="15" icon1offset="109.42,-91.88" icon2offset="" spriteName="头发6+上(绿),头发6+下(绿)" spriteAlpha="" armatureName="头发6(绿)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="23" jump_frequency="" type="1" index="21" bodypart="1" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="15" icon1offset="109.42,-91.88" icon2offset="" spriteName="头发6+上(黄),头发6+下(黄)" spriteAlpha="" armatureName="头发6(黄)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="24" jump_frequency="" type="1" index="22" bodypart="1" level="50" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发7(橙)" spriteAlpha="" armatureName="头发7(橙)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="25" jump_frequency="" type="1" index="23" bodypart="1" level="50" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发7(米白)" spriteAlpha="" armatureName="头发7(米白)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="26" jump_frequency="" type="1" index="24" bodypart="1" level="50" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="头发7(蓝色)" spriteAlpha="" armatureName="头发7(蓝色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="27" jump_frequency="" type="1" index="25" bodypart="1" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="115" iconOffset="" icon1offset="" icon2offset="" spriteName="头发8(粉)" spriteAlpha="" armatureName="头发8(粉)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="28" jump_frequency="" type="1" index="26" bodypart="1" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="115" iconOffset="" icon1offset="" icon2offset="" spriteName="头发8(紫)" spriteAlpha="" armatureName="头发8(紫)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="29" jump_frequency="" type="1" index="27" bodypart="1" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="115" iconOffset="" icon1offset="" icon2offset="" spriteName="头发8(绿)" spriteAlpha="" armatureName="头发8(绿)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="30" jump_frequency="" type="1" index="28" bodypart="1" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="115" iconOffset="" icon1offset="" icon2offset="" spriteName="头发8(黑)" spriteAlpha="" armatureName="头发8(黑)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="31" jump_frequency="" type="1" index="29" bodypart="1" level="30" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发14(粉色)" spriteAlpha="" armatureName="头发14(粉色)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="32" jump_frequency="" type="1" index="30" bodypart="1" level="23" buy_currency="2" buy_amt="38" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发9-蓝" spriteAlpha="" armatureName="头发9-蓝" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="33" jump_frequency="" type="1" index="31" bodypart="1" level="23" buy_currency="2" buy_amt="38" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发9(白)" spriteAlpha="" armatureName="头发9(白)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="34" jump_frequency="" type="1" index="32" bodypart="1" level="23" buy_currency="2" buy_amt="38" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发9-粉" spriteAlpha="" armatureName="头发9-粉" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="35" jump_frequency="" type="1" index="33" bodypart="1" level="23" buy_currency="2" buy_amt="38" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="头发9-黄" spriteAlpha="" armatureName="头发9-黄" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="36" jump_frequency="" type="1" index="34" bodypart="1" level="30" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="105" iconOffset="10" icon1offset="-6.67,-77.62" icon2offset="" spriteName="头发15(咖啡),头发15(咖啡)+下" spriteAlpha="" armatureName="头发15(咖啡)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="37" jump_frequency="" type="1" index="35" bodypart="1" level="70" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="95" iconOffset="" icon1offset="" icon2offset="" spriteName="头发10(紫)" spriteAlpha="" armatureName="头发10(紫)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="38" jump_frequency="" type="1" index="36" bodypart="1" level="70" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="95" iconOffset="" icon1offset="" icon2offset="" spriteName="头发10(棕)" spriteAlpha="" armatureName="头发10(棕)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="39" jump_frequency="" type="1" index="37" bodypart="1" level="70" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="95.34,-151.30" icon2offset="" spriteName="头发11(蓝),头发11(蓝)后" spriteAlpha="" armatureName="头发11(蓝)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="-70,100" desc="" />
+  <item id="40" jump_frequency="" type="1" index="38" bodypart="1" level="70" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="95.34,-151.30" icon2offset="" spriteName="头发11(棕),头发11(棕)后" spriteAlpha="" armatureName="头发11(棕)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="-70,100" desc="" />
+  <item id="41" jump_frequency="" type="1" index="39" bodypart="1" level="60" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="-40.1,-56.94" icon2offset="" spriteName="头发16,头发16后" spriteAlpha="" armatureName="头发16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="42" jump_frequency="" type="1" index="40" bodypart="1" level="1" buy_currency="1" buy_amt="0" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="脑壳-缺失" spriteAlpha="" armatureName="脑壳-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="43" jump_frequency="" type="1" index="41" bodypart="1" level="40" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="25,-15" icon2offset="" spriteName="头发17-1_1,头发17-1后" spriteAlpha="" armatureName="头发17-1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
+  <item id="44" jump_frequency="" type="1" index="42" bodypart="1" level="40" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="25,-15" icon2offset="" spriteName="头发17-2,头发17-2后" spriteAlpha="" armatureName="头发17-2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
+  <item id="45" jump_frequency="" type="1" index="43" bodypart="1" level="40" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="25,-15" icon2offset="" spriteName="头发17-3,头发17-3后" spriteAlpha="" armatureName="头发17-3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
+  <item id="401" jump_frequency="" type="6" index="0" bodypart="3" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子1" spriteAlpha="" armatureName="鞋子1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="402" jump_frequency="" type="6" index="1" bodypart="3" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="2" spriteAlpha="" armatureName="鞋子4" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="403" jump_frequency="" type="6" index="2" bodypart="3" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="3" spriteAlpha="" armatureName="鞋子5" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="404" jump_frequency="" type="6" index="3" bodypart="3" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="4" spriteAlpha="" armatureName="鞋子6" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="405" jump_frequency="" type="6" index="4" bodypart="3" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子2" spriteAlpha="" armatureName="鞋子2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="406" jump_frequency="" type="6" index="5" bodypart="3" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" icon2offset="" spriteName="12" spriteAlpha="" armatureName="鞋子14" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="407" jump_frequency="" type="6" index="6" bodypart="3" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="13" spriteAlpha="" armatureName="鞋子15" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="408" jump_frequency="" type="6" index="7" bodypart="3" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子3" spriteAlpha="" armatureName="鞋子3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="409" jump_frequency="" type="6" index="8" bodypart="3" level="" buy_currency="1" buy_amt="10000000" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="11" spriteAlpha="" armatureName="鞋子13" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="410" jump_frequency="" type="6" index="9" bodypart="3" level="30" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="6" spriteAlpha="" armatureName="鞋子8" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="411" jump_frequency="" type="6" index="10" bodypart="3" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="5" spriteAlpha="" armatureName="鞋子7" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="412" jump_frequency="" type="6" index="11" bodypart="3" level="40" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="7" spriteAlpha="" armatureName="鞋子9" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="413" jump_frequency="" type="6" index="12" bodypart="3" level="40" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="8" spriteAlpha="" armatureName="鞋子10" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="414" jump_frequency="" type="6" index="13" bodypart="3" level="50" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="9" spriteAlpha="" armatureName="鞋子11" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="415" jump_frequency="" type="6" index="14" bodypart="3" level="50" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="10" spriteAlpha="" armatureName="鞋子12" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="416" jump_frequency="" type="6" index="15" bodypart="3" level="30" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="0" icon1offset="-35,0" icon2offset="" spriteName="鞋子14-1,鞋子14-2" spriteAlpha="" armatureName="鞋子16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="35,0" desc="DesignByKnife" />
+  <item id="417" jump_frequency="" type="6" index="16" bodypart="3" level="30" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="-35,0" icon2offset="" spriteName="鞋子15-1,鞋子15-2" spriteAlpha="" armatureName="鞋子17" extraBodypart="" extraArmatureName="" ignore="" icon0offset="35,0" desc="DesignByKnife" />
+  <item id="418" jump_frequency="" type="6" index="17" bodypart="3" level="50" buy_currency="2" buy_amt="350" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子14a" spriteAlpha="" armatureName="鞋子14a" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="419" jump_frequency="" type="6" index="18" bodypart="3" level="60" buy_currency="2" buy_amt="400" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子14b" spriteAlpha="" armatureName="鞋子14b" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="420" jump_frequency="" type="6" index="19" bodypart="3" level="60" buy_currency="2" buy_amt="400" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="15" icon1offset="" icon2offset="" spriteName="鞋子14c" spriteAlpha="" armatureName="鞋子14c" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="421" jump_frequency="" type="6" index="20" bodypart="3" level="50" buy_currency="2" buy_amt="350" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="0" icon1offset="" icon2offset="" spriteName="新鞋子16" spriteAlpha="" armatureName="新鞋子16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="423" jump_frequency="" type="6" index="22" bodypart="3" level="40" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="-8" icon1offset="" icon2offset="" spriteName="鞋子18" spriteAlpha="" armatureName="鞋子18" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
+  <item id="422" jump_frequency="" type="6" index="21" bodypart="3" level="1" buy_currency="1" buy_amt="1" buy_advance_currency="" buy_advance_amt="" pixelSize="40" iconOffset="" icon1offset="" icon2offset="" spriteName="鞋子-缺失" spriteAlpha="" armatureName="鞋子-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="201" jump_frequency="" type="3" index="0" bodypart="2" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子1" spriteAlpha="" armatureName="裙子1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="202" jump_frequency="" type="3" index="1" bodypart="2" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子2" spriteAlpha="" armatureName="裙子2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="203" jump_frequency="" type="3" index="2" bodypart="2" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子3" spriteAlpha="" armatureName="裙子3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="204" jump_frequency="" type="3" index="3" bodypart="2" level="" buy_currency="2" buy_amt="50" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子4" spriteAlpha="" armatureName="裙子4" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="205" jump_frequency="" type="3" index="4" bodypart="2" level="" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="94" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子5" spriteAlpha="" armatureName="裙子5" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="206" jump_frequency="" type="3" index="5" bodypart="2" level="30" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="92" iconOffset="-3.75" icon1offset="" icon2offset="" spriteName="裙子6" spriteAlpha="" armatureName="裙子6" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="207" jump_frequency="" type="3" index="6" bodypart="2" level="30" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="-5.5" icon1offset="" icon2offset="" spriteName="裙子7" spriteAlpha="" armatureName="裙子7" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="208" jump_frequency="" type="3" index="7" bodypart="2" level="30" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="-5.5" icon1offset="" icon2offset="" spriteName="裙子7(粉)" spriteAlpha="" armatureName="裙子7(粉)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="209" jump_frequency="" type="3" index="8" bodypart="2" level="30" buy_currency="2" buy_amt="600" buy_advance_currency="" buy_advance_amt="" pixelSize="116" iconOffset="-8" icon1offset="" icon2offset="" spriteName="裙子8" spriteAlpha="" armatureName="裙子8" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="210" jump_frequency="" type="3" index="9" bodypart="2" level="40" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子9" spriteAlpha="" armatureName="裙子9" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="211" jump_frequency="" type="3" index="10" bodypart="2" level="40" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-2,-0.06" icon2offset="" spriteName="裙子10,衣服10" spriteAlpha="" armatureName="裙子10" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="212" jump_frequency="" type="3" index="11" bodypart="2" level="40" buy_currency="2" buy_amt="1000" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-2,-0.06" icon2offset="" spriteName="裙子10(黄),衣服10(黄)" spriteAlpha="" armatureName="裙子10(黄)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="213" jump_frequency="" type="3" index="12" bodypart="2" level="40" buy_currency="2" buy_amt="1000" buy_advance_currency="" buy_advance_amt="" pixelSize="85" iconOffset="" icon1offset="11.96,-14.87" icon2offset="" spriteName="裙子11,衣服11" spriteAlpha="" armatureName="裙子11" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="214" jump_frequency="" type="3" index="13" bodypart="2" level="50" buy_currency="2" buy_amt="1500" buy_advance_currency="" buy_advance_amt="" pixelSize="85" iconOffset="" icon1offset="11.96,-14.87" icon2offset="" spriteName="裙子11(粉),衣服11(粉)" spriteAlpha="" armatureName="裙子11(粉)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="215" jump_frequency="" type="3" index="14" bodypart="2" level="50" buy_currency="2" buy_amt="1500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子12" spriteAlpha="" armatureName="裙子12" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="216" jump_frequency="" type="3" index="15" bodypart="2" level="50" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子13" spriteAlpha="" armatureName="裙子13" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="217" jump_frequency="" type="3" index="16" bodypart="2" level="50" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子13(紫)" spriteAlpha="" armatureName="裙子13(紫)" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="218" jump_frequency="" type="3" index="17" bodypart="2" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="下衣14" spriteAlpha="" armatureName="下衣14" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="219" jump_frequency="" type="3" index="18" bodypart="2" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="下衣15" spriteAlpha="" armatureName="裙子15" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="220" jump_frequency="" type="3" index="19" bodypart="2" level="60" buy_currency="2" buy_amt="2200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="下衣14a" spriteAlpha="" armatureName="下衣14a" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="221" jump_frequency="" type="3" index="20" bodypart="2" level="70" buy_currency="2" buy_amt="2500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="1.08,77.07" icon2offset="" spriteName="下衣14b,下衣14b蝴蝶结" spriteAlpha="" armatureName="下衣14b" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="222" jump_frequency="" type="3" index="21" bodypart="2" level="70" buy_currency="2" buy_amt="2500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="1.08,77.08" icon2offset="" spriteName="下衣14c,下衣14c蝴蝶结" spriteAlpha="" armatureName="下衣14c" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="223" jump_frequency="" type="3" index="22" bodypart="2" level="60" buy_currency="2" buy_amt="2200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子16" spriteAlpha="" armatureName="裙子16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="224" jump_frequency="" type="3" index="23" bodypart="2" level="1" buy_currency="1" buy_amt="0" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子-缺失" spriteAlpha="" armatureName="裙子-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="225" jump_frequency="" type="3" index="24" bodypart="2" level="40" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="裙子17_1" spriteAlpha="" armatureName="裙子17" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
+  <item id="601" jump_frequency="" type="4" index="0" bodypart="4" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰品1" spriteAlpha="" armatureName="头饰品1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="602" jump_frequency="" type="4" index="1" bodypart="4" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰品2" spriteAlpha="" armatureName="头饰品2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="603" jump_frequency="" type="4" index="2" bodypart="4" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰品3" spriteAlpha="" armatureName="头饰品3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="604" jump_frequency="" type="4" index="3" bodypart="4" level="" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰4" spriteAlpha="" armatureName="头饰4" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="605" jump_frequency="" type="4" index="4" bodypart="4" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰5" spriteAlpha="" armatureName="头饰5" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="606" jump_frequency="" type="4" index="5" bodypart="4" level="30" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰6" spriteAlpha="" armatureName="头饰6" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="607" jump_frequency="" type="4" index="6" bodypart="4" level="30" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰7" spriteAlpha="" armatureName="头饰7" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="608" jump_frequency="" type="4" index="7" bodypart="4" level="40" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰8" spriteAlpha="" armatureName="头饰8" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="609" jump_frequency="" type="4" index="8" bodypart="4" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰9" spriteAlpha="" armatureName="头饰9" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="610" jump_frequency="" type="4" index="9" bodypart="4" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰10" spriteAlpha="" armatureName="头饰10" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="611" jump_frequency="" type="4" index="10" bodypart="4" level="50" buy_currency="2" buy_amt="350" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰11" spriteAlpha="" armatureName="头饰11" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="612" jump_frequency="" type="4" index="11" bodypart="4" level="50" buy_currency="2" buy_amt="400" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰12" spriteAlpha="" armatureName="头饰12" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="613" jump_frequency="" type="4" index="12" bodypart="4" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="" icon2offset="" spriteName="装饰14" spriteAlpha="" armatureName="装饰14" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="614" jump_frequency="" type="4" index="13" bodypart="4" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰15" spriteAlpha="" armatureName="头饰15" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="615" jump_frequency="" type="4" index="14" bodypart="4" level="80" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰13-1" spriteAlpha="" armatureName="头饰13-1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="616" jump_frequency="" type="4" index="15" bodypart="4" level="80" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰13-2" spriteAlpha="" armatureName="头饰13-2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="618" jump_frequency="" type="4" index="16" bodypart="4" level="1" buy_currency="1" buy_amt="1" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="头饰-缺失" spriteAlpha="" armatureName="头饰-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="619" jump_frequency="" type="4" index="17" bodypart="4" level="80" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="发饰17-1" spriteAlpha="" armatureName="发饰17-1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="620" jump_frequency="" type="4" index="18" bodypart="4" level="40" buy_currency="2" buy_amt="120" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="发饰17-2" spriteAlpha="" armatureName="发饰17-2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="DesignByMiracle" />
+  <item id="617" jump_frequency="" type="4" index="15" bodypart="4" level="60" buy_currency="2" buy_amt="450" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="帽子16" spriteAlpha="" armatureName="帽子16" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="801" jump_frequency="" type="2" index="0" bodypart="5" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-55.32,19.11" icon2offset="53.41,16.68" spriteName="上衣1,上衣1袖子右,上衣1袖子左" spriteAlpha="" armatureName="上衣1" extraBodypart="10,9" extraArmatureName="短袖1右,短袖1左" ignore="" icon0offset="15,0" desc="" />
+  <item id="802" jump_frequency="" type="2" index="1" bodypart="5" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-55.26,18.83" icon2offset="52.58,17.45" spriteName="上衣2,上衣2袖子右,上衣2袖子左" spriteAlpha="" armatureName="上衣2" extraBodypart="10,9" extraArmatureName="短袖2右,短袖2左" ignore="" icon0offset="" desc="" />
+  <item id="803" jump_frequency="" type="2" index="2" bodypart="5" level="" buy_currency="1" buy_amt="50000" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-55.26,18.83" icon2offset="52.58,17.45" spriteName="上衣3,上衣2袖子右,上衣2袖子左" spriteAlpha="" armatureName="上衣3" extraBodypart="10,9" extraArmatureName="短袖2右,短袖2左" ignore="" icon0offset="" desc="" />
+  <item id="804" jump_frequency="" type="2" index="3" bodypart="5" level="" buy_currency="2" buy_amt="80" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="-16" icon1offset="" icon2offset="" spriteName="上衣4" spriteAlpha="" armatureName="上衣4" extraBodypart="8,7" extraArmatureName="长袖9右,长袖9左" ignore="" icon0offset="" desc="" />
+  <item id="805" jump_frequency="" type="2" index="4" bodypart="5" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-55.26,21.94" icon2offset="53.82,20.56" spriteName="上衣5,上衣2袖子右,上衣2袖子左" spriteAlpha="" armatureName="上衣5" extraBodypart="10,9" extraArmatureName="短袖2右,短袖2左" ignore="" icon0offset="" desc="" />
+  <item id="806" jump_frequency="" type="2" index="5" bodypart="5" level="30" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-59.82,15.89" icon2offset="57.33,13.39" spriteName="上衣6,上衣6袖子右,上衣6袖子左" spriteAlpha="" armatureName="上衣6" extraBodypart="10,9" extraArmatureName="短袖6右,短袖6左" ignore="" icon0offset="" desc="" />
+  <item id="807" jump_frequency="" type="2" index="6" bodypart="5" level="30" buy_currency="2" buy_amt="200" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-59.56,16.23" icon2offset="56.97,13.65" spriteName="上衣7,上衣7袖子右,上衣7袖子左" spriteAlpha="" armatureName="上衣7" extraBodypart="10,9" extraArmatureName="短袖7右,短袖7左" ignore="" icon0offset="" desc="" />
+  <item id="808" jump_frequency="" type="2" index="7" bodypart="5" level="30" buy_currency="2" buy_amt="250" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-59.56,16.23" icon2offset="56.97,13.65" spriteName="上衣7(粉),上衣7粉袖子右,上衣7粉袖子左" spriteAlpha="" armatureName="上衣7(粉)" extraBodypart="10,9" extraArmatureName="短袖7粉右,短袖7粉左" ignore="" icon0offset="" desc="" />
+  <item id="809" jump_frequency="" type="2" index="8" bodypart="5" level="40" buy_currency="2" buy_amt="300" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣8" spriteAlpha="" armatureName="上衣8" extraBodypart="8,7" extraArmatureName="长袖9右,长袖9左" ignore="" icon0offset="" desc="" />
+  <item id="810" jump_frequency="" type="2" index="9" bodypart="5" level="40" buy_currency="2" buy_amt="350" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣9" spriteAlpha="" armatureName="上衣9" extraBodypart="8,7" extraArmatureName="长袖9右,长袖10左" ignore="" icon0offset="" desc="" />
+  <item id="811" jump_frequency="" type="2" index="10" bodypart="5" level="40" buy_currency="2" buy_amt="400" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣10" spriteAlpha="" armatureName="上衣10" extraBodypart="8,7" extraArmatureName="长袖9右,长袖11左" ignore="" icon0offset="" desc="" />
+  <item id="812" jump_frequency="" type="2" index="11" bodypart="5" level="40" buy_currency="2" buy_amt="450" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣10(黄)" spriteAlpha="" armatureName="上衣10(黄)" extraBodypart="8,7" extraArmatureName="长袖9右,长袖12左" ignore="" icon0offset="" desc="" />
+  <item id="813" jump_frequency="" type="2" index="12" bodypart="5" level="50" buy_currency="2" buy_amt="500" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣11" spriteAlpha="" armatureName="上衣11" extraBodypart="8,7" extraArmatureName="长袖9右,长袖13左" ignore="" icon0offset="" desc="" />
+  <item id="814" jump_frequency="" type="2" index="13" bodypart="5" level="50" buy_currency="2" buy_amt="550" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣11(粉)" spriteAlpha="" armatureName="上衣11(粉)" extraBodypart="8,7" extraArmatureName="长袖9右,长袖14左" ignore="" icon0offset="" desc="" />
+  <item id="815" jump_frequency="" type="2" index="14" bodypart="5" level="50" buy_currency="2" buy_amt="600" buy_advance_currency="" buy_advance_amt="" pixelSize="85" iconOffset="" icon1offset="-59.77,16.52" icon2offset="56.81,13.58" spriteName="上衣12,上衣12袖子右,上衣12袖子左" spriteAlpha="" armatureName="上衣12" extraBodypart="10,9" extraArmatureName="短袖12右,短袖12左" ignore="" icon0offset="" desc="" />
+  <item id="816" jump_frequency="" type="2" index="15" bodypart="5" level="50" buy_currency="2" buy_amt="650" buy_advance_currency="" buy_advance_amt="" pixelSize="60" iconOffset="" icon1offset="-50,36.31" icon2offset="57.8,33.83" spriteName="上衣13,上衣13袖子右,上衣13袖子左" spriteAlpha="" armatureName="上衣13" extraBodypart="10,9" extraArmatureName="短袖13右,短袖13左" ignore="" icon0offset="" desc="" />
+  <item id="817" jump_frequency="" type="2" index="16" bodypart="5" level="50" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="80" iconOffset="" icon1offset="-59.77,36.31" icon2offset="57.8,33.83" spriteName="上衣13(紫),上衣13蓝袖子右,上衣13蓝袖子左" spriteAlpha="" armatureName="上衣13(紫)" extraBodypart="10,9" extraArmatureName="短袖13蓝右,短袖13蓝左" ignore="" icon0offset="" desc="" />
+  <item id="818" jump_frequency="" type="2" index="17" bodypart="5" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣14" spriteAlpha="" armatureName="上衣14" extraBodypart="10,9" extraArmatureName="" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="819" jump_frequency="" type="2" index="18" bodypart="5" level="30" buy_currency="2" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="73" iconOffset="" icon1offset="71.85,2.89" icon2offset="-66.24,-0.4" spriteName="上衣15,上衣15(袖子)-1,上衣15(袖子)-2" spriteAlpha="" armatureName="上衣15" extraBodypart="10,9" extraArmatureName="上衣15(袖子)左,上衣15(袖子)右" ignore="" icon0offset="" desc="DesignByKnife" />
+  <item id="820" jump_frequency="" type="2" index="19" bodypart="5" level="50" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="90" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣14a" spriteAlpha="" armatureName="上衣14a" extraBodypart="10,9" extraArmatureName="上衣14a-袖子2,上衣14a-袖子1" ignore="" icon0offset="" desc="" />
+  <item id="821" jump_frequency="" type="2" index="20" bodypart="5" level="70" buy_currency="2" buy_amt="800" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="" icon1offset="-59.56,16.23" icon2offset="56.97,13.65" spriteName="上衣14b,上衣14b-袖子2,上衣14b-袖子1" spriteAlpha="" armatureName="上衣14b" extraBodypart="10,9" extraArmatureName="上衣14b-袖子2,上衣14b-袖子1" ignore="" icon0offset="" desc="" />
+  <item id="822" jump_frequency="" type="2" index="21" bodypart="5" level="70" buy_currency="2" buy_amt="800" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="" icon1offset="-59.56,16.23" icon2offset="56.97,13.65" spriteName="上衣14c,上衣14c-袖子2,上衣14c-袖子1" spriteAlpha="" armatureName="上衣14c" extraBodypart="10,9" extraArmatureName="上衣14c-袖子2,上衣14c-袖子1" ignore="" icon0offset="" desc="" />
+  <item id="823" jump_frequency="" type="2" index="22" bodypart="5" level="60" buy_currency="2" buy_amt="700" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="" icon1offset="-65,25" icon2offset="50,22" spriteName="上衣16,上衣16袖子2,上衣16袖子1_1" spriteAlpha="" armatureName="上衣16" extraBodypart="10,9" extraArmatureName="上衣16袖子2,上衣16袖子1" ignore="" icon0offset="" desc="" />
+  <item id="824" jump_frequency="" type="2" index="23" bodypart="5" level="1" buy_currency="1" buy_amt="1" buy_advance_currency="" buy_advance_amt="" pixelSize="70" iconOffset="" icon1offset="" icon2offset="" spriteName="上衣-缺失" spriteAlpha="" armatureName="上衣-缺失" extraBodypart="10,9" extraArmatureName="Empty,Empty" ignore="1" icon0offset="" desc="" />
+  <item id="825" jump_frequency="" type="2" index="24" bodypart="5" level="40" buy_currency="2" buy_amt="150" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="衣服17" spriteAlpha="" armatureName="衣服17" extraBodypart="10,9" extraArmatureName="袖子17-2,袖子17-1" ignore="" icon0offset="" desc="DesignByMiracle" />
+  <item id="1001" jump_frequency="" type="5" index="0" bodypart="6" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="100" iconOffset="" icon1offset="" icon2offset="" spriteName="禁止标志" spriteAlpha="0.75" armatureName="Empty" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="1002" jump_frequency="" type="5" index="1" bodypart="6" level="50" buy_currency="2" buy_amt="1500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀1" spriteAlpha="" armatureName="翅膀1" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="1003" jump_frequency="" type="5" index="2" bodypart="6" level="80" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀2" spriteAlpha="" armatureName="翅膀2" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="1004" jump_frequency="" type="5" index="3" bodypart="6" level="90" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀3" spriteAlpha="" armatureName="翅膀3" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="1005" jump_frequency="" type="5" index="4" bodypart="6" level="100" buy_currency="2" buy_amt="2500" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀4" spriteAlpha="" armatureName="翅膀4" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="1006" jump_frequency="" type="5" index="5" bodypart="6" level="90" buy_currency="2" buy_amt="2000" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀5" spriteAlpha="" armatureName="翅膀5" extraBodypart="" extraArmatureName="" ignore="" icon0offset="" desc="" />
+  <item id="1007" jump_frequency="" type="5" index="6" bodypart="6" level="1" buy_currency="1" buy_amt="0" buy_advance_currency="" buy_advance_amt="" pixelSize="110" iconOffset="" icon1offset="" icon2offset="" spriteName="翅膀-缺失" spriteAlpha="" armatureName="翅膀-缺失" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="1200" jump_frequency="" type="" index="" bodypart="11" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="眼睛1" spriteAlpha="" armatureName="眼睛1" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="1201" jump_frequency="" type="" index="" bodypart="11" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="眼睛2" spriteAlpha="" armatureName="眼睛2" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="1202" jump_frequency="" type="" index="" bodypart="11" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="眼睛3" spriteAlpha="" armatureName="眼睛3" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="1203" jump_frequency="" type="" index="" bodypart="12" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="嘴巴1" spriteAlpha="" armatureName="嘴巴1" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="1204" jump_frequency="" type="" index="" bodypart="12" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="嘴巴2" spriteAlpha="" armatureName="嘴巴2" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <item id="1205" jump_frequency="" type="" index="" bodypart="12" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" iconOffset="" icon1offset="" icon2offset="" spriteName="嘴巴3" spriteAlpha="" armatureName="嘴巴3" extraBodypart="" extraArmatureName="" ignore="1" icon0offset="" desc="" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <jump_frequency>
 每过多久必然跳且只跳一次
-</jump_frequency>
+</jump_frequency>
     <type>
 类型
-</type>
+</type>
     <index>
 位置
-</index>
+</index>
     <bodypart>
 换装部位
-</bodypart>
+</bodypart>
     <level>
 可以购买等级
-</level>
+</level>
     <buy_currency>
 购买货币类型
-</buy_currency>
+</buy_currency>
     <buy_amt>
 购买消耗值
-</buy_amt>
+</buy_amt>
     <buy_advance_currency>
 提前购买货币类型
-</buy_advance_currency>
+</buy_advance_currency>
     <buy_advance_amt>
 提前购买消耗值
-</buy_advance_amt>
+</buy_advance_amt>
     <pixelSize>
 Sprite大小
-</pixelSize>
+</pixelSize>
     <iconOffset>
 三个sprite的偏移
-</iconOffset>
+</iconOffset>
     <icon1offset>
 第二个Sprite的额外偏移
-</icon1offset>
+</icon1offset>
     <icon2offset>
 第三个Sprite的额外偏移
-</icon2offset>
+</icon2offset>
     <spriteName>
 sprite名字
-</spriteName>
+</spriteName>
     <spriteAlpha>
 sprite透明度
-</spriteAlpha>
+</spriteAlpha>
     <armatureName>
 骨骼名字
-</armatureName>
+</armatureName>
     <extraBodypart>
 
-</extraBodypart>
+</extraBodypart>
     <extraArmatureName>
 
-</extraArmatureName>
+</extraArmatureName>
     <ignore>
 暂时不使用
-</ignore>
+</ignore>
     <icon0offset>
 第一个Sprite的额外偏移
-</icon0offset>
+</icon0offset>
     <desc>
 添加描述
-</desc>
-  </comment>
+</desc>
+  </comment>
 </data>

+ 66 - 66
Assets/Resource/XML/Config/flower_config.xml

@@ -1,92 +1,92 @@
-<data>
-  <item id="1" name="粉色小花" desc="粉色小花的描述" unlock_ahead_cur="1" unlock_ahead="50000" icon="Flower1" anim="" flower_coin_buff="0.5" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="0" name="缺失小花" desc="" unlock_ahead_cur="1" unlock_ahead="0" icon="Flower0" anim="" flower_coin_buff="0" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="0" />
-  <item id="2" name="紫色小花" desc="紫色小花的描述" unlock_ahead_cur="1" unlock_ahead="50000" icon="Flower2" anim="" flower_coin_buff="0.51" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="3" name="波斯菊(粉)" desc="波斯菊(粉)的描述" unlock_ahead_cur="1" unlock_ahead="100000" icon="Flower3" anim="" flower_coin_buff="0.52" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="4" name="康乃馨(红)" desc="康乃馨(红)的描述" unlock_ahead_cur="1" unlock_ahead="500000" icon="Flower4" anim="" flower_coin_buff="0.53" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="5" name="铃兰(白)" desc="铃兰(白)的描述" unlock_ahead_cur="1" unlock_ahead="1000000" icon="Flower5" anim="" flower_coin_buff="0.54" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="6" name="马蹄莲(白)" desc="马蹄莲(白)的描述" unlock_ahead_cur="1" unlock_ahead="5000000" icon="Flower6" anim="" flower_coin_buff="0.55" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="7" name="蒲公英" desc="蒲公英的描述" unlock_ahead_cur="2" unlock_ahead="100" icon="Flower7" anim="" flower_coin_buff="0.56" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="8" name="牵牛花(蓝)" desc="牵牛花(蓝)的描述" unlock_ahead_cur="2" unlock_ahead="100" icon="Flower8" anim="" flower_coin_buff="0.57" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="9" name="三色堇(紫)" desc="三色堇(紫)的描述" unlock_ahead_cur="2" unlock_ahead="150" icon="Flower9" anim="" flower_coin_buff="0.58" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="10" name="三叶草(粉)" desc="三叶草(粉)的描述" unlock_ahead_cur="2" unlock_ahead="150" icon="Flower10" anim="" flower_coin_buff="0.59" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="11" name="向日葵" desc="向日葵的描述" unlock_ahead_cur="2" unlock_ahead="200" icon="Flower11" anim="" flower_coin_buff="0.6" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="12" name="郁金香(粉)" desc="郁金香(粉)的描述" unlock_ahead_cur="2" unlock_ahead="200" icon="Flower12" anim="" flower_coin_buff="0.61" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="13" name="百合花(白)" desc="" unlock_ahead_cur="2" unlock_ahead="200" icon="Flower13" anim="" flower_coin_buff="0.62" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="14" name="非洲菊(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="200" icon="Flower14" anim="" flower_coin_buff="0.63" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="15" name="红掌" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower15" anim="" flower_coin_buff="0.64" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="16" name="桔梗花" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower16" anim="" flower_coin_buff="0.65" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="17" name="康乃馨(白)" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower17" anim="" flower_coin_buff="0.66" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="18" name="铃兰(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="400" icon="Flower18" anim="" flower_coin_buff="0.67" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="19" name="曼陀罗(橘)" desc="" unlock_ahead_cur="2" unlock_ahead="400" icon="Flower19" anim="" flower_coin_buff="0.68" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="20" name="曼陀罗(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="400" icon="Flower20" anim="" flower_coin_buff="0.69" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="21" name="玫瑰花(红)" desc="" unlock_ahead_cur="2" unlock_ahead="400" icon="Flower21" anim="" flower_coin_buff="0.7" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="22" name="玫瑰花(黄)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower22" anim="" flower_coin_buff="0.71" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="23" name="茑萝" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower23" anim="" flower_coin_buff="0.72" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="24" name="牵牛花(紫)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower24" anim="" flower_coin_buff="0.73" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="25" name="虞美人(红)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower25" anim="" flower_coin_buff="0.74" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="26" name="郁金香(黄)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower26" anim="" flower_coin_buff="0.75" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="27" name="鸢尾(紫)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower27" anim="" flower_coin_buff="0.76" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="28" name="朱槿(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower28" anim="" flower_coin_buff="0.77" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="29" name="朱槿(黄)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower29" anim="" flower_coin_buff="0.78" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="30" name="满天星(白)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower30" anim="" flower_coin_buff="0.79" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="31" name="满天星(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower31" anim="" flower_coin_buff="0.8" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="32" name="紫罗兰(白)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower32" anim="" flower_coin_buff="0.81" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="33" name="紫罗兰(紫)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower33" anim="" flower_coin_buff="0.82" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="34" name="紫罗兰(蓝)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower34" anim="" flower_coin_buff="0.83" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="35" name="鸡冠花(红)" desc="" unlock_ahead_cur="2" unlock_ahead="1000" icon="Flower35" anim="" flower_coin_buff="0.84" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="36" name="鸡冠花(黄)" desc="" unlock_ahead_cur="2" unlock_ahead="1000" icon="Flower36" anim="" flower_coin_buff="0.85" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="37" name="风信子(白色) " desc="" unlock_ahead_cur="1" unlock_ahead="5000000" icon="Flower37" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
-  <item id="38" name="风信子(粉色)" desc="" unlock_ahead_cur="1" unlock_ahead="10000000" icon="Flower38" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
-  <item id="39" name="风信子(黄色)" desc="" unlock_ahead_cur="2" unlock_ahead="100" icon="Flower39" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
-  <item id="40" name="风信子(紫色)" desc="" unlock_ahead_cur="2" unlock_ahead="150" icon="Flower40" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
-  <item id="41" name="虎刺梅(红色)" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower41" anim="" flower_coin_buff="0.85" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="42" name="虎刺梅(黄色)" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower42" anim="" flower_coin_buff="0.85" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
-  <item id="43" name="茉莉花(黄色)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower43" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
-  <item id="44" name="茉莉花(紫色)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower44" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
-  <item id="45" name="勿忘我(黄色)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower45" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
-  <item id="46" name="勿忘我(蓝色)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower46" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
-  <item id="47" name="勿忘我(紫色)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower47" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
-  <item id="48" name="花烟草(白色)" desc="" unlock_ahead_cur="2" unlock_ahead="800" icon="Flower48" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
-  <item id="49" name="花烟草(粉色)" desc="" unlock_ahead_cur="2" unlock_ahead="800" icon="Flower49" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
-  <item id="50" name="花烟草(红色)" desc="" unlock_ahead_cur="2" unlock_ahead="800" icon="Flower50" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
-  <comment>
+<data>
+  <item id="1" name="粉色小花" desc="粉色小花的描述" unlock_ahead_cur="1" unlock_ahead="50000" icon="Flower1" anim="" flower_coin_buff="0.5" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="0" name="缺失小花" desc="" unlock_ahead_cur="1" unlock_ahead="0" icon="Flower0" anim="" flower_coin_buff="0" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="0" />
+  <item id="2" name="紫色小花" desc="紫色小花的描述" unlock_ahead_cur="1" unlock_ahead="50000" icon="Flower2" anim="" flower_coin_buff="0.51" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="3" name="波斯菊(粉)" desc="波斯菊(粉)的描述" unlock_ahead_cur="1" unlock_ahead="100000" icon="Flower3" anim="" flower_coin_buff="0.52" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="4" name="康乃馨(红)" desc="康乃馨(红)的描述" unlock_ahead_cur="1" unlock_ahead="500000" icon="Flower4" anim="" flower_coin_buff="0.53" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="5" name="铃兰(白)" desc="铃兰(白)的描述" unlock_ahead_cur="1" unlock_ahead="1000000" icon="Flower5" anim="" flower_coin_buff="0.54" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="6" name="马蹄莲(白)" desc="马蹄莲(白)的描述" unlock_ahead_cur="1" unlock_ahead="5000000" icon="Flower6" anim="" flower_coin_buff="0.55" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="7" name="蒲公英" desc="蒲公英的描述" unlock_ahead_cur="2" unlock_ahead="100" icon="Flower7" anim="" flower_coin_buff="0.56" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="8" name="牵牛花(蓝)" desc="牵牛花(蓝)的描述" unlock_ahead_cur="2" unlock_ahead="100" icon="Flower8" anim="" flower_coin_buff="0.57" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="9" name="三色堇(紫)" desc="三色堇(紫)的描述" unlock_ahead_cur="2" unlock_ahead="150" icon="Flower9" anim="" flower_coin_buff="0.58" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="10" name="三叶草(粉)" desc="三叶草(粉)的描述" unlock_ahead_cur="2" unlock_ahead="150" icon="Flower10" anim="" flower_coin_buff="0.59" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="11" name="向日葵" desc="向日葵的描述" unlock_ahead_cur="2" unlock_ahead="200" icon="Flower11" anim="" flower_coin_buff="0.6" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="12" name="郁金香(粉)" desc="郁金香(粉)的描述" unlock_ahead_cur="2" unlock_ahead="200" icon="Flower12" anim="" flower_coin_buff="0.61" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="13" name="百合花(白)" desc="" unlock_ahead_cur="2" unlock_ahead="200" icon="Flower13" anim="" flower_coin_buff="0.62" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="14" name="非洲菊(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="200" icon="Flower14" anim="" flower_coin_buff="0.63" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="15" name="红掌" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower15" anim="" flower_coin_buff="0.64" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="16" name="桔梗花" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower16" anim="" flower_coin_buff="0.65" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="17" name="康乃馨(白)" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower17" anim="" flower_coin_buff="0.66" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="18" name="铃兰(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="400" icon="Flower18" anim="" flower_coin_buff="0.67" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="19" name="曼陀罗(橘)" desc="" unlock_ahead_cur="2" unlock_ahead="400" icon="Flower19" anim="" flower_coin_buff="0.68" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="20" name="曼陀罗(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="400" icon="Flower20" anim="" flower_coin_buff="0.69" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="21" name="玫瑰花(红)" desc="" unlock_ahead_cur="2" unlock_ahead="400" icon="Flower21" anim="" flower_coin_buff="0.7" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="22" name="玫瑰花(黄)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower22" anim="" flower_coin_buff="0.71" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="23" name="茑萝" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower23" anim="" flower_coin_buff="0.72" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="24" name="牵牛花(紫)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower24" anim="" flower_coin_buff="0.73" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="25" name="虞美人(红)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower25" anim="" flower_coin_buff="0.74" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="26" name="郁金香(黄)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower26" anim="" flower_coin_buff="0.75" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="27" name="鸢尾(紫)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower27" anim="" flower_coin_buff="0.76" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="28" name="朱槿(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower28" anim="" flower_coin_buff="0.77" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="29" name="朱槿(黄)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower29" anim="" flower_coin_buff="0.78" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="30" name="满天星(白)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower30" anim="" flower_coin_buff="0.79" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="31" name="满天星(粉)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower31" anim="" flower_coin_buff="0.8" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="32" name="紫罗兰(白)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower32" anim="" flower_coin_buff="0.81" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="33" name="紫罗兰(紫)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower33" anim="" flower_coin_buff="0.82" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="34" name="紫罗兰(蓝)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower34" anim="" flower_coin_buff="0.83" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="35" name="鸡冠花(红)" desc="" unlock_ahead_cur="2" unlock_ahead="1000" icon="Flower35" anim="" flower_coin_buff="0.84" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="36" name="鸡冠花(黄)" desc="" unlock_ahead_cur="2" unlock_ahead="1000" icon="Flower36" anim="" flower_coin_buff="0.85" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="37" name="风信子(白色) " desc="" unlock_ahead_cur="1" unlock_ahead="5000000" icon="Flower37" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
+  <item id="38" name="风信子(粉色)" desc="" unlock_ahead_cur="1" unlock_ahead="10000000" icon="Flower38" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
+  <item id="39" name="风信子(黄色)" desc="" unlock_ahead_cur="2" unlock_ahead="100" icon="Flower39" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
+  <item id="40" name="风信子(紫色)" desc="" unlock_ahead_cur="2" unlock_ahead="150" icon="Flower40" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
+  <item id="41" name="虎刺梅(红色)" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower41" anim="" flower_coin_buff="0.85" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="42" name="虎刺梅(黄色)" desc="" unlock_ahead_cur="2" unlock_ahead="300" icon="Flower42" anim="" flower_coin_buff="0.85" itemSize="0.25" flowerCardSize="0.6125" minigameSize="1.0625" show="" />
+  <item id="43" name="茉莉花(黄色)" desc="" unlock_ahead_cur="2" unlock_ahead="500" icon="Flower43" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
+  <item id="44" name="茉莉花(紫色)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower44" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
+  <item id="45" name="勿忘我(黄色)" desc="" unlock_ahead_cur="2" unlock_ahead="600" icon="Flower45" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
+  <item id="46" name="勿忘我(蓝色)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower46" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
+  <item id="47" name="勿忘我(紫色)" desc="" unlock_ahead_cur="2" unlock_ahead="700" icon="Flower47" anim="" flower_coin_buff="0.85" itemSize="0.2" flowerCardSize="0.5" minigameSize="0.9" show="" />
+  <item id="48" name="花烟草(白色)" desc="" unlock_ahead_cur="2" unlock_ahead="800" icon="Flower48" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
+  <item id="49" name="花烟草(粉色)" desc="" unlock_ahead_cur="2" unlock_ahead="800" icon="Flower49" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
+  <item id="50" name="花烟草(红色)" desc="" unlock_ahead_cur="2" unlock_ahead="800" icon="Flower50" anim="" flower_coin_buff="0.85" itemSize="0.3" flowerCardSize="0.8" minigameSize="1.2625" show="" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <name>
 名称
-</name>
+</name>
     <desc>
 描述
-</desc>
+</desc>
     <unlock_ahead_cur>
 提前解锁
 消耗货币
-</unlock_ahead_cur>
+</unlock_ahead_cur>
     <unlock_ahead>
 提前解锁消耗的货币
-</unlock_ahead>
+</unlock_ahead>
     <icon>
 图标
-</icon>
+</icon>
     <anim>
 场景物件
-</anim>
+</anim>
     <flower_coin_buff>
 种花金币加成
-</flower_coin_buff>
+</flower_coin_buff>
     <itemSize>
 
-</itemSize>
+</itemSize>
     <flowerCardSize>
 
-</flowerCardSize>
+</flowerCardSize>
     <minigameSize>
 
-</minigameSize>
+</minigameSize>
     <show>
 显示在花朵管理界面
-</show>
-  </comment>
+</show>
+  </comment>
 </data>

+ 18 - 18
Assets/Resource/XML/Config/iap_config.xml

@@ -1,31 +1,31 @@
-<data>
-  <item id="1" item_id="com.dashgame.garden.packfresh" price="6" reward="pack,4" desc="新手礼包" skill_id="Pack4" />
-  <item id="2" item_id="com.dashgame.garden.packjunior" price="30" reward="pack,5" desc="中级礼包" skill_id="Pack5" />
-  <item id="3" item_id="com.dashgame.garden.packsenior" price="68" reward="pack,6" desc="高级礼包" skill_id="Pack6" />
-  <item id="4" item_id="com.dashgame.garden.diamond100" price="6" reward="pack,7" desc="钻石100" skill_id="Pack7" />
-  <item id="5" item_id="com.dashgame.garden.diamond500" price="30" reward="pack,8" desc="钻石500 赠送50" skill_id="Pack8" />
-  <item id="6" item_id="com.dashgame.garden.diamond2000" price="68" reward="pack,9" desc="钻石2000 赠送500" skill_id="Pack9" />
-  <item id="7" item_id="com.dashgame.garden.diamond6000" price="128" reward="pack,10" desc="钻石6000 赠送600" skill_id="Pack10" />
-  <item id="8" item_id="com.dashgame.garden.diamond10000" price="328" reward="pack,11" desc="钻石10000 赠送2000" skill_id="Pack11" />
-  <item id="9" item_id="com.dashgame.garden.packone" price="1" reward="pack,12" desc="一元畅玩包" skill_id="Pack12" />
-  <comment>
+<data>
+  <item id="1" item_id="com.dashgame.garden.packfresh" price="6" reward="pack,4" desc="新手礼包" skill_id="Pack4" />
+  <item id="2" item_id="com.dashgame.garden.packjunior" price="30" reward="pack,5" desc="中级礼包" skill_id="Pack5" />
+  <item id="3" item_id="com.dashgame.garden.packsenior" price="68" reward="pack,6" desc="高级礼包" skill_id="Pack6" />
+  <item id="4" item_id="com.dashgame.garden.diamond100" price="6" reward="pack,7" desc="钻石100" skill_id="Pack7" />
+  <item id="5" item_id="com.dashgame.garden.diamond500" price="30" reward="pack,8" desc="钻石500 赠送50" skill_id="Pack8" />
+  <item id="6" item_id="com.dashgame.garden.diamond2000" price="68" reward="pack,9" desc="钻石2000 赠送500" skill_id="Pack9" />
+  <item id="7" item_id="com.dashgame.garden.diamond6000" price="128" reward="pack,10" desc="钻石6000 赠送600" skill_id="Pack10" />
+  <item id="8" item_id="com.dashgame.garden.diamond10000" price="328" reward="pack,11" desc="钻石10000 赠送2000" skill_id="Pack11" />
+  <item id="9" item_id="com.dashgame.garden.packone" price="1" reward="pack,12" desc="一元畅玩包" skill_id="Pack12" />
+  <comment>
     <id>
 编号
-</id>
+</id>
     <item_id>
 商品id
-</item_id>
+</item_id>
     <price>
 价格
-</price>
+</price>
     <reward>
 奖励字符串
-</reward>
+</reward>
     <desc>
 描述
-</desc>
+</desc>
     <skill_id>
 技能id
-</skill_id>
-  </comment>
+</skill_id>
+  </comment>
 </data>

+ 12 - 12
Assets/Resource/XML/Config/lottery_config.xml

@@ -1,23 +1,23 @@
-<data>
-  <item id="1" type="1" rate="0.69" left_border="200*l" right_border="1000*l" />
-  <item id="2" type="2" rate="0.25" left_border="10" right_border="60" />
-  <item id="3" type="3" rate="0.05" left_border="1" right_border="20" />
-  <item id="4" type="4" rate="0.01" left_border="2,201,401,601,801" right_border="13,207,411,605,805" />
-  <comment>
+<data>
+  <item id="1" type="1" rate="0.69" left_border="200*l" right_border="1000*l" />
+  <item id="2" type="2" rate="0.25" left_border="10" right_border="60" />
+  <item id="3" type="3" rate="0.05" left_border="1" right_border="20" />
+  <item id="4" type="4" rate="0.01" left_border="2,201,401,601,801" right_border="13,207,411,605,805" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <type>
 奖励种类
-</type>
+</type>
     <rate>
 出现该奖励的概率
-</rate>
+</rate>
     <left_border>
 奖励区间左
-</left_border>
+</left_border>
     <right_border>
 奖励区间右
-</right_border>
-  </comment>
+</right_border>
+  </comment>
 </data>

+ 9 - 9
Assets/Resource/XML/Config/minigame_config.xml

@@ -1,20 +1,20 @@
-<data>
-  <item id="1" switch_minigame_cost_fml="i*30" coin_cd_minigame_time="30" coin_cd_minigame_cost_fml="i" diamond_cd_minigame_cost_fml="s*0.5" />
-  <comment>
+<data>
+  <item id="1" switch_minigame_cost_fml="i*30" coin_cd_minigame_time="30" coin_cd_minigame_cost_fml="i" diamond_cd_minigame_cost_fml="s*0.5" />
+  <comment>
     <id>
 
-</id>
+</id>
     <switch_minigame_cost_fml>
 切换游戏花费公式 i-每十秒收益
-</switch_minigame_cost_fml>
+</switch_minigame_cost_fml>
     <coin_cd_minigame_time>
 金币减少小游戏冷却时间
-</coin_cd_minigame_time>
+</coin_cd_minigame_time>
     <coin_cd_minigame_cost_fml>
 金币减少小游戏冷却时间花费公式 i-每十秒收益
-</coin_cd_minigame_cost_fml>
+</coin_cd_minigame_cost_fml>
     <diamond_cd_minigame_cost_fml>
 钻石减少小游戏冷却时间花费公式 s-剩余秒数
-</diamond_cd_minigame_cost_fml>
-  </comment>
+</diamond_cd_minigame_cost_fml>
+  </comment>
 </data>

+ 8 - 8
Assets/Resource/XML/Config/offline_config.xml

@@ -1,17 +1,17 @@
-<data>
-  <item id="1" addtion_fml="c*0.5" coin_lmt="" time_lmt="14400" />
-  <comment>
+<data>
+  <item id="1" addtion_fml="c*0.5" coin_lmt="" time_lmt="14400" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <addtion_fml>
 加成公式
-</addtion_fml>
+</addtion_fml>
     <coin_lmt>
 金币上限
-</coin_lmt>
+</coin_lmt>
     <time_lmt>
 时间上限
-</time_lmt>
-  </comment>
+</time_lmt>
+  </comment>
 </data>

+ 33 - 33
Assets/Resource/XML/Config/pack_config.xml

@@ -1,75 +1,75 @@
-<data>
-  <item id="1" name="金币大礼包" class="3" class_id="2" coin_person="" person="" skill_cd="" coin="9000*c" diamond="" flower="" use_lv="" use_cur="2" use_amnt="200" desc="立即获得金币 [&amp;coin&amp;]" icon="绿-金币包1" anim="" label="" lock="" />
-  <item id="2" name="天赐大礼包" class="3" class_id="3" coin_person="" person="" skill_cd="" coin="36000*c" diamond="" flower="" use_lv="" use_cur="2" use_amnt="400" desc="立即获得金币 [&amp;coin&amp;]" icon="绿-金币包2" anim="" label="" lock="" />
-  <item id="3" name="花神大礼包" class="3" class_id="4" coin_person="" person="" skill_cd="" coin="90000*c" diamond="" flower="" use_lv="" use_cur="2" use_amnt="800" desc="立即获得金币 [&amp;coin&amp;]" icon="绿-金币包3" anim="" label="" lock="" />
-  <item id="4" name="新手礼包" class="4" class_id="3" coin_person="5%" person="" skill_cd="" coin="" diamond="150" flower="25" use_lv="" use_cur="3" use_amnt="6" desc="获得[&amp;flower&amp;],[&amp;diamond&amp;]钻石&#xA;所有金币产出提升[&amp;coin_person&amp;],永久有效" icon="蓝-初级包" anim="" label="" lock="1" />
-  <item id="5" name="中级礼包" class="4" class_id="4" coin_person="5%" person="" skill_cd="" coin="" diamond="500" flower="26" use_lv="" use_cur="3" use_amnt="30" desc="获得[&amp;flower&amp;],[&amp;diamond&amp;]钻石&#xA;所有金币产出提升[&amp;coin_person&amp;],永久有效" icon="蓝-中级包" anim="" label="" lock="1" />
-  <item id="6" name="高级礼包" class="4" class_id="5" coin_person="5%" person="" skill_cd="" coin="" diamond="2000" flower="27" use_lv="" use_cur="3" use_amnt="68" desc="获得[&amp;flower&amp;],[&amp;diamond&amp;]钻石&#xA;所有金币产出提升[&amp;coin_person&amp;],永久有效" icon="蓝-高级包" anim="" label="" lock="1" />
-  <item id="7" name="钻石100" class="4" class_id="6" coin_person="" person="" skill_cd="" coin="" diamond="100" flower="" use_lv="" use_cur="3" use_amnt="6" desc="购买 [&amp;diamond&amp;]钻石" icon="蓝-免费钻" anim="" label="" lock="" />
-  <item id="8" name="钻石500 赠送50" class="4" class_id="7" coin_person="" person="" skill_cd="" coin="" diamond="550" flower="" use_lv="" use_cur="3" use_amnt="30" desc="共计 [&amp;diamond&amp;]钻石" icon="蓝-免费钻" anim="" label="MostPopular" lock="" />
-  <item id="9" name="钻石2000 赠送500" class="4" class_id="8" coin_person="" person="" skill_cd="" coin="" diamond="2500" flower="" use_lv="" use_cur="3" use_amnt="68" desc="共计 [&amp;diamond&amp;]钻石" icon="蓝-小量钻石" anim="" label="HighestValue" lock="" />
-  <item id="10" name="钻石6000 赠送600" class="4" class_id="9" coin_person="" person="" skill_cd="" coin="" diamond="6600" flower="" use_lv="" use_cur="3" use_amnt="128" desc="共计 [&amp;diamond&amp;]钻石" icon="蓝-中量钻石" anim="" label="" lock="" />
-  <item id="11" name="钻石10000 赠送2000" class="4" class_id="10" coin_person="" person="" skill_cd="" coin="" diamond="12000" flower="" use_lv="" use_cur="3" use_amnt="328" desc="共计 [&amp;diamond&amp;]钻石" icon="蓝-大量钻石" anim="" label="" lock="" />
-  <item id="12" name="一元畅玩包" class="4" class_id="2" coin_person="1%" person="" skill_cd="" coin="" diamond="100" flower="" use_lv="" use_cur="3" use_amnt="1" desc="获得[&amp;diamond&amp;]钻石&#xA;所有金币产出提升[&amp;coin_person&amp;],永久有效" icon="蓝-一元包" anim="" label="HighestValue" lock="1" />
-  <comment>
+<data>
+  <item id="1" name="金币大礼包" class="3" class_id="2" coin_person="" person="" skill_cd="" coin="9000*c" diamond="" flower="" use_lv="" use_cur="2" use_amnt="200" desc="立即获得金币 [&amp;coin&amp;]" icon="绿-金币包1" anim="" label="" lock="" />
+  <item id="2" name="天赐大礼包" class="3" class_id="3" coin_person="" person="" skill_cd="" coin="36000*c" diamond="" flower="" use_lv="" use_cur="2" use_amnt="400" desc="立即获得金币 [&amp;coin&amp;]" icon="绿-金币包2" anim="" label="" lock="" />
+  <item id="3" name="花神大礼包" class="3" class_id="4" coin_person="" person="" skill_cd="" coin="90000*c" diamond="" flower="" use_lv="" use_cur="2" use_amnt="800" desc="立即获得金币 [&amp;coin&amp;]" icon="绿-金币包3" anim="" label="" lock="" />
+  <item id="4" name="新手礼包" class="4" class_id="3" coin_person="5%" person="" skill_cd="" coin="" diamond="150" flower="25" use_lv="" use_cur="3" use_amnt="6" desc="获得[&amp;flower&amp;],[&amp;diamond&amp;]钻石&#xA;所有金币产出提升[&amp;coin_person&amp;],永久有效" icon="蓝-初级包" anim="" label="" lock="1" />
+  <item id="5" name="中级礼包" class="4" class_id="4" coin_person="5%" person="" skill_cd="" coin="" diamond="500" flower="26" use_lv="" use_cur="3" use_amnt="30" desc="获得[&amp;flower&amp;],[&amp;diamond&amp;]钻石&#xA;所有金币产出提升[&amp;coin_person&amp;],永久有效" icon="蓝-中级包" anim="" label="" lock="1" />
+  <item id="6" name="高级礼包" class="4" class_id="5" coin_person="5%" person="" skill_cd="" coin="" diamond="2000" flower="27" use_lv="" use_cur="3" use_amnt="68" desc="获得[&amp;flower&amp;],[&amp;diamond&amp;]钻石&#xA;所有金币产出提升[&amp;coin_person&amp;],永久有效" icon="蓝-高级包" anim="" label="" lock="1" />
+  <item id="7" name="钻石100" class="4" class_id="6" coin_person="" person="" skill_cd="" coin="" diamond="100" flower="" use_lv="" use_cur="3" use_amnt="6" desc="购买 [&amp;diamond&amp;]钻石" icon="蓝-免费钻" anim="" label="" lock="" />
+  <item id="8" name="钻石500 赠送50" class="4" class_id="7" coin_person="" person="" skill_cd="" coin="" diamond="550" flower="" use_lv="" use_cur="3" use_amnt="30" desc="共计 [&amp;diamond&amp;]钻石" icon="蓝-免费钻" anim="" label="MostPopular" lock="" />
+  <item id="9" name="钻石2000 赠送500" class="4" class_id="8" coin_person="" person="" skill_cd="" coin="" diamond="2500" flower="" use_lv="" use_cur="3" use_amnt="68" desc="共计 [&amp;diamond&amp;]钻石" icon="蓝-小量钻石" anim="" label="HighestValue" lock="" />
+  <item id="10" name="钻石6000 赠送600" class="4" class_id="9" coin_person="" person="" skill_cd="" coin="" diamond="6600" flower="" use_lv="" use_cur="3" use_amnt="128" desc="共计 [&amp;diamond&amp;]钻石" icon="蓝-中量钻石" anim="" label="" lock="" />
+  <item id="11" name="钻石10000 赠送2000" class="4" class_id="10" coin_person="" person="" skill_cd="" coin="" diamond="12000" flower="" use_lv="" use_cur="3" use_amnt="328" desc="共计 [&amp;diamond&amp;]钻石" icon="蓝-大量钻石" anim="" label="" lock="" />
+  <item id="12" name="一元畅玩包" class="4" class_id="2" coin_person="1%" person="" skill_cd="" coin="" diamond="100" flower="" use_lv="" use_cur="3" use_amnt="1" desc="获得[&amp;diamond&amp;]钻石&#xA;所有金币产出提升[&amp;coin_person&amp;],永久有效" icon="蓝-一元包" anim="" label="HighestValue" lock="1" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <name>
 名称
-</name>
+</name>
     <class>
 所属类别
-</class>
+</class>
     <class_id>
 所属
 类别序号
-</class_id>
+</class_id>
     <coin_person>
 每人次收入
 基础值
-</coin_person>
+</coin_person>
     <person>
 每秒参观数
 基础值
-</person>
+</person>
     <skill_cd>
 技能冷却
-</skill_cd>
+</skill_cd>
     <coin>
 获得金币
-</coin>
+</coin>
     <diamond>
 获得钻石
-</diamond>
+</diamond>
     <flower>
 获得花朵
-</flower>
+</flower>
     <use_lv>
 使用等级
-</use_lv>
+</use_lv>
     <use_cur>
 使用
 消耗货币
-</use_cur>
+</use_cur>
     <use_amnt>
 使用
 消耗数值
-</use_amnt>
+</use_amnt>
     <desc>
 描述
-</desc>
+</desc>
     <icon>
 图标
-</icon>
+</icon>
     <anim>
 场景物件
-</anim>
+</anim>
     <label>
 标签
-</label>
+</label>
     <lock>
 是否可用
-</lock>
-  </comment>
+</lock>
+  </comment>
 </data>

+ 7 - 7
Assets/Resource/XML/Config/plaza_room_config.xml

@@ -1,14 +1,14 @@
-<data>
-  <item id="1" create_cost_fml="h*50+p*10" cost_value_fml="c*0.8" />
-  <comment>
+<data>
+  <item id="1" create_cost_fml="h*50+p*10" cost_value_fml="c*0.8" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <create_cost_fml>
 创建房间花费公式
-</create_cost_fml>
+</create_cost_fml>
     <cost_value_fml>
 房间花费转换为默认宝箱价值
-</cost_value_fml>
-  </comment>
+</cost_value_fml>
+  </comment>
 </data>

+ 12 - 12
Assets/Resource/XML/Config/robot_config.xml

@@ -1,29 +1,29 @@
-<data>
-  <item id="1" amt_fml="2" digit_chest_rate="0.5" color_chest_rate="0.6" move_frequency="3,20" create_chest_rate="0.005" chest_value="20,40" lifetime="30,90" />
-  <comment>
+<data>
+  <item id="1" amt_fml="2" digit_chest_rate="0.5" color_chest_rate="0.6" move_frequency="3,20" create_chest_rate="0.005" chest_value="20,40" lifetime="30,90" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <amt_fml>
 计算房间内最大机器人个数
-</amt_fml>
+</amt_fml>
     <digit_chest_rate>
 机器人抢到猜数字宝箱的概率
-</digit_chest_rate>
+</digit_chest_rate>
     <color_chest_rate>
 机器人抢到猜颜色宝箱的概率
-</color_chest_rate>
+</color_chest_rate>
     <move_frequency>
 机器人移动频率
-</move_frequency>
+</move_frequency>
     <create_chest_rate>
 机器人创建宝箱概率
-</create_chest_rate>
+</create_chest_rate>
     <chest_value>
 机器人创建宝箱的价值
-</chest_value>
+</chest_value>
     <lifetime>
 机器人存活时间
-</lifetime>
-  </comment>
+</lifetime>
+  </comment>
 </data>

+ 30 - 30
Assets/Resource/XML/Config/signin_config.xml

@@ -1,44 +1,44 @@
-<data>
-  <item id="1" lottery="" flower="" diamond="5" coin="" rate="" />
-  <item id="2" lottery="" flower="" diamond="10" coin="" rate="" />
-  <item id="3" lottery="" flower="" diamond="15" coin="" rate="" />
-  <item id="4" lottery="" flower="" diamond="20" coin="" rate="" />
-  <item id="5" lottery="" flower="" diamond="25" coin="" rate="" />
-  <item id="6" lottery="" flower="" diamond="30" coin="" rate="" />
-  <item id="7" lottery="1" flower="" diamond="50" coin="" rate="" />
-  <item id="8" lottery="" flower="" diamond="15" coin="" rate="" />
-  <item id="9" lottery="" flower="" diamond="20" coin="" rate="" />
-  <item id="10" lottery="" flower="" diamond="25" coin="" rate="" />
-  <item id="11" lottery="" flower="" diamond="30" coin="" rate="" />
-  <item id="12" lottery="" flower="" diamond="35" coin="" rate="" />
-  <item id="13" lottery="" flower="" diamond="40" coin="" rate="" />
-  <item id="14" lottery="1" flower="" diamond="70" coin="" rate="" />
-  <item id="15" lottery="" flower="" diamond="25" coin="" rate="" />
-  <item id="16" lottery="" flower="" diamond="30" coin="" rate="" />
-  <item id="17" lottery="" flower="" diamond="35" coin="" rate="" />
-  <item id="18" lottery="" flower="" diamond="40" coin="" rate="" />
-  <item id="19" lottery="" flower="" diamond="45" coin="" rate="" />
-  <item id="20" lottery="" flower="" diamond="50" coin="" rate="" />
-  <item id="21" lottery="" flower="19,20,21,22,23,24" diamond="100" coin="" rate="" />
-  <comment>
+<data>
+  <item id="1" lottery="" flower="" diamond="5" coin="" rate="" />
+  <item id="2" lottery="" flower="" diamond="10" coin="" rate="" />
+  <item id="3" lottery="" flower="" diamond="15" coin="" rate="" />
+  <item id="4" lottery="" flower="" diamond="20" coin="" rate="" />
+  <item id="5" lottery="" flower="" diamond="25" coin="" rate="" />
+  <item id="6" lottery="" flower="" diamond="30" coin="" rate="" />
+  <item id="7" lottery="1" flower="" diamond="50" coin="" rate="" />
+  <item id="8" lottery="" flower="" diamond="15" coin="" rate="" />
+  <item id="9" lottery="" flower="" diamond="20" coin="" rate="" />
+  <item id="10" lottery="" flower="" diamond="25" coin="" rate="" />
+  <item id="11" lottery="" flower="" diamond="30" coin="" rate="" />
+  <item id="12" lottery="" flower="" diamond="35" coin="" rate="" />
+  <item id="13" lottery="" flower="" diamond="40" coin="" rate="" />
+  <item id="14" lottery="1" flower="" diamond="70" coin="" rate="" />
+  <item id="15" lottery="" flower="" diamond="25" coin="" rate="" />
+  <item id="16" lottery="" flower="" diamond="30" coin="" rate="" />
+  <item id="17" lottery="" flower="" diamond="35" coin="" rate="" />
+  <item id="18" lottery="" flower="" diamond="40" coin="" rate="" />
+  <item id="19" lottery="" flower="" diamond="45" coin="" rate="" />
+  <item id="20" lottery="" flower="" diamond="50" coin="" rate="" />
+  <item id="21" lottery="" flower="19,20,21,22,23,24" diamond="100" coin="" rate="" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <lottery>
 是否为抽奖
-</lottery>
+</lottery>
     <flower>
 升级
 冷却加成
-</flower>
+</flower>
     <diamond>
 钻石
-</diamond>
+</diamond>
     <coin>
 金币
-</coin>
+</coin>
     <rate>
 增长比例
-</rate>
-  </comment>
+</rate>
+  </comment>
 </data>

+ 44 - 44
Assets/Resource/XML/Config/skill_config.xml

@@ -1,133 +1,133 @@
-<data>
-  <item id="1" name="人潮涌动" class="1" class_id="2" skill_index="1" reduce_cd="1" coin_person="" person="1" coin_once="" diamond_once="" skill_cd="" duration="300" cd="1800" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="5" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="200" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="60" upgrade_cd="" desc="每分钟增加[&amp;person&amp;*60],持续[&amp;duration&amp;/60][lv]分钟" icon="4大技能1" anim="" label="" />
-  <item id="2" name="大亨光临" class="1" class_id="3" skill_index="2" reduce_cd="1" coin_person="" person="" coin_once="50000%" diamond_once="" skill_cd="" duration="" cd="3600" unlock_lv="25" unlock_ahead_cur="2" unlock_ahead_delta="5" unlock_ahead_minimun="200" unlock_cur="1" unlock_amnt="100" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="5000%" upgrade_duration="" upgrade_cd="" desc="立即获得每人次收入的[&amp;coin_once&amp;][lv]倍" icon="4大技能2" anim="" label="" />
-  <item id="3" name="花之祝福" class="1" class_id="4" skill_index="3" reduce_cd="1" coin_person="200%" person="" coin_once="" diamond_once="" skill_cd="" duration="300" cd="3600" unlock_lv="75" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="300" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="60" upgrade_cd="" desc="所有收入提升[&amp;coin_person&amp;],持续[&amp;duration&amp;/60][lv]" icon="4大技能3" anim="" label="" />
-  <item id="4" name="繁花似锦" class="4" class_id="1" skill_index="" reduce_cd="" coin_person="200%" person="" coin_once="" diamond_once="" skill_cd="" duration="900" cd="900" unlock_lv="40" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="2" use_amnt="150" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="所有金币产出提升[&amp;coin_person&amp;],持续[&amp;duration&amp;]分钟" icon="绿-繁花似锦" anim="" label="" />
-  <item id="5" name="免费获取金币" class="3" class_id="0" skill_index="" reduce_cd="" coin_person="" person="" coin_once="15000%" diamond_once="" skill_cd="" duration="" cd="300" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="免费获取金币[&amp;coin_once&amp;]" icon="绿-免费金币" anim="" label="" />
-  <item id="6" name="免费获取钻石" class="4" class_id="0" skill_index="" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="5" skill_cd="" duration="" cd="300" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="免费获取金币[&amp;diamond_once&amp;]" icon="蓝-免费钻" anim="" label="" />
-  <item id="7" name="技能冷却" class="" class_id="" skill_index="4" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="" skill_cd="100%" duration="" cd="900" unlock_lv="15" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="" icon="4大技能4" anim="" label="" />
-  <comment>
+<data>
+  <item id="1" name="人潮涌动" class="1" class_id="2" skill_index="1" reduce_cd="1" coin_person="" person="1" coin_once="" diamond_once="" skill_cd="" duration="300" cd="1800" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="1" unlock_amnt="5" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="200" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="60" upgrade_cd="" desc="每分钟增加[&amp;person&amp;*60],持续[&amp;duration&amp;/60][lv]分钟" icon="4大技能1" anim="" label="" />
+  <item id="2" name="大亨光临" class="1" class_id="3" skill_index="2" reduce_cd="1" coin_person="" person="" coin_once="50000%" diamond_once="" skill_cd="" duration="" cd="3600" unlock_lv="25" unlock_ahead_cur="2" unlock_ahead_delta="5" unlock_ahead_minimun="200" unlock_cur="1" unlock_amnt="100" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="5000%" upgrade_duration="" upgrade_cd="" desc="立即获得每人次收入的[&amp;coin_once&amp;][lv]倍" icon="4大技能2" anim="" label="" />
+  <item id="3" name="花之祝福" class="1" class_id="4" skill_index="3" reduce_cd="1" coin_person="200%" person="" coin_once="" diamond_once="" skill_cd="" duration="300" cd="3600" unlock_lv="75" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="300" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="" use_amnt="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="60" upgrade_cd="" desc="所有收入提升[&amp;coin_person&amp;],持续[&amp;duration&amp;/60][lv]" icon="4大技能3" anim="" label="" />
+  <item id="4" name="繁花似锦" class="4" class_id="1" skill_index="" reduce_cd="" coin_person="200%" person="" coin_once="" diamond_once="" skill_cd="" duration="900" cd="900" unlock_lv="40" unlock_ahead_cur="2" unlock_ahead_delta="10" unlock_ahead_minimun="100" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="2" use_amnt="150" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="所有金币产出提升[&amp;coin_person&amp;],持续[&amp;duration&amp;]分钟" icon="绿-繁花似锦" anim="" label="" />
+  <item id="5" name="免费获取金币" class="3" class_id="0" skill_index="" reduce_cd="" coin_person="" person="" coin_once="15000%" diamond_once="" skill_cd="" duration="" cd="300" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="免费获取金币[&amp;coin_once&amp;]" icon="绿-免费金币" anim="" label="" />
+  <item id="6" name="免费获取钻石" class="4" class_id="0" skill_index="" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="5" skill_cd="" duration="" cd="300" unlock_lv="" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="免费获取金币[&amp;diamond_once&amp;]" icon="蓝-免费钻" anim="" label="" />
+  <item id="7" name="技能冷却" class="" class_id="" skill_index="4" reduce_cd="" coin_person="" person="" coin_once="" diamond_once="" skill_cd="100%" duration="" cd="1500" unlock_lv="15" unlock_ahead_cur="" unlock_ahead_delta="" unlock_ahead_minimun="" unlock_cur="" unlock_amnt="" unlock_pos="" use__cur="5" use_amnt="" upgrade_cur="" upgrade_amnt="" upgrade_fml="" upgrade_plus="" upgrade_person="" upgrade_coin_once="" upgrade_duration="" upgrade_cd="" desc="" icon="4大技能4" anim="" label="" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <name>
 名称
-</name>
+</name>
     <class>
 所属类别
-</class>
+</class>
     <class_id>
 所属
 类别序号
-</class_id>
+</class_id>
     <skill_index>
 技能栏
 
-</skill_index>
+</skill_index>
     <reduce_cd>
 是否可以减少冷却时间
-</reduce_cd>
+</reduce_cd>
     <coin_person>
 每人次收入
 基础值
-</coin_person>
+</coin_person>
     <person>
 每秒参观数
 基础值
-</person>
+</person>
     <coin_once>
 一次获得金币
-</coin_once>
+</coin_once>
     <diamond_once>
 一次获得钻石
-</diamond_once>
+</diamond_once>
     <skill_cd>
 技能冷却
 时间减少
-</skill_cd>
+</skill_cd>
     <duration>
 持续时间
-</duration>
+</duration>
     <cd>
 冷却时间
-</cd>
+</cd>
     <unlock_lv>
 解锁等级
-</unlock_lv>
+</unlock_lv>
     <unlock_ahead_cur>
 提前解锁
 消耗货币
-</unlock_ahead_cur>
+</unlock_ahead_cur>
     <unlock_ahead_delta>
 提前解锁每一级增加值
-</unlock_ahead_delta>
+</unlock_ahead_delta>
     <unlock_ahead_minimun>
 提前解锁
 消耗最小值
-</unlock_ahead_minimun>
+</unlock_ahead_minimun>
     <unlock_cur>
 解锁
 消耗货币
-</unlock_cur>
+</unlock_cur>
     <unlock_amnt>
 解锁
 消耗数值
-</unlock_amnt>
+</unlock_amnt>
     <unlock_pos>
 解锁
 开启位置数
-</unlock_pos>
+</unlock_pos>
     <use__cur>
 使用
 消耗货币
-</use__cur>
+</use__cur>
     <use_amnt>
 使用
 消耗数值
-</use_amnt>
+</use_amnt>
     <upgrade_cur>
 升级
 消耗货币
-</upgrade_cur>
+</upgrade_cur>
     <upgrade_amnt>
 升级
 消耗基础值
-</upgrade_amnt>
+</upgrade_amnt>
     <upgrade_fml>
 升级
 消耗公式
-</upgrade_fml>
+</upgrade_fml>
     <upgrade_plus>
 升级
 收入加成
-</upgrade_plus>
+</upgrade_plus>
     <upgrade_person>
 升级
 参观数加成
-</upgrade_person>
+</upgrade_person>
     <upgrade_coin_once>
 升级
 一次获得金币
-</upgrade_coin_once>
+</upgrade_coin_once>
     <upgrade_duration>
 升级
 持续时间加成
-</upgrade_duration>
+</upgrade_duration>
     <upgrade_cd>
 升级
 冷却加成
-</upgrade_cd>
+</upgrade_cd>
     <desc>
 描述
-</desc>
+</desc>
     <icon>
 图标
-</icon>
+</icon>
     <anim>
 场景物件
-</anim>
+</anim>
     <label>
 标签
-</label>
-  </comment>
+</label>
+  </comment>
 </data>

+ 12 - 12
Assets/Resource/XML/Config/visit_config.xml

@@ -1,29 +1,29 @@
-<data>
-  <item id="1" award_rate="0.75" award_min="l*0.8-1" award_max="l*1.8" cool_time="5" cost="l*0.8" create="0.75" fancy="0.25" />
-  <comment>
+<data>
+  <item id="1" award_rate="0.75" award_min="l*0.8-1" award_max="l*1.8" cool_time="5" cost="l*0.8" create="0.75" fancy="0.25" />
+  <comment>
     <id>
 id
-</id>
+</id>
     <award_rate>
 出现金币的概率
-</award_rate>
+</award_rate>
     <award_min>
 最低奖励值
-</award_min>
+</award_min>
     <award_max>
 最大奖励值
-</award_max>
+</award_max>
     <cool_time>
 冷却时间
-</cool_time>
+</cool_time>
     <cost>
 访问消耗值
-</cost>
+</cost>
     <create>
 用代码生成花园的概率
-</create>
+</create>
     <fancy>
 生成漂亮花园的概率
-</fancy>
-  </comment>
+</fancy>
+  </comment>
 </data>

+ 106 - 105
Assets/Resource/XML/PlayerConfig.xml

@@ -1,106 +1,107 @@
-<PlayerConfig>
-  <Version value="36" />
-  <ReplayVersion value="1" />
-  
-  <ID value="Default" />
-  <SerialNumber value="Default" />
-  
-  <TutorialA value="1" />
-  <TutorialB value="1" />
-  <TutorialC value="1" />
-  <TutorialD value="1" />
-  <TutorialE value="1" />
-  <TutorialPlazaRoom value="1" />
-  <FindMissingMinigameTutorial value="1" />
-  <FashionShowTutorial value="1" />
-  <TutorialIndexA value="1" />
-  <TutorialIndexB value="1" />
-  <TutorialIndexC value="1" />
-  <TutorialIndexD value="1" />
-  <TutorialIndexE value="1" />
-  <TutorialIndexPlazaRoom value="1" />
-  <FindMissingMinigameTutorialIndex value="1" />
-  <FashionShowTutorialIndex value="1" />
-
-  <QuitFlag value="0" />
-  <QuitTime value="4/23/2017 09:30:00 AM" />
-  <SignTime value="4/23/2017 09:30:00 AM" />
-  <Language value="Default" />
-  <CurrentMinigameType value="0" />
-  
-  <Coin value="0" />
-  <ExtraSlot value="0" />
-  <PackLock value="0" />
-  <Diamond value="0" />
-  <SignIndex value="1" />
-  <MiniTimer value="0" />
-  <SignRound value="1" />
-  <CircleTimer value="0" />
-  <ADPlayTime value="4/23/2017 09:30:00 AM" />
-  <NewFlowerFlag value="0" />
-  <MiniGameIndex value="0" />
-  <NotificationIndex value="-1" />
-  <MinigameCoolFlag value="0" />
-  <OneTimeReward value="" />
-  
-  <Player value="PlayerBlond" />
-  <NickName value="" />
-  <PlantList value =""/>
-  <DressList value =""/>
-  <FlowerList value="1" />
-  <FlowerAmtList value="1" />
-  <AchieveList value="" />
-  <DressData Head="" Dress="" Shoe="" HeadWear="" Top="" Eye="" Mouse="" Wing="Empty" LeftLongSleeveSlot="Empty" LeftShortSleeveSlot="Empty" RightLongSleeveSlot="Empty" RightShortSleeveSlot="Empty"/>
-  <AchieveData AD="0" Skill="0" Sign="0" Share="0" ElfLevel="0" MiniGame="0" FlowerCoin="0" TotalPerson="0" CostDiamond="0" CreateRoomAmt="0" CreateChestAmt="0" CreateLuckyChestAmt="0" CreateGuessColorChestAmt="0" CreateGuessNumberChestAmt="0" GetChestAwardAmt="0"/>
-
-  <SkillList>
-    <Skill ID="Skill4" SkillType="Skill" ItemStatus="Lock" Level="0" CoolTimer="0" UseTimer="0" />
-    <Skill ID="Skill5" SkillType="Skill" ItemStatus="Lock" Level="0" CoolTimer="0" UseTimer="0" />
-    <Skill ID="Skill6" SkillType="Skill" ItemStatus="Lock" Level="0" CoolTimer="0" UseTimer="0" />
-    <Skill ID="Skill1" SkillType="BigSkill" ItemStatus="Lock" BarStatus="UnLock" Level="0" CoolTimer="0" UseTimer="0" />
-    <Skill ID="Skill2" SkillType="BigSkill" ItemStatus="Lock" BarStatus="UnLock" Level="0" CoolTimer="0" UseTimer="0" />
-    <Skill ID="Skill3" SkillType="BigSkill" ItemStatus="Lock" BarStatus="UnLock" Level="0" CoolTimer="0" UseTimer="0" />
-    <Skill ID="Skill7" SkillType="BigSkill" ItemStatus="Lock" BarStatus="UnLock" Level="0" CoolTimer="0" UseTimer="0" />
-
-    <Skill ID="Pack1" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack2" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack3" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack4" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack5" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack6" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack7" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack8" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack9" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack10" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack11" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    <Skill ID="Pack12" SkillType="Pack" ItemStatus="Lock" Level="0" />
-    
-    <Skill ID="Ability1" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability2" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability3" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability4" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability5" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability6" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability7" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability8" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability9" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability10" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability11" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability12" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability13" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability14" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability15" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability16" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability17" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability18" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability19" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability20" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability21" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability22" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability23" SkillType="Ability" ItemStatus="Lock" Level="0" />
-    <Skill ID="Ability24" SkillType="Ability" ItemStatus="Lock" Level="0" />
-  </SkillList>
-  <LastApplicantSerialNumber value=""/>
-  <LastPrivateMessageDate>
-  </LastPrivateMessageDate>
+<PlayerConfig>
+  <Version value="39" />
+  <ReplayVersion value="1" />
+  
+  <ID value="Default" />
+  <SerialNumber value="Default" />
+  
+  <TutorialA value="1" />
+  <TutorialB value="1" />
+  <TutorialC value="1" />
+  <TutorialD value="1" />
+  <TutorialE value="1" />
+  <TutorialPlazaRoom value="1" />
+  <FindMissingMinigameTutorial value="1" />
+  <FashionShowTutorial value="1" />
+  <ChangeMouseTutorial value="1" />
+  <TutorialIndexA value="1" />
+  <TutorialIndexB value="1" />
+  <TutorialIndexC value="1" />
+  <TutorialIndexD value="1" />
+  <TutorialIndexE value="1" />
+  <TutorialIndexPlazaRoom value="1" />
+  <FindMissingMinigameTutorialIndex value="1" />
+  <FashionShowTutorialIndex value="1" />
+
+  <QuitFlag value="0" />
+  <QuitTime value="4/23/2017 09:30:00 AM" />
+  <SignTime value="4/23/2017 09:30:00 AM" />
+  <Language value="Default" />
+  <CurrentMinigameType value="0" />
+  
+  <Coin value="0" />
+  <ExtraSlot value="0" />
+  <PackLock value="0" />
+  <Diamond value="0" />
+  <SignIndex value="1" />
+  <MiniTimer value="0" />
+  <SignRound value="1" />
+  <CircleTimer value="0" />
+  <ADPlayTime value="4/23/2017 09:30:00 AM" />
+  <NewFlowerFlag value="0" />
+  <MiniGameIndex value="0" />
+  <NotificationIndex value="-1" />
+  <MinigameCoolFlag value="0" />
+  <OneTimeReward value="" />
+  
+  <Player value="PlayerBlond" />
+  <NickName value="" />
+  <PlantList value =""/>
+  <DressList value =""/>
+  <FlowerList value="1" />
+  <FlowerAmtList value="1" />
+  <AchieveList value="" />
+  <DressData Head="" Dress="" Shoe="" HeadWear="" Top="" Eye="" Mouse="" Wing="Empty" LeftLongSleeveSlot="Empty" LeftShortSleeveSlot="Empty" RightLongSleeveSlot="Empty" RightShortSleeveSlot="Empty"/>
+  <AchieveData AD="0" Skill="0" Sign="0" Share="0" ElfLevel="0" MiniGame="0" FlowerCoin="0" TotalPerson="0" CostDiamond="0" CreateRoomAmt="0" CreateChestAmt="0" CreateLuckyChestAmt="0" CreateGuessColorChestAmt="0" CreateGuessNumberChestAmt="0" GetChestAwardAmt="0"/>
+
+  <SkillList>
+    <Skill ID="Skill4" SkillType="Skill" ItemStatus="Lock" Level="0" CoolTimer="0" UseTimer="0" />
+    <Skill ID="Skill5" SkillType="Skill" ItemStatus="Lock" Level="0" CoolTimer="0" UseTimer="0" />
+    <Skill ID="Skill6" SkillType="Skill" ItemStatus="Lock" Level="0" CoolTimer="0" UseTimer="0" />
+    <Skill ID="Skill1" SkillType="BigSkill" ItemStatus="Lock" BarStatus="UnLock" Level="0" CoolTimer="0" UseTimer="0" />
+    <Skill ID="Skill2" SkillType="BigSkill" ItemStatus="Lock" BarStatus="UnLock" Level="0" CoolTimer="0" UseTimer="0" />
+    <Skill ID="Skill3" SkillType="BigSkill" ItemStatus="Lock" BarStatus="UnLock" Level="0" CoolTimer="0" UseTimer="0" />
+    <Skill ID="Skill7" SkillType="BigSkill" ItemStatus="Lock" BarStatus="UnLock" Level="0" CoolTimer="0" UseTimer="0" />
+
+    <Skill ID="Pack1" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack2" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack3" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack4" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack5" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack6" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack7" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack8" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack9" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack10" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack11" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    <Skill ID="Pack12" SkillType="Pack" ItemStatus="Lock" Level="0" />
+    
+    <Skill ID="Ability1" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability2" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability3" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability4" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability5" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability6" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability7" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability8" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability9" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability10" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability11" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability12" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability13" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability14" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability15" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability16" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability17" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability18" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability19" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability20" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability21" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability22" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability23" SkillType="Ability" ItemStatus="Lock" Level="0" />
+    <Skill ID="Ability24" SkillType="Ability" ItemStatus="Lock" Level="0" />
+  </SkillList>
+  <LastApplicantSerialNumber value=""/>
+  <LastPrivateMessageDate>
+  </LastPrivateMessageDate>
 </PlayerConfig>

+ 8 - 1
Assets/Resource/XML/lan/ChineseSimplified.xml

@@ -20,7 +20,7 @@
     <F_IncreaseSource desc=""><![CDATA[加成来源 [&value&]]]></F_IncreaseSource>
     <F_LinkButton desc=""><![CDATA[显示所有]]></F_LinkButton>
     <F_Tip desc=""><![CDATA[这是一款健康游戏,不在线也可以持续获得金币。如果觉得暂时没什么可做的,可以过一段时间再来玩]]></F_Tip>
-    <Fe_Toast desc=""><![CDATA[冷却所有技能]]></Fe_Toast>
+    <Fe_Toast desc=""><![CDATA[冷却所有技能]]></Fe_Toast>
     <Fe_BtnLab0 desc=""><![CDATA[提前解锁]]></Fe_BtnLab0>
     <Fe_BtnLab1 desc=""><![CDATA[解锁]]></Fe_BtnLab1>
     <Fe_BtnLab2 desc=""><![CDATA[升级]]></Fe_BtnLab2>
@@ -300,6 +300,12 @@
     <AH_SendPrivateMessageFailed desc=""><![CDATA[发送失败]]></AH_SendPrivateMessageFailed>
     <AH_Current desc=""><![CDATA[刚刚]]></AH_Current>
     <AK_Desc desc=""><![CDATA[请选择支付方式]]></AK_Desc>
+    <AL_Title desc=""><![CDATA[换装]]></AL_Title>
+    <AL_Cost desc=""><![CDATA[需要花费]]></AL_Cost>
+    <AL_Close desc=""><![CDATA[关闭]]></AL_Close>
+    <AL_Eye desc=""><![CDATA[眼睛]]></AL_Eye>
+    <AL_Mouse desc=""><![CDATA[嘴巴]]></AL_Mouse>
+    <AL_Tip desc=""><![CDATA[更改形象需要花费]]></AL_Tip>
   </UI>
   <FriendItem>
     <SendMessageButtonText desc=""><![CDATA[私信]]></SendMessageButtonText>
@@ -989,6 +995,7 @@
     <Tip8 desc=""><![CDATA[如果你觉得游戏还不错,请分享给你的朋友吧!还能获得奖励哦!]]></Tip8>
     <Tip9 desc=""><![CDATA[如果发现小游戏里有一朵花被星星笼罩,那么你有机会得到它哦~]]></Tip9>
     <Tip10 desc=""><![CDATA[如果你发现某位小公主穿着带问号的灰色裙子,不要怀疑你的眼睛,这说明你该更新一下游戏了!]]></Tip10>
+    <Tip11 desc=""><![CDATA[在别人的花园或者搭配秀留言有机会获得金币奖励哦!]]></Tip11>
   </Tip>
   <MinigameName>
     <Punch desc=""><![CDATA[打理花园]]></Punch>

+ 8 - 1
Assets/Resource/XML/lan/ChineseTraditional.xml

@@ -20,7 +20,7 @@
     <F_IncreaseSource desc=""><![CDATA[加成來源 [&value&]]]></F_IncreaseSource>
     <F_LinkButton desc=""><![CDATA[顯示所有]]></F_LinkButton>
     <F_Tip desc=""><![CDATA[這是一款健康遊戲,不在線上也可以持續獲得金幣。如果覺得暫時沒什麼可做的,可以過一段時間再來玩。]]></F_Tip>
-    <Fe_Toast desc=""><![CDATA[冷卻所有技能]]></Fe_Toast>
+    <Fe_Toast desc=""><![CDATA[冷卻所有技能]]></Fe_Toast>
     <Fe_BtnLab0 desc=""><![CDATA[提前解鎖]]></Fe_BtnLab0>
     <Fe_BtnLab1 desc=""><![CDATA[解鎖]]></Fe_BtnLab1>
     <Fe_BtnLab2 desc=""><![CDATA[升級]]></Fe_BtnLab2>
@@ -300,6 +300,12 @@
     <AH_SendPrivateMessageFailed desc=""><![CDATA[發送失敗]]></AH_SendPrivateMessageFailed>
     <AH_Current desc=""><![CDATA[剛剛]]></AH_Current>
     <AK_Desc desc=""><![CDATA[請選擇支付方式]]></AK_Desc>
+    <AL_Title desc=""><![CDATA[]]></AL_Title>
+    <AL_Cost desc=""><![CDATA[]]></AL_Cost>
+    <AL_Close desc=""><![CDATA[]]></AL_Close>
+    <AL_Eye desc=""><![CDATA[]]></AL_Eye>
+    <AL_Mouse desc=""><![CDATA[]]></AL_Mouse>
+    <AL_Tip desc=""><![CDATA[更改形象需要花費]]></AL_Tip>
   </UI>
   <FriendItem>
     <SendMessageButtonText desc=""><![CDATA[私信]]></SendMessageButtonText>
@@ -989,6 +995,7 @@
     <Tip8 desc=""><![CDATA[如果你覺得遊戲還不錯,請分享給你的朋友吧!還能獲得獎勵哦!]]></Tip8>
     <Tip9 desc=""><![CDATA[如果發現小遊戲裡有一朵花被星星籠罩,那麼你有機會得到它哦~]]></Tip9>
     <Tip10 desc=""><![CDATA[如果你發現某位小公主穿著帶問號的灰色裙子,不要懷疑你的眼睛,這說明你該更新一下遊戲了!]]></Tip10>
+    <Tip11 desc=""><![CDATA[在別人的花園或者搭配秀留言有機會獲得金幣獎勵哦!]]></Tip11>
   </Tip>
   <MinigameName>
     <Punch desc=""><![CDATA[打理花園]]></Punch>

+ 8 - 1
Assets/Resource/XML/lan/English.xml

@@ -20,7 +20,7 @@
     <F_IncreaseSource desc=""><![CDATA[From [&value&]]]></F_IncreaseSource>
     <F_LinkButton desc=""><![CDATA[Show all]]></F_LinkButton>
     <F_Tip desc=""><![CDATA[This is a healthy game, that means you can get coins when you are offline. If you feel tired, come to play after a rest.]]></F_Tip>
-    <Fe_Toast desc=""><![CDATA[Cool all skill]]></Fe_Toast>
+    <Fe_Toast desc=""><![CDATA[All skills have been cooled down.]]></Fe_Toast>
     <Fe_BtnLab0 desc=""><![CDATA[Unlock Now]]></Fe_BtnLab0>
     <Fe_BtnLab1 desc=""><![CDATA[Unlock]]></Fe_BtnLab1>
     <Fe_BtnLab2 desc=""><![CDATA[Upgrade]]></Fe_BtnLab2>
@@ -300,6 +300,12 @@ Program 水怪
     <AH_SendPrivateMessageFailed desc=""><![CDATA[Failed]]></AH_SendPrivateMessageFailed>
     <AH_Current desc=""><![CDATA[Just now]]></AH_Current>
     <AK_Desc desc=""><![CDATA[Please choose a payment method]]></AK_Desc>
+    <AL_Title desc=""><![CDATA[]]></AL_Title>
+    <AL_Cost desc=""><![CDATA[]]></AL_Cost>
+    <AL_Close desc=""><![CDATA[]]></AL_Close>
+    <AL_Eye desc=""><![CDATA[]]></AL_Eye>
+    <AL_Mouse desc=""><![CDATA[]]></AL_Mouse>
+    <AL_Tip desc=""><![CDATA[Changing character styling costs]]></AL_Tip>
   </UI>
   <FriendItem>
     <SendMessageButtonText desc=""><![CDATA[Message]]></SendMessageButtonText>
@@ -990,6 +996,7 @@ Increase all Coin prudoction by [&coin_person&](permanently)]]></Pack12>
     <Tip8 desc=""><![CDATA[Share the game to your friends, and get the rewards!]]></Tip8>
     <Tip9 desc=""><![CDATA[If you find stars hanging over a flower in mini games, don't miss it!]]></Tip9>
     <Tip10 desc=""><![CDATA[If see a girl dress in grey with a question mark, no doubt, you have to update your client now!]]></Tip10>
+    <Tip11 desc=""><![CDATA[Leave messages in others garden or fasion make chances to get more coins!]]></Tip11>
   </Tip>
   <MinigameName>
     <Punch desc=""><![CDATA[Take care]]></Punch>

BIN
Assets/Resource/Xlsx/cost_config.xlsx


BIN
Assets/Resource/Xlsx/language_config.xlsx


BIN
Assets/Resource/Xlsx/skill_config.xlsx


+ 10 - 10
Assets/Script/AssetBundleUtility/AssetBundleUtility.prefab

@@ -56,13 +56,13 @@ MonoBehaviour:
     MD5DictionaryFileName: AndroidMD5Dictionary#VERSION.txt
     OutputPath: Assets\HotUpdate\Android
     AssetBundleSets:
-    - Object: {fileID: 102900000, guid: 04a7f1bd57fb5ca418ced2344883fc52, type: 3}
+    - Object: {fileID: 102900000, guid: 8322d2dbc03eda649a17970bba68e0b8, type: 3}
       URL: null
-    - Object: {fileID: 102900000, guid: 87e6a9d80ecd6a346a04c51b88667aab, type: 3}
+    - Object: {fileID: 102900000, guid: 93a0a12dc45393e4a9602aefadb055fb, type: 3}
       URL: null
-    - Object: {fileID: 102900000, guid: 4705785e6e314f0479e474830132724c, type: 3}
+    - Object: {fileID: 102900000, guid: cda53ff6778b1054e87a5610411f1f71, type: 3}
       URL: null
-    - Object: {fileID: 102900000, guid: 6220b0c1709c5dd48bf622263434363a, type: 3}
+    - Object: {fileID: 102900000, guid: c9d179985526e764fb30975544663ca8, type: 3}
       URL: null
   - MD5FileName: IOSMD5.txt
     MD5DictionaryFileName: IOSMD5Dictionary.txt
@@ -76,15 +76,15 @@ MonoBehaviour:
       URL: null
     - Object: {fileID: 102900000, guid: 2322ebf659ac53340bfdc21c831c6f31, type: 3}
       URL: null
-  - MD5FileName: WindowsMD51_3_2.txt
-    MD5DictionaryFileName: WindowsMD5Dictionary1_3_2.txt
+  - MD5FileName: WindowsMD5#VERSION.txt
+    MD5DictionaryFileName: WindowsMD5Dictionary#VERSION.txt
     OutputPath: Assets\HotUpdate\Windows
     AssetBundleSets:
-    - Object: {fileID: 102900000, guid: 2f17c5920d57b8d489896683f7c5c072, type: 3}
+    - Object: {fileID: 102900000, guid: 62664e6c14d6aa044826edf1d6808f1f, type: 3}
       URL: null
-    - Object: {fileID: 102900000, guid: 858117daae6c5a1438728fe558f31270, type: 3}
+    - Object: {fileID: 102900000, guid: 1cd34e0da763f6843998307b64542333, type: 3}
       URL: null
-    - Object: {fileID: 102900000, guid: ac87496114f78414f95aa73a332d896b, type: 3}
+    - Object: {fileID: 102900000, guid: e90c99efc8cedec45b9a57189b703203, type: 3}
       URL: null
-    - Object: {fileID: 102900000, guid: 29a4af5c2399bb64ea7f0b746b1beb9a, type: 3}
+    - Object: {fileID: 102900000, guid: c90608050bb902749bf293b85d455a0c, type: 3}
       URL: null

+ 1161 - 1125
Assets/Script/Label/CanvasLabel.cs

@@ -1,1126 +1,1162 @@
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEngine;
-
-public class CanvasLabel
-{
-    //StartMark-Used by LabelUtility-Do not remove
-    public static string Canvas = "Canvas";
-    public static string E_Debug = "E_Debug";
-    public static string E_Group = "E_Group";
-    public static string E_Scrr = "E_Scrr";
-    public static string E_Mask = "E_Mask";
-    public static string E_ScrrLab = "E_ScrrLab";
-    public static string E_CentralBtn = "E_CentralBtn";
-    public static string E_CentralLab = "E_CentralLab";
-    public static string E_ShowBtn = "E_ShowBtn";
-    public static string E_ShowLab = "E_ShowLab";
-    public static string Ea_Central = "Ea_Central";
-    public static string Ea_Reset = "Ea_Reset";
-    public static string Ea_ResetLab = "Ea_ResetLab";
-    public static string Ea_Send = "Ea_Send";
-    public static string Ea_SendLab = "Ea_SendLab";
-    public static string Ea_Free = "Ea_Free";
-    public static string Ea_FreeLab = "Ea_FreeLab";
-    public static string Ea_Unlock = "Ea_Unlock";
-    public static string Ea_UnlockLab = "Ea_UnlockLab";
-    public static string Ea_Lottery = "Ea_Lottery";
-    public static string Ea_LotteryLab = "Ea_LotteryLab";
-    public static string Ea_Close = "Ea_Close";
-    public static string Ea_CloseLab = "Ea_CloseLab";
-    public static string Ea_Cool = "Ea_Cool";
-    public static string Ea_CoolLab = "Ea_CoolLab";
-    public static string Ea_Score = "Ea_Score";
-    public static string Ea_ScoreLab = "Ea_ScoreLab";
-    public static string Ea_End = "Ea_End";
-    public static string Ea_EndLab = "Ea_EndLab";
-    public static string Ea_IncreaseFR = "Ea_IncreaseFR";
-    public static string Ea_IncreaseLab = "Ea_IncreaseLab";
-    public static string Ea_DecreaseFR = "Ea_DecreaseFR";
-    public static string Ea_DecreaseLab = "Ea_DecreaseLab";
-    public static string C_Main = "C_Main";
-    public static string C_Main2 = "C_Main2";
-    public static string C_Group2 = "C_Group2";
-    public static string C_MiniGame = "C_MiniGame";
-    public static string C_MiniArrow0 = "C_MiniArrow0";
-    public static string C_MiniArrow1 = "C_MiniArrow1";
-    public static string C_MiniGameLab = "C_MiniGameLab";
-    public static string C_Group0 = "C_Group0";
-    public static string C_Group = "C_Group";
-    public static string C_Tip = "C_Tip";
-    public static string C_TipLab = "C_TipLab";
-    public static string C_RightSidePanelPosition = "C_RightSidePanelPosition";
-    public static string C_RightSidePanel = "C_RightSidePanel";
-    public static string C_OpenCloseRightSidePanelButtons = "C_OpenCloseRightSidePanelButtons";
-    public static string C_CloseSidePanelButton = "C_CloseSidePanelButton";
-    public static string C_OpenSidePanelButton = "C_OpenSidePanelButton";
-    public static string C_RightSidePanelGroup = "C_RightSidePanelGroup";
-    public static string C_Group1 = "C_Group1";
-    public static string C_Manage = "C_Manage";
-    public static string C_LevelBK = "C_LevelBK";
-    public static string C_LevelText = "C_LevelText";
-    public static string C_ManageArrow0 = "C_ManageArrow0";
-    public static string C_Achieve = "C_Achieve";
-    public static string C_Setting = "C_Setting";
-    public static string C_DressRoom = "C_DressRoom";
-    public static string C_DressRoomArrow = "C_DressRoomArrow";
-    public static string C_DressRoomLabPos = "C_DressRoomLabPos";
-    public static string C_Group4 = "C_Group4";
-    public static string C_FashionShowButtonParent = "C_FashionShowButtonParent";
-    public static string C_FashionShowButton = "C_FashionShowButton";
-    public static string C_FashionShowArrow = "C_FashionShowArrow";
-    public static string C_AddFriendButton = "C_AddFriendButton";
-    public static string C_EnterPlazaRoom0 = "C_EnterPlazaRoom0";
-    public static string C_EnterPlazaRoom = "C_EnterPlazaRoom";
-    public static string C_PlazaRoomArrow0 = "C_PlazaRoomArrow0";
-    public static string C_HeartIcon = "C_HeartIcon";
-    public static string C_WelcomeIcon = "C_WelcomeIcon";
-    public static string C_Return = "C_Return";
-    public static string C_ReturnArrow0 = "C_ReturnArrow0";
-    public static string C_Visit = "C_Visit";
-    public static string C_VisitLab = "C_VisitLab";
-    public static string C_CostLab = "C_CostLab";
-    public static string C_VisitImagePlus = "C_VisitImagePlus";
-    public static string C_VisitArrow0 = "C_VisitArrow0";
-    public static string C_Coin = "C_Coin";
-    public static string C_Pos = "C_Pos";
-    public static string C_CoinBk = "C_CoinBk";
-    public static string C_CoinLab = "C_CoinLab";
-    public static string C_IncomeLab = "C_IncomeLab";
-    public static string C_Garden = "C_Garden";
-    public static string C_GardenLab = "C_GardenLab";
-    public static string C_LeftSidePanel = "C_LeftSidePanel";
-    public static string C_LeftSidePanelHidePos = "C_LeftSidePanelHidePos";
-    public static string C_Group3 = "C_Group3";
-    public static string C_NicknameParent = "C_NicknameParent";
-    public static string C_NickNameBK = "C_NickNameBK";
-    public static string C_NickNameLab = "C_NickNameLab";
-    public static string C_SocialGroup = "C_SocialGroup";
-    public static string C_CommentParent = "C_CommentParent";
-    public static string C_Comment = "C_Comment";
-    public static string C_Praise = "C_Praise";
-    public static string C_PraiseText = "C_PraiseText";
-    public static string C_NotifyParent = "C_NotifyParent";
-    public static string C_Notify = "C_Notify";
-    public static string C_FriendButtonParent = "C_FriendButtonParent";
-    public static string C_FriendButton = "C_FriendButton";
-    public static string C_NewMessageFlag = "C_NewMessageFlag";
-    public static string C_NewMessageFlagText = "C_NewMessageFlagText";
-    public static string C_RankRarent = "C_RankRarent";
-    public static string C_Rank = "C_Rank";
-    public static string C_OpenCloseLeftSidePanelButtons = "C_OpenCloseLeftSidePanelButtons";
-    public static string C_CloseLeftSidePanelButton = "C_CloseLeftSidePanelButton";
-    public static string C_OpenLeftSidePanelButton = "C_OpenLeftSidePanelButton";
-    public static string C_Info = "C_Info";
-    public static string C_WifiButton = "C_WifiButton";
-    public static string L_Setting = "L_Setting";
-    public static string L_Setting0 = "L_Setting0";
-    public static string L_Tit = "L_Tit";
-    public static string L_User = "L_User";
-    public static string L_UserTit = "L_UserTit";
-    public static string L_UserLab = "L_UserLab";
-    public static string L_ChangeBtn = "L_ChangeBtn";
-    public static string L_ChangeLab = "L_ChangeLab";
-    public static string L_ResetBtn = "L_ResetBtn";
-    public static string L_ResetLab = "L_ResetLab";
-    public static string L_Audio = "L_Audio";
-    public static string L_AudioTit = "L_AudioTit";
-    public static string L_MusicBtn = "L_MusicBtn";
-    public static string L_MusicBk = "L_MusicBk";
-    public static string L_MusicOn = "L_MusicOn";
-    public static string L_MusicOnLab = "L_MusicOnLab";
-    public static string L_MusicOff = "L_MusicOff";
-    public static string L_MusicOffLab = "L_MusicOffLab";
-    public static string L_MusicLab = "L_MusicLab";
-    public static string L_AudioBtn = "L_AudioBtn";
-    public static string L_AudioBk = "L_AudioBk";
-    public static string L_AudioOn = "L_AudioOn";
-    public static string L_AudioOnLab = "L_AudioOnLab";
-    public static string L_AudioOff = "L_AudioOff";
-    public static string L_AudioOffLab = "L_AudioOffLab";
-    public static string L_AudioLab = "L_AudioLab";
-    public static string L_Confirm = "L_Confirm";
-    public static string L_ConfirmLab = "L_ConfirmLab";
-    public static string L_Language = "L_Language";
-    public static string L_LanguageButtonLayout = "L_LanguageButtonLayout";
-    public static string L_English = "L_English";
-    public static string L_EnglishLab = "L_EnglishLab";
-    public static string L_SimChi = "L_SimChi";
-    public static string L_SimChiLab = "L_SimChiLab";
-    public static string L_TraChi = "L_TraChi";
-    public static string L_TraChiLab = "L_TraChiLab";
-    public static string L_LanguageTit = "L_LanguageTit";
-    public static string L_Support = "L_Support";
-    public static string L_SupportTit = "L_SupportTit";
-    public static string L_ReportBtn = "L_ReportBtn";
-    public static string L_ReportLab = "L_ReportLab";
-    public static string L_ShareBtn = "L_ShareBtn";
-    public static string L_ShareLab = "L_ShareLab";
-    public static string L_CreditsBtn = "L_CreditsBtn";
-    public static string L_CreditsLab = "L_CreditsLab";
-    public static string Lb_Info = "Lb_Info";
-    public static string Lb_Info0 = "Lb_Info0";
-    public static string Lb_Tit = "Lb_Tit";
-    public static string Lb_Cancel = "Lb_Cancel";
-    public static string Lb_CancelLab = "Lb_CancelLab";
-    public static string Lb_Confirm = "Lb_Confirm";
-    public static string Lb_ConfirmLab = "Lb_ConfirmLab";
-    public static string Lb_InputField0 = "Lb_InputField0";
-    public static string Lb_InputLab0 = "Lb_InputLab0";
-    public static string Lb_Placeholder0 = "Lb_Placeholder0";
-    public static string Lb_InputField = "Lb_InputField";
-    public static string Lb_InputLab = "Lb_InputLab";
-    public static string Lb_Placeholder = "Lb_Placeholder";
-    public static string Lc_CreditsMask = "Lc_CreditsMask";
-    public static string Lc_Pos = "Lc_Pos";
-    public static string Lc_CreditsContent = "Lc_CreditsContent";
-    public static string Lc_CreditsIcon = "Lc_CreditsIcon";
-    public static string La_Info = "La_Info";
-    public static string La_Info0 = "La_Info0";
-    public static string La_Tit = "La_Tit";
-    public static string La_Lab = "La_Lab";
-    public static string La_Cancel = "La_Cancel";
-    public static string La_CancelLab = "La_CancelLab";
-    public static string La_Confirm = "La_Confirm";
-    public static string La_ConfirmLab = "La_ConfirmLab";
-    public static string La_InputField = "La_InputField";
-    public static string La_InputLab = "La_InputLab";
-    public static string La_Placeholder = "La_Placeholder";
-    public static string La_Mask = "La_Mask";
-    public static string F_Manage = "F_Manage";
-    public static string F_Manage0 = "F_Manage0";
-    public static string F_Close = "F_Close";
-    public static string F_CloseExtent = "F_CloseExtent";
-    public static string F_Tab = "F_Tab";
-    public static string Fd_Elf = "Fd_Elf";
-    public static string Fd_Scrr = "Fd_Scrr";
-    public static string Fd_Grid = "Fd_Grid";
-    public static string Fc_Store = "Fc_Store";
-    public static string Fc_Scrr = "Fc_Scrr";
-    public static string Fc_Grid = "Fc_Grid";
-    public static string Fb_Magic = "Fb_Magic";
-    public static string Fb_Scrr = "Fb_Scrr";
-    public static string Fb_Grid = "Fb_Grid";
-    public static string Ff_SkillBar = "Ff_SkillBar";
-    public static string F_Skill1 = "F_Skill1";
-    public static string F_Arrow0 = "F_Arrow0";
-    public static string F_SkillBk10 = "F_SkillBk10";
-    public static string F_SkillBk11 = "F_SkillBk11";
-    public static string F_SkillLab1 = "F_SkillLab1";
-    public static string F_Skill2 = "F_Skill2";
-    public static string F_SkillBk20 = "F_SkillBk20";
-    public static string F_SkillBk21 = "F_SkillBk21";
-    public static string F_SkillLab2 = "F_SkillLab2";
-    public static string F_Skill3 = "F_Skill3";
-    public static string F_SkillBk30 = "F_SkillBk30";
-    public static string F_SkillBk31 = "F_SkillBk31";
-    public static string F_SkillLab3 = "F_SkillLab3";
-    public static string F_Skill4 = "F_Skill4";
-    public static string F_SkillBk40 = "F_SkillBk40";
-    public static string F_SkillBk41 = "F_SkillBk41";
-    public static string F_SkillLab4 = "F_SkillLab4";
-    public static string Fa_Garden = "Fa_Garden";
-    public static string Fa_Scrr = "Fa_Scrr";
-    public static string Fa_Grid = "Fa_Grid";
-    public static string F_TabBtn = "F_TabBtn";
-    public static string F_Store = "F_Store";
-    public static string F_StoreIcon = "F_StoreIcon";
-    public static string F_StoreLab = "F_StoreLab";
-    public static string F_Magic = "F_Magic";
-    public static string F_MagicIcon = "F_MagicIcon";
-    public static string F_MagicLab = "F_MagicLab";
-    public static string F_Elf = "F_Elf";
-    public static string F_ElfIcon = "F_ElfIcon";
-    public static string F_ElfLab = "F_ElfLab";
-    public static string F_Garden = "F_Garden";
-    public static string F_GardenIcon = "F_GardenIcon";
-    public static string F_GardenLab = "F_GardenLab";
-    public static string F_Info = "F_Info";
-    public static string F_DataA = "F_DataA";
-    public static string F_DataB = "F_DataB";
-    public static string F_CoinLab = "F_CoinLab";
-    public static string F_DiamondLab = "F_DiamondLab";
-    public static string F_FlowerLab = "F_FlowerLab";
-    public static string F_PersonLab = "F_PersonLab";
-    public static string F_CoinPersonLab = "F_CoinPersonLab";
-    public static string F_PersonBtn = "F_PersonBtn";
-    public static string F_CoinPersonBtn = "F_CoinPersonBtn";
-    public static string F_Flower = "F_Flower";
-    public static string F_CoinLabArrow = "F_CoinLabArrow";
-    public static string F_TipBK = "F_TipBK";
-    public static string F_Tip = "F_Tip";
-    public static string F_TipBtn = "F_TipBtn";
-    public static string F_PosTra = "F_PosTra";
-    public static string Fe_Info = "Fe_Info";
-    public static string Fe_Info0 = "Fe_Info0";
-    public static string Fe_Tit = "Fe_Tit";
-    public static string Fe_Icon = "Fe_Icon";
-    public static string Fe_Lab0 = "Fe_Lab0";
-    public static string Fe_ImagePlus0 = "Fe_ImagePlus0";
-    public static string Fe_Lab1 = "Fe_Lab1";
-    public static string Fe_ImagePlus1 = "Fe_ImagePlus1";
-    public static string Fe_Btn = "Fe_Btn";
-    public static string Fe_BtnLab = "Fe_BtnLab";
-    public static string Fe_ImagePlus = "Fe_ImagePlus";
-    public static string Fe_Arrow0 = "Fe_Arrow0";
-    public static string Fe_Arrow1 = "Fe_Arrow1";
-    public static string Fe_Close = "Fe_Close";
-    public static string Fg_Reconnect = "Fg_Reconnect";
-    public static string Fg_Reconnect0 = "Fg_Reconnect0";
-    public static string Fg_Tit = "Fg_Tit";
-    public static string Fg_Btn = "Fg_Btn";
-    public static string Fg_BtnLab = "Fg_BtnLab";
-    public static string Fg_Lab = "Fg_Lab";
-    public static string Fg_Close = "Fg_Close";
-    public static string AK_PayCard = "AK_PayCard";
-    public static string AK_PayCard0 = "AK_PayCard0";
-    public static string AK_Desc = "AK_Desc";
-    public static string AK_Close = "AK_Close";
-    public static string AK_Buttons = "AK_Buttons";
-    public static string AK_Alipay = "AK_Alipay";
-    public static string AK_WXPay = "AK_WXPay";
-    public static string D_MiniGame = "D_MiniGame";
-    public static string D_HudParent = "D_HudParent";
-    public static string D_Quit = "D_Quit";
-    public static string D_PrepareLab = "D_PrepareLab";
-    public static string D_Operate1 = "D_Operate1";
-    public static string D_PrepareLayout1 = "D_PrepareLayout1";
-    public static string D_Status1 = "D_Status1";
-    public static string D_Rip1 = "D_Rip1";
-    public static string D_Rip2 = "D_Rip2";
-    public static string D_Water1 = "D_Water1";
-    public static string D_Water2 = "D_Water2";
-    public static string D_WaterArrow0 = "D_WaterArrow0";
-    public static string D_WaterArrow1 = "D_WaterArrow1";
-    public static string D_Fertilize1 = "D_Fertilize1";
-    public static string D_Fertilize2 = "D_Fertilize2";
-    public static string D_DescA = "D_DescA";
-    public static string D_Operate2 = "D_Operate2";
-    public static string D_Begin = "D_Begin";
-    public static string D_BeginLab = "D_BeginLab";
-    public static string D_BeginArrow0 = "D_BeginArrow0";
-    public static string D_BeginArrow1 = "D_BeginArrow1";
-    public static string D_PrepareLayout2 = "D_PrepareLayout2";
-    public static string D_Status2 = "D_Status2";
-    public static string D_Timer = "D_Timer";
-    public static string D_TimerLab = "D_TimerLab";
-    public static string D_TimerIcon = "D_TimerIcon";
-    public static string D_Grid = "D_Grid";
-    public static string D_ScoreLab = "D_ScoreLab";
-    public static string D_StatusLab = "D_StatusLab";
-    public static string D_DescB = "D_DescB";
-    public static string D_FlowerBtn1 = "D_FlowerBtn1";
-    public static string D_FlowerIcon1 = "D_FlowerIcon1";
-    public static string D_FlowerArrow1 = "D_FlowerArrow1";
-    public static string D_FlowerTick1 = "D_FlowerTick1";
-    public static string D_FlowerBtn2 = "D_FlowerBtn2";
-    public static string D_FlowerIcon2 = "D_FlowerIcon2";
-    public static string D_FlowerArrow2 = "D_FlowerArrow2";
-    public static string D_FlowerTick2 = "D_FlowerTick2";
-    public static string D_FlowerBtn3 = "D_FlowerBtn3";
-    public static string D_FlowerIcon3 = "D_FlowerIcon3";
-    public static string D_FlowerArrow3 = "D_FlowerArrow3";
-    public static string D_FlowerTick3 = "D_FlowerTick3";
-    public static string D_FlowerBtn4 = "D_FlowerBtn4";
-    public static string D_FlowerIcon4 = "D_FlowerIcon4";
-    public static string D_FlowerArrow4 = "D_FlowerArrow4";
-    public static string D_FlowerTick4 = "D_FlowerTick4";
-    public static string D_FlowerBtn5 = "D_FlowerBtn5";
-    public static string D_FlowerIcon5 = "D_FlowerIcon5";
-    public static string D_FlowerArrow5 = "D_FlowerArrow5";
-    public static string D_FlowerTick5 = "D_FlowerTick5";
-    public static string D_FlowerBtn6 = "D_FlowerBtn6";
-    public static string D_FlowerIcon6 = "D_FlowerIcon6";
-    public static string D_FlowerArrow6 = "D_FlowerArrow6";
-    public static string D_FlowerTick6 = "D_FlowerTick6";
-    public static string D_Mask = "D_Mask";
-    public static string D_Operate3 = "D_Operate3";
-    public static string D_PrepareLayout3 = "D_PrepareLayout3";
-    public static string D_Status3 = "D_Status3";
-    public static string D_FlowerBtn7 = "D_FlowerBtn7";
-    public static string D_FlowerIcon7 = "D_FlowerIcon7";
-    public static string D_FlowerArrow7 = "D_FlowerArrow7";
-    public static string D_FlowerBtn8 = "D_FlowerBtn8";
-    public static string D_FlowerIcon8 = "D_FlowerIcon8";
-    public static string D_FlowerArrow8 = "D_FlowerArrow8";
-    public static string D_FlowerBtn9 = "D_FlowerBtn9";
-    public static string D_FlowerIcon9 = "D_FlowerIcon9";
-    public static string D_FlowerArrow9 = "D_FlowerArrow9";
-    public static string D_DescC = "D_DescC";
-    public static string D_FindMissingGamePanel = "D_FindMissingGamePanel";
-    public static string D_FindMissingGamePrepareLayout = "D_FindMissingGamePrepareLayout";
-    public static string D_FindMissingGameStatus = "D_FindMissingGameStatus";
-    public static string D_FindMissingGameButton0 = "D_FindMissingGameButton0";
-    public static string D_FindMissingGameIcon0 = "D_FindMissingGameIcon0";
-    public static string D_FindMissingGameArrow0 = "D_FindMissingGameArrow0";
-    public static string D_FindMissingGameButton2 = "D_FindMissingGameButton2";
-    public static string D_FindMissingGameIcon2 = "D_FindMissingGameIcon2";
-    public static string D_FindMissingGameArrow2 = "D_FindMissingGameArrow2";
-    public static string D_FindMissingGameButton1 = "D_FindMissingGameButton1";
-    public static string D_FindMissingGameIcon1 = "D_FindMissingGameIcon1";
-    public static string D_FindMissingGameArrow1 = "D_FindMissingGameArrow1";
-    public static string D_FindMissingGameDesc = "D_FindMissingGameDesc";
-    public static string D_FindMissingGameMask = "D_FindMissingGameMask";
-    public static string Da_Info = "Da_Info";
-    public static string Da_Info0 = "Da_Info0";
-    public static string Da_Tit = "Da_Tit";
-    public static string Da_Lab = "Da_Lab";
-    public static string Da_Quit = "Da_Quit";
-    public static string Da_QuitLab = "Da_QuitLab";
-    public static string Da_Cancel = "Da_Cancel";
-    public static string Da_CancelLab = "Da_CancelLab";
-    public static string Da_HGroup1 = "Da_HGroup1";
-    public static string Da_Star1 = "Da_Star1";
-    public static string Da_Star2 = "Da_Star2";
-    public static string Da_Star3 = "Da_Star3";
-    public static string Da_VGroup = "Da_VGroup";
-    public static string Da_Award = "Da_Award";
-    public static string Da_CoinGroup = "Da_CoinGroup";
-    public static string Da_Coin = "Da_Coin";
-    public static string Da_CoinLab = "Da_CoinLab";
-    public static string Da_DiamondGroup = "Da_DiamondGroup";
-    public static string Da_Diamond = "Da_Diamond";
-    public static string Da_DiamondLab = "Da_DiamondLab";
-    public static string Da_FlowerGroup = "Da_FlowerGroup";
-    public static string Da_Flower = "Da_Flower";
-    public static string Da_FlowerIcon = "Da_FlowerIcon";
-    public static string Da_FlowerLab = "Da_FlowerLab";
-    public static string Da_ScoreTit = "Da_ScoreTit";
-    public static string Da_ScoreLab = "Da_ScoreLab";
-    public static string Da_GetAward = "Da_GetAward";
-    public static string Da_Arrow0 = "Da_Arrow0";
-    public static string Da_Arrow1 = "Da_Arrow1";
-    public static string Da_GetAwardLab = "Da_GetAwardLab";
-    public static string G_Flower = "G_Flower";
-    public static string G_Flower0 = "G_Flower0";
-    public static string G_Close = "G_Close";
-    public static string G_Arrow0 = "G_Arrow0";
-    public static string G_Retrieve = "G_Retrieve";
-    public static string G_Tab = "G_Tab";
-    public static string G_Special = "G_Special";
-    public static string G_SpecialLab = "G_SpecialLab";
-    public static string G_Regular = "G_Regular";
-    public static string G_PosTraL = "G_PosTraL";
-    public static string G_PosTraR = "G_PosTraR";
-    public static string G_Scrr = "G_Scrr";
-    public static string G_SpecialScrr = "G_SpecialScrr";
-    public static string G_SpecialGrid = "G_SpecialGrid";
-    public static string G_RegularScrr = "G_RegularScrr";
-    public static string G_RegularGrid = "G_RegularGrid";
-    public static string G_Collect = "G_Collect";
-    public static string G_RetrieveLab = "G_RetrieveLab";
-    public static string G_Tit = "G_Tit";
-    public static string G_RegularLab = "G_RegularLab";
-    public static string G_CollectLab1 = "G_CollectLab1";
-    public static string G_CollectLab2 = "G_CollectLab2";
-    public static string H_FlowerCard = "H_FlowerCard";
-    public static string H_FlowerCard0 = "H_FlowerCard0";
-    public static string H_Lab = "H_Lab";
-    public static string H_Desc = "H_Desc";
-    public static string H_AmtLab = "H_AmtLab";
-    public static string H_Rotate = "H_Rotate";
-    public static string H_Icon1 = "H_Icon1";
-    public static string H_UIFlashLight = "H_UIFlashLight";
-    public static string H_UIFlash = "H_UIFlash";
-    public static string H_UIFlash2 = "H_UIFlash2";
-    public static string H_UIParticleSystem = "H_UIParticleSystem";
-    public static string H_Icon2 = "H_Icon2";
-    public static string H_ArrowPos = "H_ArrowPos";
-    public static string H_ArrowParent = "H_ArrowParent";
-    public static string H_Arrow = "H_Arrow";
-    public static string H_Close = "H_Close";
-    public static string H_HGroup = "H_HGroup";
-    public static string H_Btn = "H_Btn";
-    public static string H_BtnLab = "H_BtnLab";
-    public static string H_BtnImagePlus = "H_BtnImagePlus";
-    public static string H_Btn1 = "H_Btn1";
-    public static string H_BtnLab1 = "H_BtnLab1";
-    public static string H_BtnImagePlus1 = "H_BtnImagePlus1";
-    public static string M_Achieve = "M_Achieve";
-    public static string M_Achieve0 = "M_Achieve0";
-    public static string M_Close = "M_Close";
-    public static string M_CloseExtent = "M_CloseExtent";
-    public static string M_Tit = "M_Tit";
-    public static string M_Scrr = "M_Scrr";
-    public static string M_Grid = "M_Grid";
-    public static string M_PosTra = "M_PosTra";
-    public static string P_DressRoom = "P_DressRoom";
-    public static string P_ChangeDressPanel = "P_ChangeDressPanel";
-    public static string P_ShareParent = "P_ShareParent";
-    public static string P_Share = "P_Share";
-    public static string P_ScreenShotRect = "P_ScreenShotRect";
-    public static string P_Group = "P_Group";
-    public static string P_HorizontalGroup = "P_HorizontalGroup";
-    public static string P_FashionShowButton = "P_FashionShowButton";
-    public static string P_Reset = "P_Reset";
-    public static string P_Save = "P_Save";
-    public static string P_Return = "P_Return";
-    public static string P_Tutorial = "P_Tutorial";
-    public static string P_TutorialBg = "P_TutorialBg";
-    public static string P_CloseTipBK = "P_CloseTipBK";
-    public static string P_CloseTip = "P_CloseTip";
-    public static string P_CreateTipBK = "P_CreateTipBK";
-    public static string P_CreateTip = "P_CreateTip";
-    public static string P_CloseArrow0 = "P_CloseArrow0";
-    public static string P_CloseArrow1 = "P_CloseArrow1";
-    public static string P_SidePanel = "P_SidePanel";
-    public static string P_Close = "P_Close";
-    public static string P_Open = "P_Open";
-    public static string P_Data = "P_Data";
-    public static string P_CoinLab = "P_CoinLab";
-    public static string P_DiamondLab = "P_DiamondLab";
-    public static string P_TabBtn = "P_TabBtn";
-    public static string P_Top = "P_Top";
-    public static string P_TopIcon = "P_TopIcon";
-    public static string P_TopLab = "P_TopLab";
-    public static string P_Dress = "P_Dress";
-    public static string P_DressIcon = "P_DressIcon";
-    public static string P_DressLab = "P_DressLab";
-    public static string P_Shoe = "P_Shoe";
-    public static string P_ShoeIcon = "P_ShoeIcon";
-    public static string P_ShoeLab = "P_ShoeLab";
-    public static string P_Decarator = "P_Decarator";
-    public static string P_DecaratorIcon = "P_DecaratorIcon";
-    public static string P_DecaratorLab = "P_DecaratorLab";
-    public static string P_Wing = "P_Wing";
-    public static string P_WingIcon = "P_WingIcon";
-    public static string P_WingLab = "P_WingLab";
-    public static string P_Hair = "P_Hair";
-    public static string P_HairIcon = "P_HairIcon";
-    public static string P_HairLab = "P_HairLab";
-    public static string P_Pos = "P_Pos";
-    public static string P_Tab = "P_Tab";
-    public static string Pa_HairTab = "Pa_HairTab";
-    public static string Pa_HairGrid = "Pa_HairGrid";
-    public static string Pb_TopTab = "Pb_TopTab";
-    public static string Pb_TopGrid = "Pb_TopGrid";
-    public static string Pc_DressTab = "Pc_DressTab";
-    public static string Pc_DressGrid = "Pc_DressGrid";
-    public static string Pd_DecaratorTab = "Pd_DecaratorTab";
-    public static string Pd_DecaratorGrid = "Pd_DecaratorGrid";
-    public static string Pe_WingTab = "Pe_WingTab";
-    public static string Pe_WingGrid = "Pe_WingGrid";
-    public static string Pf_ShoeTab = "Pf_ShoeTab";
-    public static string Pf_ShoeGrid = "Pf_ShoeGrid";
-    public static string P_CancelShare = "P_CancelShare";
-    public static string P_CloseTipBtn = "P_CloseTipBtn";
-    public static string Pi_FashionShowHomePanel = "Pi_FashionShowHomePanel";
-    public static string Pi_FashionShowHomePanelPosition = "Pi_FashionShowHomePanelPosition";
-    public static string Pi_FashionShowHomeSidePanel = "Pi_FashionShowHomeSidePanel";
-    public static string Pi_Tutorial = "Pi_Tutorial";
-    public static string Pi_TutorialBg = "Pi_TutorialBg";
-    public static string Pi_HomePageArrow0 = "Pi_HomePageArrow0";
-    public static string Pi_HomePageArrow1 = "Pi_HomePageArrow1";
-    public static string Pi_SidePanelBg = "Pi_SidePanelBg";
-    public static string Pi_Ribbon = "Pi_Ribbon";
-    public static string Pi_Return = "Pi_Return";
-    public static string Pi_TabButtons = "Pi_TabButtons";
-    public static string Pi_CuteTabButton = "Pi_CuteTabButton";
-    public static string Pi_CuteTabBubble = "Pi_CuteTabBubble";
-    public static string Pi_CuteTabButtonText = "Pi_CuteTabButtonText";
-    public static string Pi_GraceTabButton = "Pi_GraceTabButton";
-    public static string Pi_GraceTabBubble = "Pi_GraceTabBubble";
-    public static string Pi_GraceTabButtonText = "Pi_GraceTabButtonText";
-    public static string Pi_VividTabButton = "Pi_VividTabButton";
-    public static string Pi_VividTabBubble = "Pi_VividTabBubble";
-    public static string Pi_VividTabButtonText = "Pi_VividTabButtonText";
-    public static string Pi_SimpleTabButton = "Pi_SimpleTabButton";
-    public static string Pi_SimpleTabBubble = "Pi_SimpleTabBubble";
-    public static string Pi_SimpleTabButtonText = "Pi_SimpleTabButtonText";
-    public static string Pi_GloryTabButton = "Pi_GloryTabButton";
-    public static string Pi_GloryTabBubble = "Pi_GloryTabBubble";
-    public static string Pi_GloryTabButtonText = "Pi_GloryTabButtonText";
-    public static string Pi_MineTabButton = "Pi_MineTabButton";
-    public static string Pi_MineTabButtonArrow = "Pi_MineTabButtonArrow";
-    public static string Pi_MineTabBubble = "Pi_MineTabBubble";
-    public static string Pi_MineTabButtonText = "Pi_MineTabButtonText";
-    public static string Pi_HomeTabButton = "Pi_HomeTabButton";
-    public static string Pi_HomeTabBubble = "Pi_HomeTabBubble";
-    public static string Pi_HomeTabButtonText = "Pi_HomeTabButtonText";
-    public static string Pi_RecommendTitle = "Pi_RecommendTitle";
-    public static string Pi_HomeTab = "Pi_HomeTab";
-    public static string Pi_HomeScrollRect = "Pi_HomeScrollRect";
-    public static string Ph_HomeGrid = "Ph_HomeGrid";
-    public static string Pi_CuteTab = "Pi_CuteTab";
-    public static string Pi_CuteScrollRect = "Pi_CuteScrollRect";
-    public static string Ph_CuteGrid = "Ph_CuteGrid";
-    public static string Pi_GraceTab = "Pi_GraceTab";
-    public static string Pi_GraceScrollRect = "Pi_GraceScrollRect";
-    public static string Ph_GraceGrid = "Ph_GraceGrid";
-    public static string Pi_VividTab = "Pi_VividTab";
-    public static string Pi_VividScrollRect = "Pi_VividScrollRect";
-    public static string Ph_VividGrid = "Ph_VividGrid";
-    public static string Pi_SimpleTab = "Pi_SimpleTab";
-    public static string Pi_SimpleScrollRect = "Pi_SimpleScrollRect";
-    public static string Ph_SimpleGrid = "Ph_SimpleGrid";
-    public static string Pi_GloryTab = "Pi_GloryTab";
-    public static string Pi_GloryScrollRect = "Pi_GloryScrollRect";
-    public static string Ph_GloryGrid = "Ph_GloryGrid";
-    public static string Pi_MineTab = "Pi_MineTab";
-    public static string Pi_MineScrollRect = "Pi_MineScrollRect";
-    public static string Ph_MineGrid = "Ph_MineGrid";
-    public static string Pi_ShareArrow = "Pi_ShareArrow";
-    public static string Pi_ShareBg = "Pi_ShareBg";
-    public static string Pi_Share = "Pi_Share";
-    public static string Pi_HomePageTipBtn = "Pi_HomePageTipBtn";
-    public static string Pi_HomePageTipBK = "Pi_HomePageTipBK";
-    public static string Pi_HomePageTip = "Pi_HomePageTip";
-    public static string Pi_LeaveTipBK = "Pi_LeaveTipBK";
-    public static string Pi_LeaveTip = "Pi_LeaveTip";
-    public static string Pg_FashionShowEditPanel = "Pg_FashionShowEditPanel";
-    public static string Pg_FashionShowEditPanelPosition = "Pg_FashionShowEditPanelPosition";
-    public static string Pg_Ribbon = "Pg_Ribbon";
-    public static string Pg_Return = "Pg_Return";
-    public static string Pg_CurrentData = "Pg_CurrentData";
-    public static string Pg_CoinText = "Pg_CoinText";
-    public static string Pg_DiamondText = "Pg_DiamondText";
-    public static string Pg_RecommendTitle = "Pg_RecommendTitle";
-    public static string Pg_DisplayBackground = "Pg_DisplayBackground";
-    public static string Image = "Image";
-    public static string Pg_DisplayEditButton = "Pg_DisplayEditButton";
-    public static string Pg_HorizontalGroup = "Pg_HorizontalGroup";
-    public static string Pg_DeleteButton = "Pg_DeleteButton";
-    public static string Pg_ResetButton = "Pg_ResetButton";
-    public static string Pg_SaveButton = "Pg_SaveButton";
-    public static string Pg_PraiseButton = "Pg_PraiseButton";
-    public static string Pg_PraiseText = "Pg_PraiseText";
-    public static string Pg_CommentButton = "Pg_CommentButton";
-    public static string Pg_ShareButton = "Pg_ShareButton";
-    public static string Pg_FashionTitleBackground = "Pg_FashionTitleBackground";
-    public static string Pg_FashionTitleParent = "Pg_FashionTitleParent";
-    public static string Pg_FashionTitle = "Pg_FashionTitle";
-    public static string Pg_FashionTitlePlaceHolder = "Pg_FashionTitlePlaceHolder";
-    public static string Pg_FashionTitleEditButton = "Pg_FashionTitleEditButton";
-    public static string Pg_Content = "Pg_Content";
-    public static string Pg_FashionContentBackground = "Pg_FashionContentBackground";
-    public static string Pg_FashionContentParent = "Pg_FashionContentParent";
-    public static string Pg_FashionContent = "Pg_FashionContent";
-    public static string Pg_FashionContentPlaceHolder = "Pg_FashionContentPlaceHolder";
-    public static string Pg_FashionContentEditButton = "Pg_FashionContentEditButton";
-    public static string Pg_SliderBackground = "Pg_SliderBackground";
-    public static string Pg_VerticalSliderGroup = "Pg_VerticalSliderGroup";
-    public static string Pg_CuteSlider = "Pg_CuteSlider";
-    public static string Pg_CuteTitle = "Pg_CuteTitle";
-    public static string Pg_CuteValue = "Pg_CuteValue";
-    public static string Pg_CuteBackground = "Pg_CuteBackground";
-    public static string Pg_CuteFillArea = "Pg_CuteFillArea";
-    public static string Pg_CuteFill = "Pg_CuteFill";
-    public static string Pg_CuteHandleSlideArea = "Pg_CuteHandleSlideArea";
-    public static string Pg_CuteHandle = "Pg_CuteHandle";
-    public static string Pg_CuteRateBackground = "Pg_CuteRateBackground";
-    public static string Pg_CuteRateText = "Pg_CuteRateText";
-    public static string Pg_GraceSlider = "Pg_GraceSlider";
-    public static string Pg_GraceTitle = "Pg_GraceTitle";
-    public static string Pg_GraceValue = "Pg_GraceValue";
-    public static string Pg_GraceBackground = "Pg_GraceBackground";
-    public static string Pg_GraceFillArea = "Pg_GraceFillArea";
-    public static string Pg_GraceFill = "Pg_GraceFill";
-    public static string Pg_GraceHandleSlideArea = "Pg_GraceHandleSlideArea";
-    public static string Pg_GraceHandle = "Pg_GraceHandle";
-    public static string Pg_GraceRateBackground = "Pg_GraceRateBackground";
-    public static string Pg_GraceRateText = "Pg_GraceRateText";
-    public static string Pg_VividSlider = "Pg_VividSlider";
-    public static string Pg_VividTitle = "Pg_VividTitle";
-    public static string Pg_VividValue = "Pg_VividValue";
-    public static string Pg_VividBackground = "Pg_VividBackground";
-    public static string Pg_VividFillArea = "Pg_VividFillArea";
-    public static string Pg_VividFill = "Pg_VividFill";
-    public static string Pg_VividHandleSlideArea = "Pg_VividHandleSlideArea";
-    public static string Pg_VividHandle = "Pg_VividHandle";
-    public static string Pg_VividRateBackground = "Pg_VividRateBackground";
-    public static string Pg_VividRateText = "Pg_VividRateText";
-    public static string Pg_SimpleSlider = "Pg_SimpleSlider";
-    public static string Pg_SimpleTitle = "Pg_SimpleTitle";
-    public static string Pg_SimpleValue = "Pg_SimpleValue";
-    public static string Pg_SimpleBackground = "Pg_SimpleBackground";
-    public static string Pg_SimpleFillArea = "Pg_SimpleFillArea";
-    public static string Pg_SimpleFill = "Pg_SimpleFill";
-    public static string Pg_SimpleHandleSlideArea = "Pg_SimpleHandleSlideArea";
-    public static string Pg_SimpleHandle = "Pg_SimpleHandle";
-    public static string Pg_SimpleRateBackground = "Pg_SimpleRateBackground";
-    public static string Pg_SimpleRateText = "Pg_SimpleRateText";
-    public static string Pg_GlorySlider = "Pg_GlorySlider";
-    public static string Pg_GloryTitle = "Pg_GloryTitle";
-    public static string Pg_GloryValue = "Pg_GloryValue";
-    public static string Pg_GloryBackground = "Pg_GloryBackground";
-    public static string Pg_GloryFillArea = "Pg_GloryFillArea";
-    public static string Pg_GloryFill = "Pg_GloryFill";
-    public static string Pg_GloryHandleSlideArea = "Pg_GloryHandleSlideArea";
-    public static string Pg_GloryHandle = "Pg_GloryHandle";
-    public static string Pg_GloryRateBackground = "Pg_GloryRateBackground";
-    public static string Pg_GloryRateText = "Pg_GloryRateText";
-    public static string Pg_SubmitRateButton = "Pg_SubmitRateButton";
-    public static string Pg_ResetRateButton = "Pg_ResetRateButton";
-    public static string Pg_RateButton = "Pg_RateButton";
-    public static string Pg_Frame = "Pg_Frame";
-    public static string Pg_FashionShowClosesTitle = "Pg_FashionShowClosesTitle";
-    public static string Pg_FashionShowCloseScrollRect = "Pg_FashionShowCloseScrollRect";
-    public static string Pg_FashionShowCloseGrid = "Pg_FashionShowCloseGrid";
-    public static string Pg_CloseTotalCoinImage = "Pg_CloseTotalCoinImage";
-    public static string Pg_CloseTotalCoinText = "Pg_CloseTotalCoinText";
-    public static string Pg_CloseTotalDiamondImage = "Pg_CloseTotalDiamondImage";
-    public static string Pg_CloseTotalDiamondText = "Pg_CloseTotalDiamondText";
-    public static string Pg_BuyAllButton = "Pg_BuyAllButton";
-    public static string Pg_BuyAllButtonText = "Pg_BuyAllButtonText";
-    public static string Ph_CommentMask = "Ph_CommentMask";
-    public static string Ph_CommentPanel = "Ph_CommentPanel";
-    public static string Ph_Frame = "Ph_Frame";
-    public static string Ph_NicknameTitle = "Ph_NicknameTitle";
-    public static string Ph_ContentTitle = "Ph_ContentTitle";
-    public static string Ph_Title = "Ph_Title";
-    public static string Ph_CloseButton = "Ph_CloseButton";
-    public static string Ph_CloseButtonText = "Ph_CloseButtonText";
-    public static string Ph_ScrollRect = "Ph_ScrollRect";
-    public static string Ph_Grid = "Ph_Grid";
-    public static string Ph_InputFieldBK = "Ph_InputFieldBK";
-    public static string Ph_SendCommentButton = "Ph_SendCommentButton";
-    public static string Ph_SendCommentButtonText = "Ph_SendCommentButtonText";
-    public static string Ph_InputField = "Ph_InputField";
-    public static string Ph_Placeholder = "Ph_Placeholder";
-    public static string Ph_PlaceholderText = "Ph_PlaceholderText";
-    public static string Ph_Tip = "Ph_Tip";
-    public static string Pa_Info = "Pa_Info";
-    public static string Pa_Info0 = "Pa_Info0";
-    public static string Pa_Tit = "Pa_Tit";
-    public static string Pa_Icon0 = "Pa_Icon0";
-    public static string Pa_Icon1 = "Pa_Icon1";
-    public static string Pa_Icon2 = "Pa_Icon2";
-    public static string Pa_Icon3 = "Pa_Icon3";
-    public static string Pa_Lab = "Pa_Lab";
-    public static string Pa_Desc = "Pa_Desc";
-    public static string Pa_Btn = "Pa_Btn";
-    public static string Pa_BtnLab = "Pa_BtnLab";
-    public static string Pa_ImagePlus = "Pa_ImagePlus";
-    public static string Pa_Close = "Pa_Close";
-    public static string R_Notify0 = "R_Notify0";
-    public static string R_Notify = "R_Notify";
-    public static string R_NotifyBK = "R_NotifyBK";
-    public static string R_Close = "R_Close";
-    public static string R_CloseLab = "R_CloseLab";
-    public static string R_NotifyTit = "R_NotifyTit";
-    public static string R_ScrollRect = "R_ScrollRect";
-    public static string R_Grid = "R_Grid";
-    public static string Q_Comment = "Q_Comment";
-    public static string Q_CommentBK = "Q_CommentBK";
-    public static string Q_CommentPanel = "Q_CommentPanel";
-    public static string Q_Frame = "Q_Frame";
-    public static string Q_NicknameTitle = "Q_NicknameTitle";
-    public static string Q_ContentTitle = "Q_ContentTitle";
-    public static string Q_FriendFilterButton = "Q_FriendFilterButton";
-    public static string Q_FriendFilterIcon = "Q_FriendFilterIcon";
-    public static string Q_FriendFilterTitle = "Q_FriendFilterTitle";
-    public static string Q_Tit = "Q_Tit";
-    public static string Q_Close = "Q_Close";
-    public static string Q_CloseLab = "Q_CloseLab";
-    public static string Q_ScrollRect = "Q_ScrollRect";
-    public static string Q_Grid = "Q_Grid";
-    public static string Q_InputBK = "Q_InputBK";
-    public static string Q_CommentBtn = "Q_CommentBtn";
-    public static string Q_CommentLab = "Q_CommentLab";
-    public static string Q_InputField = "Q_InputField";
-    public static string Q_Placeholder = "Q_Placeholder";
-    public static string Q_Lab = "Q_Lab";
-    public static string Q_Tip = "Q_Tip";
-    public static string S_Rank = "S_Rank";
-    public static string S_RankBK = "S_RankBK";
-    public static string S_RankPanel = "S_RankPanel";
-    public static string S_Close = "S_Close";
-    public static string S_CloseLab = "S_CloseLab";
-    public static string S_ScrollRect = "S_ScrollRect";
-    public static string S_Grid = "S_Grid";
-    public static string S_Tit = "S_Tit";
-    public static string Z_PlazaRoomList = "Z_PlazaRoomList";
-    public static string Z_BK = "Z_BK";
-    public static string Z_Panel = "Z_Panel";
-    public static string Z_Create = "Z_Create";
-    public static string Z_CreateLab = "Z_CreateLab";
-    public static string Z_Close = "Z_Close";
-    public static string Z_CloseLab = "Z_CloseLab";
-    public static string Z_ScrollRect = "Z_ScrollRect";
-    public static string Z_Frame = "Z_Frame";
-    public static string Z_Grid = "Z_Grid";
-    public static string Z_Tit = "Z_Tit";
-    public static string Z_Info = "Z_Info";
-    public static string Z_Info0 = "Z_Info0";
-    public static string Z_InfoLab0 = "Z_InfoLab0";
-    public static string Z_Info1 = "Z_Info1";
-    public static string Z_InfoLab1 = "Z_InfoLab1";
-    public static string Z_Info2 = "Z_Info2";
-    public static string Z_InfoLab2 = "Z_InfoLab2";
-    public static string Z_Info3 = "Z_Info3";
-    public static string Z_InfoLab3 = "Z_InfoLab3";
-    public static string Z_Info4 = "Z_Info4";
-    public static string Z_InfoLab4 = "Z_InfoLab4";
-    public static string Z_Info5 = "Z_Info5";
-    public static string Z_InfoImg50 = "Z_InfoImg50";
-    public static string Z_InfoImg51 = "Z_InfoImg51";
-    public static string Z_InfoLab5 = "Z_InfoLab5";
-    public static string Z_Tip = "Z_Tip";
-    public static string AA_CreatePlazaRoom = "AA_CreatePlazaRoom";
-    public static string AA_Panel = "AA_Panel";
-    public static string AA_Lab = "AA_Lab";
-    public static string AA_InputField = "AA_InputField";
-    public static string AA_InputFieldLab = "AA_InputFieldLab";
-    public static string AA_Close = "AA_Close";
-    public static string AA_Desc = "AA_Desc";
-    public static string AA_DestImagePlus = "AA_DestImagePlus";
-    public static string AA_Btn = "AA_Btn";
-    public static string AA_BtnLab = "AA_BtnLab";
-    public static string AAa_Slider = "AAa_Slider";
-    public static string AAa_Tit = "AAa_Tit";
-    public static string AAa_ValueLab = "AAa_ValueLab";
-    public static string AAa_Background = "AAa_Background";
-    public static string AAa_FillArea = "AAa_FillArea";
-    public static string AAa_Fill = "AAa_Fill";
-    public static string AAa_HandleSlideArea = "AAa_HandleSlideArea";
-    public static string AAa_Handle = "AAa_Handle";
-    public static string AAb_Slider = "AAb_Slider";
-    public static string AAb_Tit = "AAb_Tit";
-    public static string AAb_ValueLab = "AAb_ValueLab";
-    public static string AAb_Background = "AAb_Background";
-    public static string AAb_FillArea = "AAb_FillArea";
-    public static string AAb_Fill = "AAb_Fill";
-    public static string AAb_HandleSlideArea = "AAb_HandleSlideArea";
-    public static string AAb_Handle = "AAb_Handle";
-    public static string AA_Tip = "AA_Tip";
-    public static string W_HudParent = "W_HudParent";
-    public static string I_BlackMask = "I_BlackMask";
-    public static string I_Lab = "I_Lab";
-    public static string X_PlazaRoom = "X_PlazaRoom";
-    public static string X_Coin = "X_Coin";
-    public static string X_CoinBK = "X_CoinBK";
-    public static string X_CoinText = "X_CoinText";
-    public static string X_Diamond = "X_Diamond";
-    public static string X_DiamondBK = "X_DiamondBK";
-    public static string X_DiamondText = "X_DiamondText";
-    public static string X_InfoParent = "X_InfoParent";
-    public static string X_InfoBK = "X_InfoBK";
-    public static string X_InfoMask = "X_InfoMask";
-    public static string X_Info = "X_Info";
-    public static string X_CloseInfo = "X_CloseInfo";
-    public static string X_CurrentInfo = "X_CurrentInfo";
-    public static string X_CurrentInfoLab = "X_CurrentInfoLab";
-    public static string X_CurrentInfoImagePlus = "X_CurrentInfoImagePlus";
-    public static string X_OpenInfo = "X_OpenInfo";
-    public static string X_Quit = "X_Quit";
-    public static string X_InputField = "X_InputField";
-    public static string X_InputFieldLab = "X_InputFieldLab";
-    public static string X_SendPublicMessage = "X_SendPublicMessage";
-    public static string X_Expression = "X_Expression";
-    public static string X_Mask = "X_Mask";
-    public static string X_GridBK = "X_GridBK";
-    public static string X_Grid = "X_Grid";
-    public static string X_HappyFace = "X_HappyFace";
-    public static string X_HopeFace = "X_HopeFace";
-    public static string X_SurpriseFace = "X_SurpriseFace";
-    public static string X_ChagrinFace = "X_ChagrinFace";
-    public static string X_BlueFace = "X_BlueFace";
-    public static string X_OgleFace = "X_OgleFace";
-    public static string X_SweatFace = "X_SweatFace";
-    public static string X_CryFace = "X_CryFace";
-    public static string X_CreateChest = "X_CreateChest";
-    public static string X_MemberButton = "X_MemberButton";
-    public static string X_MemberIcon = "X_MemberIcon";
-    public static string Y_Chest = "Y_Chest";
-    public static string Y_BK = "Y_BK";
-    public static string Y_Close = "Y_Close";
-    public static string Ya_GetAward = "Ya_GetAward";
-    public static string Ya_Btn = "Ya_Btn";
-    public static string Ya_BtnLab = "Ya_BtnLab";
-    public static string Ya_Rotate = "Ya_Rotate";
-    public static string Ya_Icon = "Ya_Icon";
-    public static string Ya_Desc = "Ya_Desc";
-    public static string Y_Guess = "Y_Guess";
-    public static string Y_RewardItem = "Y_RewardItem";
-    public static string Y_RewardIcon = "Y_RewardIcon";
-    public static string Y_RewardLab = "Y_RewardLab";
-    public static string Y_Btn = "Y_Btn";
-    public static string Y_BtnLab = "Y_BtnLab";
-    public static string Y_Desc = "Y_Desc";
-    public static string Y_Tit = "Y_Tit";
-    public static string Y_InputField = "Y_InputField";
-    public static string Y_InputFieldLab = "Y_InputFieldLab";
-    public static string Yb_CreateChest = "Yb_CreateChest";
-    public static string Yb_Tit = "Yb_Tit";
-    public static string Yb_Icon = "Yb_Icon";
-    public static string Yb_InputField = "Yb_InputField";
-    public static string Yb_InputFieldLab = "Yb_InputFieldLab";
-    public static string Yb_Slider = "Yb_Slider";
-    public static string Yb_SliderTit = "Yb_SliderTit";
-    public static string Yb_SliderValueLab = "Yb_SliderValueLab";
-    public static string Yb_Background = "Yb_Background";
-    public static string Yb_FillArea = "Yb_FillArea";
-    public static string Yb_Fill = "Yb_Fill";
-    public static string Yb_HandleSlideArea = "Yb_HandleSlideArea";
-    public static string Yb_Handle = "Yb_Handle";
-    public static string Yb_Desc = "Yb_Desc";
-    public static string Yb_CostLab = "Yb_CostLab";
-    public static string Yb_CostImagePlus = "Yb_CostImagePlus";
-    public static string Yb_Btn = "Yb_Btn";
-    public static string Yb_BtnLab = "Yb_BtnLab";
-    public static string Yb_Toggle0 = "Yb_Toggle0";
-    public static string Yb_ToggleIcon0 = "Yb_ToggleIcon0";
-    public static string Yb_ToggleLab0 = "Yb_ToggleLab0";
-    public static string Yb_Toggle1 = "Yb_Toggle1";
-    public static string Yb_ToggleIcon1 = "Yb_ToggleIcon1";
-    public static string Yb_ToggleLab1 = "Yb_ToggleLab1";
-    public static string Yb_Toggle2 = "Yb_Toggle2";
-    public static string Yb_ToggleIcon2 = "Yb_ToggleIcon2";
-    public static string Yb_ToggleLab2 = "Yb_ToggleLab2";
-    public static string Y_Tip = "Y_Tip";
-    public static string O_Toast = "O_Toast";
-    public static string O_Pos = "O_Pos";
-    public static string O_Lab = "O_Lab";
-    public static string V_BlackMask = "V_BlackMask";
-    public static string T_NickName = "T_NickName";
-    public static string T_NickNameBK = "T_NickNameBK";
-    public static string T_NickNameCard = "T_NickNameCard";
-    public static string T_CloseParent = "T_CloseParent";
-    public static string T_Close = "T_Close";
-    public static string T_Confirm = "T_Confirm";
-    public static string T_ConfirmLab = "T_ConfirmLab";
-    public static string T_Tit = "T_Tit";
-    public static string T_InputField = "T_InputField";
-    public static string T_InputLab = "T_InputLab";
-    public static string T_Random = "T_Random";
-    public static string T_CostTxt = "T_CostTxt";
-    public static string T_CostImagePlus = "T_CostImagePlus";
-    public static string AC_EnterMinigamePanelMask = "AC_EnterMinigamePanelMask";
-    public static string AC_EnterMinigamePanel = "AC_EnterMinigamePanel";
-    public static string AC_Title = "AC_Title";
-    public static string AC_CloseButton = "AC_CloseButton";
-    public static string AC_ConfirmButton = "AC_ConfirmButton";
-    public static string AC_ConfirmButtonTitle = "AC_ConfirmButtonTitle";
-    public static string AC_ChangeButton = "AC_ChangeButton";
-    public static string AC_ChangeButtonTitle = "AC_ChangeButtonTitle";
-    public static string AC_CostText = "AC_CostText";
-    public static string AC_CostTextImagePlus = "AC_CostTextImagePlus";
-    public static string AC_Mask = "AC_Mask";
-    public static string AC_ScrollPos0 = "AC_ScrollPos0";
-    public static string AC_ScrollPos1 = "AC_ScrollPos1";
-    public static string AC_ScrollPos2 = "AC_ScrollPos2";
-    public static string AC_GamaTypeText0 = "AC_GamaTypeText0";
-    public static string AC_GamaTypeText1 = "AC_GamaTypeText1";
-    public static string AE_PlazaroomMemberPanelParent = "AE_PlazaroomMemberPanelParent";
-    public static string AE_PlazaroomMemberPanelMask = "AE_PlazaroomMemberPanelMask";
-    public static string AE_PlazaroomMemberPanel = "AE_PlazaroomMemberPanel";
-    public static string AE_Frame = "AE_Frame";
-    public static string AE_NicknameTitle = "AE_NicknameTitle";
-    public static string AE_ContentTitle = "AE_ContentTitle";
-    public static string AE_FriendFilterButton = "AE_FriendFilterButton";
-    public static string AE_FriendFilterIcon = "AE_FriendFilterIcon";
-    public static string AE_FriendFilterTitle = "AE_FriendFilterTitle";
-    public static string AE_PanelTitle = "AE_PanelTitle";
-    public static string AE_CloseButton = "AE_CloseButton";
-    public static string AE_CloseButtonTitle = "AE_CloseButtonTitle";
-    public static string AE_ScrollRect = "AE_ScrollRect";
-    public static string AE_Grid = "AE_Grid";
-    public static string AE_FriendListButton = "AE_FriendListButton";
-    public static string AE_FriendListImage = "AE_FriendListImage";
-    public static string AD_CDMinigameMask = "AD_CDMinigameMask";
-    public static string AD_CDMinigamePanel = "AD_CDMinigamePanel";
-    public static string AD_Title = "AD_Title";
-    public static string AD_CoinToggle = "AD_CoinToggle";
-    public static string AD_CoinTick = "AD_CoinTick";
-    public static string AD_CoinCostText = "AD_CoinCostText";
-    public static string AD_CoinCostTextImagePlus = "AD_CoinCostTextImagePlus";
-    public static string AD_CoinDescription = "AD_CoinDescription";
-    public static string AD_DiamondToggle = "AD_DiamondToggle";
-    public static string AD_DiamondTick = "AD_DiamondTick";
-    public static string AD_DiamondDescription = "AD_DiamondDescription";
-    public static string AD_DiamondCostText = "AD_DiamondCostText";
-    public static string AD_DiamondCostTextImagePlus = "AD_DiamondCostTextImagePlus";
-    public static string AD_CloseButton = "AD_CloseButton";
-    public static string AD_ConfirmButton = "AD_ConfirmButton";
-    public static string AD_ConfirmButtonTitle = "AD_ConfirmButtonTitle";
-    public static string AF_FriendPanelParent = "AF_FriendPanelParent";
-    public static string AF_FriendPanelMask = "AF_FriendPanelMask";
-    public static string AF_FriendPanel = "AF_FriendPanel";
-    public static string AF_Frame = "AF_Frame";
-    public static string AF_NicknameTitle = "AF_NicknameTitle";
-    public static string AF_ContentTitle = "AF_ContentTitle";
-    public static string AF_NewMessageFlag = "AF_NewMessageFlag";
-    public static string AF_NewMessageFlagText = "AF_NewMessageFlagText";
-    public static string AF_ApplicantButton = "AF_ApplicantButton";
-    public static string AF_NewApplicantFlagImage = "AF_NewApplicantFlagImage";
-    public static string AF_ApplicantIcon = "AF_ApplicantIcon";
-    public static string AF_ApplicantTitle = "AF_ApplicantTitle";
-    public static string AF_PanelTitle = "AF_PanelTitle";
-    public static string AF_FriendScrollRect = "AF_FriendScrollRect";
-    public static string AF_FriendGrid = "AF_FriendGrid";
-    public static string AF_ApplicantScrollRect = "AF_ApplicantScrollRect";
-    public static string AF_ApplicantGrid = "AF_ApplicantGrid";
-    public static string AF_HorizontalGroup = "AF_HorizontalGroup";
-    public static string AF_AcceptAllButton = "AF_AcceptAllButton";
-    public static string AF_AcceptAllButtonTitle = "AF_AcceptAllButtonTitle";
-    public static string AF_AddFriendButton = "AF_AddFriendButton";
-    public static string AF_AddFriendTitle = "AF_AddFriendTitle";
-    public static string AF_CloseButton = "AF_CloseButton";
-    public static string AF_CloseButtonTitle = "AF_CloseButtonTitle";
-    public static string AF_FriendAmountText = "AF_FriendAmountText";
-    public static string AG_AddFriendPanelMask = "AG_AddFriendPanelMask";
-    public static string AG_AddFriendPanel = "AG_AddFriendPanel";
-    public static string AG_Title = "AG_Title";
-    public static string AG_InputField = "AG_InputField";
-    public static string AG_InputFieldText = "AG_InputFieldText";
-    public static string AG_SearchButton = "AG_SearchButton";
-    public static string AG_SearchButtonTitle = "AG_SearchButtonTitle";
-    public static string AG_TipText = "AG_TipText";
-    public static string AG_NicknameText = "AG_NicknameText";
-    public static string AG_ChangeButton = "AG_ChangeButton";
-    public static string AG_ChangeButtonUnderline = "AG_ChangeButtonUnderline";
-    public static string AG_CloseButton = "AG_CloseButton";
-    public static string AG_ApplyButton = "AG_ApplyButton";
-    public static string AG_ApplyButtonTitle = "AG_ApplyButtonTitle";
-    public static string AH_MessagePanelParent = "AH_MessagePanelParent";
-    public static string AH_MessagePanelMask = "AH_MessagePanelMask";
-    public static string AH_MessagePanel = "AH_MessagePanel";
-    public static string AH_Frame = "AH_Frame";
-    public static string AH_NicknameTitle = "AH_NicknameTitle";
-    public static string AH_ContentTitle = "AH_ContentTitle";
-    public static string AH_TimeTitle = "AH_TimeTitle";
-    public static string AH_PanelTitle = "AH_PanelTitle";
-    public static string AH_CloseButton = "AH_CloseButton";
-    public static string AH_CloseButtonTitle = "AH_CloseButtonTitle";
-    public static string AH_ScrollRect = "AH_ScrollRect";
-    public static string AH_Grid = "AH_Grid";
-    public static string AH_InputFieldParent = "AH_InputFieldParent";
-    public static string AH_InputField = "AH_InputField";
-    public static string AH_PlaceholderTitle = "AH_PlaceholderTitle";
-    public static string AH_InputText = "AH_InputText";
-    public static string AH_SendMessageButton = "AH_SendMessageButton";
-    public static string AH_SendMessageButtonTitle = "AH_SendMessageButtonTitle";
-    public static string AH_LoadingTitle = "AH_LoadingTitle";
-    public static string B_SignIn0 = "B_SignIn0";
-    public static string B_SignIn = "B_SignIn";
-    public static string Bb_SignIn = "Bb_SignIn";
-    public static string Bb_Get = "Bb_Get";
-    public static string Bb_GetLab = "Bb_GetLab";
-    public static string Bb_Title = "Bb_Title";
-    public static string Bb_Grid = "Bb_Grid";
-    public static string Bb_Rotate = "Bb_Rotate";
-    public static string Bb_Info = "Bb_Info";
-    public static string Bb_IconB = "Bb_IconB";
-    public static string Bb_InfoLabB = "Bb_InfoLabB";
-    public static string Bb_IconA = "Bb_IconA";
-    public static string Bb_IconA0 = "Bb_IconA0";
-    public static string Bb_InfoLabA = "Bb_InfoLabA";
-    public static string Bb_Confirm = "Bb_Confirm";
-    public static string Bb_ConfirmLab = "Bb_ConfirmLab";
-    public static string Ba_Notice0 = "Ba_Notice0";
-    public static string Ba_Notice = "Ba_Notice";
-    public static string Ba_Confirm = "Ba_Confirm";
-    public static string Ba_ConfirmLab = "Ba_ConfirmLab";
-    public static string Ba_Lab = "Ba_Lab";
-    public static string Ba_Lab2 = "Ba_Lab2";
-    public static string Ba_Group = "Ba_Group";
-    public static string Ba_Icon = "Ba_Icon";
-    public static string Ba_IconLab = "Ba_IconLab";
-    public static string Bc_Lottery = "Bc_Lottery";
-    public static string Bc_LotteryItem1 = "Bc_LotteryItem1";
-    public static string Bc_LotteryBK11 = "Bc_LotteryBK11";
-    public static string Bc_LotteryBK12 = "Bc_LotteryBK12";
-    public static string Bc_LotteryBtn1 = "Bc_LotteryBtn1";
-    public static string Bc_LotteryIcon11 = "Bc_LotteryIcon11";
-    public static string Bc_LotteryIcon12 = "Bc_LotteryIcon12";
-    public static string Bc_LotteryIcon13 = "Bc_LotteryIcon13";
-    public static string Bc_LotteryLab1 = "Bc_LotteryLab1";
-    public static string Bc_LotteryBack1 = "Bc_LotteryBack1";
-    public static string Bc_LotteryItem2 = "Bc_LotteryItem2";
-    public static string Bc_LotteryBK21 = "Bc_LotteryBK21";
-    public static string Bc_LotteryBK22 = "Bc_LotteryBK22";
-    public static string Bc_LotteryBtn2 = "Bc_LotteryBtn2";
-    public static string Bc_LotteryIcon21 = "Bc_LotteryIcon21";
-    public static string Bc_LotteryIcon22 = "Bc_LotteryIcon22";
-    public static string Bc_LotteryIcon23 = "Bc_LotteryIcon23";
-    public static string Bc_LotteryLab2 = "Bc_LotteryLab2";
-    public static string Bc_LotteryBack2 = "Bc_LotteryBack2";
-    public static string Bc_LotteryItem3 = "Bc_LotteryItem3";
-    public static string Bc_LotteryBK31 = "Bc_LotteryBK31";
-    public static string Bc_LotteryBK32 = "Bc_LotteryBK32";
-    public static string Bc_LotteryBtn3 = "Bc_LotteryBtn3";
-    public static string Bc_LotteryIcon31 = "Bc_LotteryIcon31";
-    public static string Bc_LotteryIcon32 = "Bc_LotteryIcon32";
-    public static string Bc_LotteryIcon33 = "Bc_LotteryIcon33";
-    public static string Bc_LotteryLab3 = "Bc_LotteryLab3";
-    public static string Bc_LotteryBack3 = "Bc_LotteryBack3";
-    public static string Bc_Lab = "Bc_Lab";
-    public static string Bc_Confirm = "Bc_Confirm";
-    public static string Bc_ConfirmLab = "Bc_ConfirmLab";
-    public static string Bd_Mail = "Bd_Mail";
-    public static string Bd_Mail0 = "Bd_Mail0";
-    public static string Bd_Text = "Bd_Text";
-    public static string Bd_Get = "Bd_Get";
-    public static string Bd_GetLab = "Bd_GetLab";
-    public static string Bd_Title = "Bd_Title";
-    public static string Bd_ScrollRect = "Bd_ScrollRect";
-    public static string Bd_Grid = "Bd_Grid";
-    public static string N_Tutorial = "N_Tutorial";
-    public static string N_Mask = "N_Mask";
-    public static string N_Arrow = "N_Arrow";
-    public static string N_ArrowIcon = "N_ArrowIcon";
-    public static string N_LabBK = "N_LabBK";
-    public static string N_Lab = "N_Lab";
-    public static string N_Button = "N_Button";
-    public static string N_Confirm = "N_Confirm";
-    public static string N_ConfirmLab = "N_ConfirmLab";
-    public static string N_FormerPlayerButton = "N_FormerPlayerButton";
-    public static string N_FormerPlayerButtonText = "N_FormerPlayerButtonText";
-    public static string AB_RechargeGiftPanel = "AB_RechargeGiftPanel";
-    public static string AB_PanelBK = "AB_PanelBK";
-    public static string AB_Confirm = "AB_Confirm";
-    public static string AB_ConfirmText = "AB_ConfirmText";
-    public static string AB_RotateIcon = "AB_RotateIcon";
-    public static string AB_Title = "AB_Title";
-    public static string AB_Description = "AB_Description";
-    public static string AB_AwardImages = "AB_AwardImages";
-    public static string AB_AwardImage0 = "AB_AwardImage0";
-    public static string AB_AwardImage1 = "AB_AwardImage1";
-    public static string AB_AwardImage2 = "AB_AwardImage2";
-    public static string AB_FlowerAwardImage = "AB_FlowerAwardImage";
-    public static string K_Bubble = "K_Bubble";
-    public static string K_Bubble0 = "K_Bubble0";
-    public static string K_Tit = "K_Tit";
-    public static string K_VGroup = "K_VGroup";
-    public static string K_Icon = "K_Icon";
-    public static string K_Lab = "K_Lab";
-    public static string K_Lab2 = "K_Lab2";
-    public static string K_ImagePlus2 = "K_ImagePlus2";
-    public static string K_Lab1 = "K_Lab1";
-    public static string K_ImagePlus1 = "K_ImagePlus1";
-    public static string K_Lab3 = "K_Lab3";
-    public static string K_LinkButton = "K_LinkButton";
-    public static string K_NotifyLab = "K_NotifyLab";
-    public static string K_NotifyImagePlus = "K_NotifyImagePlus";
-    public static string K_HGroup = "K_HGroup";
-    public static string K_Confirm = "K_Confirm";
-    public static string K_ConfirmLab = "K_ConfirmLab";
-    public static string K_Cancel = "K_Cancel";
-    public static string K_CancelLab = "K_CancelLab";
-    public static string AI_AlertPanel = "AI_AlertPanel";
-    public static string AI_BK = "AI_BK";
-    public static string AI_Tit = "AI_Tit";
-    public static string AI_Grid = "AI_Grid";
-    public static string AI_HGroup = "AI_HGroup";
-    public static string AI_Confirm = "AI_Confirm";
-    public static string AI_ConfirmLab = "AI_ConfirmLab";
-    public static string AI_Cancel = "AI_Cancel";
-    public static string AI_CancelLab = "AI_CancelLab";
-    public static string A_HudParent = "A_HudParent";
-    public static string U_LoadingPanel = "U_LoadingPanel";
-    public static string U_Parent = "U_Parent";
-    public static string U_DebugLab = "U_DebugLab";
-    public static string U_VGroup = "U_VGroup";
-    public static string U_WarningTitle = "U_WarningTitle";
-    public static string U_WarningText = "U_WarningText";
-    public static string U_Group = "U_Group";
-    public static string U_Icon = "U_Icon";
-    public static string U_Lab = "U_Lab";
-    public static string AJ_UpdatePanel = "AJ_UpdatePanel";
-    public static string AJ_bg = "AJ_bg";
-    public static string AJ_Title = "AJ_Title";
-    public static string AJ_Content = "AJ_Content";
-    public static string AJ_Progress = "AJ_Progress";
-    //EndMark-Used by LabelUtility-Do not remove
+using System.Collections;
+using System.Collections.Generic;
+
+using UnityEngine;
+
+public class CanvasLabel
+{
+    //StartMark-Used by LabelUtility-Do not remove
+    public static string Canvas = "Canvas";
+    public static string E_Debug = "E_Debug";
+    public static string E_Group = "E_Group";
+    public static string E_Scrr = "E_Scrr";
+    public static string E_Mask = "E_Mask";
+    public static string E_ScrrLab = "E_ScrrLab";
+    public static string E_CentralBtn = "E_CentralBtn";
+    public static string E_CentralLab = "E_CentralLab";
+    public static string E_ShowBtn = "E_ShowBtn";
+    public static string E_ShowLab = "E_ShowLab";
+    public static string Ea_Central = "Ea_Central";
+    public static string Ea_Reset = "Ea_Reset";
+    public static string Ea_ResetLab = "Ea_ResetLab";
+    public static string Ea_Send = "Ea_Send";
+    public static string Ea_SendLab = "Ea_SendLab";
+    public static string Ea_Free = "Ea_Free";
+    public static string Ea_FreeLab = "Ea_FreeLab";
+    public static string Ea_Unlock = "Ea_Unlock";
+    public static string Ea_UnlockLab = "Ea_UnlockLab";
+    public static string Ea_Lottery = "Ea_Lottery";
+    public static string Ea_LotteryLab = "Ea_LotteryLab";
+    public static string Ea_Close = "Ea_Close";
+    public static string Ea_CloseLab = "Ea_CloseLab";
+    public static string Ea_Cool = "Ea_Cool";
+    public static string Ea_CoolLab = "Ea_CoolLab";
+    public static string Ea_Score = "Ea_Score";
+    public static string Ea_ScoreLab = "Ea_ScoreLab";
+    public static string Ea_End = "Ea_End";
+    public static string Ea_EndLab = "Ea_EndLab";
+    public static string Ea_IncreaseFR = "Ea_IncreaseFR";
+    public static string Ea_IncreaseLab = "Ea_IncreaseLab";
+    public static string Ea_DecreaseFR = "Ea_DecreaseFR";
+    public static string Ea_DecreaseLab = "Ea_DecreaseLab";
+    public static string C_Main = "C_Main";
+    public static string C_Main2 = "C_Main2";
+    public static string C_Group2 = "C_Group2";
+    public static string C_MiniGame = "C_MiniGame";
+    public static string C_MiniArrow0 = "C_MiniArrow0";
+    public static string C_MiniArrow1 = "C_MiniArrow1";
+    public static string C_MiniGameLab = "C_MiniGameLab";
+    public static string C_Group0 = "C_Group0";
+    public static string C_Group = "C_Group";
+    public static string C_Tip = "C_Tip";
+    public static string C_TipLab = "C_TipLab";
+    public static string C_RightSidePanelPosition = "C_RightSidePanelPosition";
+    public static string C_RightSidePanel = "C_RightSidePanel";
+    public static string C_OpenCloseRightSidePanelButtons = "C_OpenCloseRightSidePanelButtons";
+    public static string C_CloseSidePanelButton = "C_CloseSidePanelButton";
+    public static string C_OpenSidePanelButton = "C_OpenSidePanelButton";
+    public static string C_RightSidePanelGroup = "C_RightSidePanelGroup";
+    public static string C_Group1 = "C_Group1";
+    public static string C_Manage = "C_Manage";
+    public static string C_LevelBK = "C_LevelBK";
+    public static string C_LevelText = "C_LevelText";
+    public static string C_ManageArrow0 = "C_ManageArrow0";
+    public static string C_Achieve = "C_Achieve";
+    public static string C_Setting = "C_Setting";
+    public static string C_DressRoom = "C_DressRoom";
+    public static string C_DressRoomArrow = "C_DressRoomArrow";
+    public static string C_DressRoomLabPos = "C_DressRoomLabPos";
+    public static string C_Group4 = "C_Group4";
+    public static string C_FashionShowButtonParent = "C_FashionShowButtonParent";
+    public static string C_FashionShowButton = "C_FashionShowButton";
+    public static string C_FashionShowArrow = "C_FashionShowArrow";
+    public static string C_AddFriendButton = "C_AddFriendButton";
+    public static string C_EnterPlazaRoom0 = "C_EnterPlazaRoom0";
+    public static string C_EnterPlazaRoom = "C_EnterPlazaRoom";
+    public static string C_PlazaRoomArrow0 = "C_PlazaRoomArrow0";
+    public static string C_HeartIcon = "C_HeartIcon";
+    public static string C_WelcomeIcon = "C_WelcomeIcon";
+    public static string C_Return = "C_Return";
+    public static string C_ReturnArrow0 = "C_ReturnArrow0";
+    public static string C_Visit = "C_Visit";
+    public static string C_VisitLab = "C_VisitLab";
+    public static string C_CostLab = "C_CostLab";
+    public static string C_VisitImagePlus = "C_VisitImagePlus";
+    public static string C_VisitArrow0 = "C_VisitArrow0";
+    public static string C_Coin = "C_Coin";
+    public static string C_Pos = "C_Pos";
+    public static string C_CoinBk = "C_CoinBk";
+    public static string C_CoinLab = "C_CoinLab";
+    public static string C_IncomeLab = "C_IncomeLab";
+    public static string C_Garden = "C_Garden";
+    public static string C_GardenLab = "C_GardenLab";
+    public static string C_LeftSidePanel = "C_LeftSidePanel";
+    public static string C_LeftSidePanelHidePos = "C_LeftSidePanelHidePos";
+    public static string C_Group3 = "C_Group3";
+    public static string C_NicknameParent = "C_NicknameParent";
+    public static string C_NickNameBK = "C_NickNameBK";
+    public static string C_NickNameLab = "C_NickNameLab";
+    public static string C_SocialGroup = "C_SocialGroup";
+    public static string C_CommentParent = "C_CommentParent";
+    public static string C_Comment = "C_Comment";
+    public static string C_Praise = "C_Praise";
+    public static string C_PraiseText = "C_PraiseText";
+    public static string C_NotifyParent = "C_NotifyParent";
+    public static string C_Notify = "C_Notify";
+    public static string C_FriendButtonParent = "C_FriendButtonParent";
+    public static string C_FriendButton = "C_FriendButton";
+    public static string C_NewMessageFlag = "C_NewMessageFlag";
+    public static string C_NewMessageFlagText = "C_NewMessageFlagText";
+    public static string C_RankRarent = "C_RankRarent";
+    public static string C_Rank = "C_Rank";
+    public static string C_OpenCloseLeftSidePanelButtons = "C_OpenCloseLeftSidePanelButtons";
+    public static string C_CloseLeftSidePanelButton = "C_CloseLeftSidePanelButton";
+    public static string C_OpenLeftSidePanelButton = "C_OpenLeftSidePanelButton";
+    public static string C_Info = "C_Info";
+    public static string C_WifiButton = "C_WifiButton";
+    public static string L_Setting = "L_Setting";
+    public static string L_Setting0 = "L_Setting0";
+    public static string L_Tit = "L_Tit";
+    public static string L_User = "L_User";
+    public static string L_UserTit = "L_UserTit";
+    public static string L_UserLab = "L_UserLab";
+    public static string L_ChangeBtn = "L_ChangeBtn";
+    public static string L_ChangeLab = "L_ChangeLab";
+    public static string L_ResetBtn = "L_ResetBtn";
+    public static string L_ResetLab = "L_ResetLab";
+    public static string L_Audio = "L_Audio";
+    public static string L_AudioTit = "L_AudioTit";
+    public static string L_MusicBtn = "L_MusicBtn";
+    public static string L_MusicBk = "L_MusicBk";
+    public static string L_MusicOn = "L_MusicOn";
+    public static string L_MusicOnLab = "L_MusicOnLab";
+    public static string L_MusicOff = "L_MusicOff";
+    public static string L_MusicOffLab = "L_MusicOffLab";
+    public static string L_MusicLab = "L_MusicLab";
+    public static string L_AudioBtn = "L_AudioBtn";
+    public static string L_AudioBk = "L_AudioBk";
+    public static string L_AudioOn = "L_AudioOn";
+    public static string L_AudioOnLab = "L_AudioOnLab";
+    public static string L_AudioOff = "L_AudioOff";
+    public static string L_AudioOffLab = "L_AudioOffLab";
+    public static string L_AudioLab = "L_AudioLab";
+    public static string L_Confirm = "L_Confirm";
+    public static string L_ConfirmLab = "L_ConfirmLab";
+    public static string L_Language = "L_Language";
+    public static string L_LanguageButtonLayout = "L_LanguageButtonLayout";
+    public static string L_English = "L_English";
+    public static string L_EnglishLab = "L_EnglishLab";
+    public static string L_SimChi = "L_SimChi";
+    public static string L_SimChiLab = "L_SimChiLab";
+    public static string L_TraChi = "L_TraChi";
+    public static string L_TraChiLab = "L_TraChiLab";
+    public static string L_LanguageTit = "L_LanguageTit";
+    public static string L_Support = "L_Support";
+    public static string L_SupportTit = "L_SupportTit";
+    public static string L_ReportBtn = "L_ReportBtn";
+    public static string L_ReportLab = "L_ReportLab";
+    public static string L_ShareBtn = "L_ShareBtn";
+    public static string L_ShareLab = "L_ShareLab";
+    public static string L_CreditsBtn = "L_CreditsBtn";
+    public static string L_CreditsLab = "L_CreditsLab";
+    public static string Lb_Info = "Lb_Info";
+    public static string Lb_Info0 = "Lb_Info0";
+    public static string Lb_Tit = "Lb_Tit";
+    public static string Lb_Cancel = "Lb_Cancel";
+    public static string Lb_CancelLab = "Lb_CancelLab";
+    public static string Lb_Confirm = "Lb_Confirm";
+    public static string Lb_ConfirmLab = "Lb_ConfirmLab";
+    public static string Lb_InputField0 = "Lb_InputField0";
+    public static string Lb_InputLab0 = "Lb_InputLab0";
+    public static string Lb_Placeholder0 = "Lb_Placeholder0";
+    public static string Lb_InputField = "Lb_InputField";
+    public static string Lb_InputLab = "Lb_InputLab";
+    public static string Lb_Placeholder = "Lb_Placeholder";
+    public static string Lc_CreditsMask = "Lc_CreditsMask";
+    public static string Lc_Pos = "Lc_Pos";
+    public static string Lc_CreditsContent = "Lc_CreditsContent";
+    public static string Lc_CreditsIcon = "Lc_CreditsIcon";
+    public static string La_Info = "La_Info";
+    public static string La_Info0 = "La_Info0";
+    public static string La_Tit = "La_Tit";
+    public static string La_Lab = "La_Lab";
+    public static string La_Cancel = "La_Cancel";
+    public static string La_CancelLab = "La_CancelLab";
+    public static string La_Confirm = "La_Confirm";
+    public static string La_ConfirmLab = "La_ConfirmLab";
+    public static string La_InputField = "La_InputField";
+    public static string La_InputLab = "La_InputLab";
+    public static string La_Placeholder = "La_Placeholder";
+    public static string La_Mask = "La_Mask";
+    public static string F_Manage = "F_Manage";
+    public static string F_Manage0 = "F_Manage0";
+    public static string F_Close = "F_Close";
+    public static string F_CloseExtent = "F_CloseExtent";
+    public static string F_Tab = "F_Tab";
+    public static string Fd_Elf = "Fd_Elf";
+    public static string Fd_Scrr = "Fd_Scrr";
+    public static string Fd_Grid = "Fd_Grid";
+    public static string Fc_Store = "Fc_Store";
+    public static string Fc_Scrr = "Fc_Scrr";
+    public static string Fc_Grid = "Fc_Grid";
+    public static string Fb_Magic = "Fb_Magic";
+    public static string Fb_Scrr = "Fb_Scrr";
+    public static string Fb_Grid = "Fb_Grid";
+    public static string Ff_SkillBar = "Ff_SkillBar";
+    public static string F_Skill1 = "F_Skill1";
+    public static string F_Arrow0 = "F_Arrow0";
+    public static string F_SkillBk10 = "F_SkillBk10";
+    public static string F_SkillBk11 = "F_SkillBk11";
+    public static string F_SkillLab1 = "F_SkillLab1";
+    public static string F_Skill2 = "F_Skill2";
+    public static string F_SkillBk20 = "F_SkillBk20";
+    public static string F_SkillBk21 = "F_SkillBk21";
+    public static string F_SkillLab2 = "F_SkillLab2";
+    public static string F_Skill3 = "F_Skill3";
+    public static string F_SkillBk30 = "F_SkillBk30";
+    public static string F_SkillBk31 = "F_SkillBk31";
+    public static string F_SkillLab3 = "F_SkillLab3";
+    public static string F_Skill4 = "F_Skill4";
+    public static string F_SkillBk40 = "F_SkillBk40";
+    public static string F_SkillBk41 = "F_SkillBk41";
+    public static string F_SkillLab4 = "F_SkillLab4";
+    public static string Fa_Garden = "Fa_Garden";
+    public static string Fa_Scrr = "Fa_Scrr";
+    public static string Fa_Grid = "Fa_Grid";
+    public static string F_TabBtn = "F_TabBtn";
+    public static string F_Store = "F_Store";
+    public static string F_StoreIcon = "F_StoreIcon";
+    public static string F_StoreLab = "F_StoreLab";
+    public static string F_Magic = "F_Magic";
+    public static string F_MagicIcon = "F_MagicIcon";
+    public static string F_MagicLab = "F_MagicLab";
+    public static string F_Elf = "F_Elf";
+    public static string F_ElfIcon = "F_ElfIcon";
+    public static string F_ElfLab = "F_ElfLab";
+    public static string F_Garden = "F_Garden";
+    public static string F_GardenIcon = "F_GardenIcon";
+    public static string F_GardenLab = "F_GardenLab";
+    public static string F_Info = "F_Info";
+    public static string F_DataA = "F_DataA";
+    public static string F_DataB = "F_DataB";
+    public static string F_CoinLab = "F_CoinLab";
+    public static string F_DiamondLab = "F_DiamondLab";
+    public static string F_FlowerLab = "F_FlowerLab";
+    public static string F_PersonLab = "F_PersonLab";
+    public static string F_CoinPersonLab = "F_CoinPersonLab";
+    public static string F_PersonBtn = "F_PersonBtn";
+    public static string F_CoinPersonBtn = "F_CoinPersonBtn";
+    public static string F_Flower = "F_Flower";
+    public static string F_CoinLabArrow = "F_CoinLabArrow";
+    public static string F_TipBK = "F_TipBK";
+    public static string F_Tip = "F_Tip";
+    public static string F_TipBtn = "F_TipBtn";
+    public static string F_PosTra = "F_PosTra";
+    public static string Fe_Info = "Fe_Info";
+    public static string Fe_Info0 = "Fe_Info0";
+    public static string Fe_Tit = "Fe_Tit";
+    public static string Fe_Icon = "Fe_Icon";
+    public static string Fe_Lab0 = "Fe_Lab0";
+    public static string Fe_ImagePlus0 = "Fe_ImagePlus0";
+    public static string Fe_Lab1 = "Fe_Lab1";
+    public static string Fe_ImagePlus1 = "Fe_ImagePlus1";
+    public static string Fe_Btn = "Fe_Btn";
+    public static string Fe_BtnLab = "Fe_BtnLab";
+    public static string Fe_ImagePlus = "Fe_ImagePlus";
+    public static string Fe_Arrow0 = "Fe_Arrow0";
+    public static string Fe_Arrow1 = "Fe_Arrow1";
+    public static string Fe_Close = "Fe_Close";
+    public static string Fg_Reconnect = "Fg_Reconnect";
+    public static string Fg_Reconnect0 = "Fg_Reconnect0";
+    public static string Fg_Tit = "Fg_Tit";
+    public static string Fg_Btn = "Fg_Btn";
+    public static string Fg_BtnLab = "Fg_BtnLab";
+    public static string Fg_Lab = "Fg_Lab";
+    public static string Fg_Close = "Fg_Close";
+    public static string AK_PayCard = "AK_PayCard";
+    public static string AK_PayCard0 = "AK_PayCard0";
+    public static string AK_Desc = "AK_Desc";
+    public static string AK_Close = "AK_Close";
+    public static string AK_Buttons = "AK_Buttons";
+    public static string AK_Alipay = "AK_Alipay";
+    public static string AK_WXPay = "AK_WXPay";
+    public static string D_MiniGame = "D_MiniGame";
+    public static string D_HudParent = "D_HudParent";
+    public static string D_Quit = "D_Quit";
+    public static string D_PrepareLab = "D_PrepareLab";
+    public static string D_Operate1 = "D_Operate1";
+    public static string D_PrepareLayout1 = "D_PrepareLayout1";
+    public static string D_Status1 = "D_Status1";
+    public static string D_Rip1 = "D_Rip1";
+    public static string D_Rip2 = "D_Rip2";
+    public static string D_Water1 = "D_Water1";
+    public static string D_Water2 = "D_Water2";
+    public static string D_WaterArrow0 = "D_WaterArrow0";
+    public static string D_WaterArrow1 = "D_WaterArrow1";
+    public static string D_Fertilize1 = "D_Fertilize1";
+    public static string D_Fertilize2 = "D_Fertilize2";
+    public static string D_DescA = "D_DescA";
+    public static string D_Operate2 = "D_Operate2";
+    public static string D_Begin = "D_Begin";
+    public static string D_BeginLab = "D_BeginLab";
+    public static string D_BeginArrow0 = "D_BeginArrow0";
+    public static string D_BeginArrow1 = "D_BeginArrow1";
+    public static string D_PrepareLayout2 = "D_PrepareLayout2";
+    public static string D_Status2 = "D_Status2";
+    public static string D_Timer = "D_Timer";
+    public static string D_TimerLab = "D_TimerLab";
+    public static string D_TimerIcon = "D_TimerIcon";
+    public static string D_Grid = "D_Grid";
+    public static string D_ScoreLab = "D_ScoreLab";
+    public static string D_StatusLab = "D_StatusLab";
+    public static string D_DescB = "D_DescB";
+    public static string D_FlowerBtn1 = "D_FlowerBtn1";
+    public static string D_FlowerIcon1 = "D_FlowerIcon1";
+    public static string D_FlowerArrow1 = "D_FlowerArrow1";
+    public static string D_FlowerTick1 = "D_FlowerTick1";
+    public static string D_FlowerBtn2 = "D_FlowerBtn2";
+    public static string D_FlowerIcon2 = "D_FlowerIcon2";
+    public static string D_FlowerArrow2 = "D_FlowerArrow2";
+    public static string D_FlowerTick2 = "D_FlowerTick2";
+    public static string D_FlowerBtn3 = "D_FlowerBtn3";
+    public static string D_FlowerIcon3 = "D_FlowerIcon3";
+    public static string D_FlowerArrow3 = "D_FlowerArrow3";
+    public static string D_FlowerTick3 = "D_FlowerTick3";
+    public static string D_FlowerBtn4 = "D_FlowerBtn4";
+    public static string D_FlowerIcon4 = "D_FlowerIcon4";
+    public static string D_FlowerArrow4 = "D_FlowerArrow4";
+    public static string D_FlowerTick4 = "D_FlowerTick4";
+    public static string D_FlowerBtn5 = "D_FlowerBtn5";
+    public static string D_FlowerIcon5 = "D_FlowerIcon5";
+    public static string D_FlowerArrow5 = "D_FlowerArrow5";
+    public static string D_FlowerTick5 = "D_FlowerTick5";
+    public static string D_FlowerBtn6 = "D_FlowerBtn6";
+    public static string D_FlowerIcon6 = "D_FlowerIcon6";
+    public static string D_FlowerArrow6 = "D_FlowerArrow6";
+    public static string D_FlowerTick6 = "D_FlowerTick6";
+    public static string D_Mask = "D_Mask";
+    public static string D_Operate3 = "D_Operate3";
+    public static string D_PrepareLayout3 = "D_PrepareLayout3";
+    public static string D_Status3 = "D_Status3";
+    public static string D_FlowerBtn7 = "D_FlowerBtn7";
+    public static string D_FlowerIcon7 = "D_FlowerIcon7";
+    public static string D_FlowerArrow7 = "D_FlowerArrow7";
+    public static string D_FlowerBtn8 = "D_FlowerBtn8";
+    public static string D_FlowerIcon8 = "D_FlowerIcon8";
+    public static string D_FlowerArrow8 = "D_FlowerArrow8";
+    public static string D_FlowerBtn9 = "D_FlowerBtn9";
+    public static string D_FlowerIcon9 = "D_FlowerIcon9";
+    public static string D_FlowerArrow9 = "D_FlowerArrow9";
+    public static string D_DescC = "D_DescC";
+    public static string D_FindMissingGamePanel = "D_FindMissingGamePanel";
+    public static string D_FindMissingGamePrepareLayout = "D_FindMissingGamePrepareLayout";
+    public static string D_FindMissingGameStatus = "D_FindMissingGameStatus";
+    public static string D_FindMissingGameButton0 = "D_FindMissingGameButton0";
+    public static string D_FindMissingGameIcon0 = "D_FindMissingGameIcon0";
+    public static string D_FindMissingGameArrow0 = "D_FindMissingGameArrow0";
+    public static string D_FindMissingGameButton2 = "D_FindMissingGameButton2";
+    public static string D_FindMissingGameIcon2 = "D_FindMissingGameIcon2";
+    public static string D_FindMissingGameArrow2 = "D_FindMissingGameArrow2";
+    public static string D_FindMissingGameButton1 = "D_FindMissingGameButton1";
+    public static string D_FindMissingGameIcon1 = "D_FindMissingGameIcon1";
+    public static string D_FindMissingGameArrow1 = "D_FindMissingGameArrow1";
+    public static string D_FindMissingGameDesc = "D_FindMissingGameDesc";
+    public static string D_FindMissingGameMask = "D_FindMissingGameMask";
+    public static string Da_Info = "Da_Info";
+    public static string Da_Info0 = "Da_Info0";
+    public static string Da_Tit = "Da_Tit";
+    public static string Da_Lab = "Da_Lab";
+    public static string Da_Quit = "Da_Quit";
+    public static string Da_QuitLab = "Da_QuitLab";
+    public static string Da_Cancel = "Da_Cancel";
+    public static string Da_CancelLab = "Da_CancelLab";
+    public static string Da_HGroup1 = "Da_HGroup1";
+    public static string Da_Star1 = "Da_Star1";
+    public static string Da_Star2 = "Da_Star2";
+    public static string Da_Star3 = "Da_Star3";
+    public static string Da_VGroup = "Da_VGroup";
+    public static string Da_Award = "Da_Award";
+    public static string Da_CoinGroup = "Da_CoinGroup";
+    public static string Da_Coin = "Da_Coin";
+    public static string Da_CoinLab = "Da_CoinLab";
+    public static string Da_DiamondGroup = "Da_DiamondGroup";
+    public static string Da_Diamond = "Da_Diamond";
+    public static string Da_DiamondLab = "Da_DiamondLab";
+    public static string Da_FlowerGroup = "Da_FlowerGroup";
+    public static string Da_Flower = "Da_Flower";
+    public static string Da_FlowerIcon = "Da_FlowerIcon";
+    public static string Da_FlowerLab = "Da_FlowerLab";
+    public static string Da_ScoreTit = "Da_ScoreTit";
+    public static string Da_ScoreLab = "Da_ScoreLab";
+    public static string Da_GetAward = "Da_GetAward";
+    public static string Da_Arrow0 = "Da_Arrow0";
+    public static string Da_Arrow1 = "Da_Arrow1";
+    public static string Da_GetAwardLab = "Da_GetAwardLab";
+    public static string G_Flower = "G_Flower";
+    public static string G_Flower0 = "G_Flower0";
+    public static string G_Close = "G_Close";
+    public static string G_Arrow0 = "G_Arrow0";
+    public static string G_Retrieve = "G_Retrieve";
+    public static string G_Tab = "G_Tab";
+    public static string G_Special = "G_Special";
+    public static string G_SpecialLab = "G_SpecialLab";
+    public static string G_Regular = "G_Regular";
+    public static string G_PosTraL = "G_PosTraL";
+    public static string G_PosTraR = "G_PosTraR";
+    public static string G_Scrr = "G_Scrr";
+    public static string G_SpecialScrr = "G_SpecialScrr";
+    public static string G_SpecialGrid = "G_SpecialGrid";
+    public static string G_RegularScrr = "G_RegularScrr";
+    public static string G_RegularGrid = "G_RegularGrid";
+    public static string G_Collect = "G_Collect";
+    public static string G_RetrieveLab = "G_RetrieveLab";
+    public static string G_Tit = "G_Tit";
+    public static string G_RegularLab = "G_RegularLab";
+    public static string G_CollectLab1 = "G_CollectLab1";
+    public static string G_CollectLab2 = "G_CollectLab2";
+    public static string H_FlowerCard = "H_FlowerCard";
+    public static string H_FlowerCard0 = "H_FlowerCard0";
+    public static string H_Lab = "H_Lab";
+    public static string H_Desc = "H_Desc";
+    public static string H_AmtLab = "H_AmtLab";
+    public static string H_Rotate = "H_Rotate";
+    public static string H_Icon1 = "H_Icon1";
+    public static string H_UIFlashLight = "H_UIFlashLight";
+    public static string H_UIFlash = "H_UIFlash";
+    public static string H_UIFlash2 = "H_UIFlash2";
+    public static string H_UIParticleSystem = "H_UIParticleSystem";
+    public static string H_Icon2 = "H_Icon2";
+    public static string H_ArrowPos = "H_ArrowPos";
+    public static string H_ArrowParent = "H_ArrowParent";
+    public static string H_Arrow = "H_Arrow";
+    public static string H_Close = "H_Close";
+    public static string H_HGroup = "H_HGroup";
+    public static string H_Btn = "H_Btn";
+    public static string H_BtnLab = "H_BtnLab";
+    public static string H_BtnImagePlus = "H_BtnImagePlus";
+    public static string H_Btn1 = "H_Btn1";
+    public static string H_BtnLab1 = "H_BtnLab1";
+    public static string H_BtnImagePlus1 = "H_BtnImagePlus1";
+    public static string M_Achieve = "M_Achieve";
+    public static string M_Achieve0 = "M_Achieve0";
+    public static string M_Close = "M_Close";
+    public static string M_CloseExtent = "M_CloseExtent";
+    public static string M_Tit = "M_Tit";
+    public static string M_Scrr = "M_Scrr";
+    public static string M_Grid = "M_Grid";
+    public static string M_PosTra = "M_PosTra";
+    public static string P_DressRoom = "P_DressRoom";
+    public static string P_ChangeDressPanel = "P_ChangeDressPanel";
+    public static string P_ShareParent = "P_ShareParent";
+    public static string P_Share = "P_Share";
+    public static string P_ScreenShotRect = "P_ScreenShotRect";
+    public static string P_Group = "P_Group";
+    public static string P_HorizontalGroup = "P_HorizontalGroup";
+    public static string P_FashionShowButton = "P_FashionShowButton";
+    public static string P_Reset = "P_Reset";
+    public static string P_Save = "P_Save";
+    public static string P_Return = "P_Return";
+    public static string P_Tutorial = "P_Tutorial";
+    public static string P_TutorialBg = "P_TutorialBg";
+    public static string P_CloseTipBK = "P_CloseTipBK";
+    public static string P_CloseTip = "P_CloseTip";
+    public static string P_CreateTipBK = "P_CreateTipBK";
+    public static string P_CreateTip = "P_CreateTip";
+    public static string P_CloseArrow0 = "P_CloseArrow0";
+    public static string P_CloseArrow1 = "P_CloseArrow1";
+    public static string P_SidePanel = "P_SidePanel";
+    public static string P_Close = "P_Close";
+    public static string P_Open = "P_Open";
+    public static string P_Data = "P_Data";
+    public static string P_CoinLab = "P_CoinLab";
+    public static string P_DiamondLab = "P_DiamondLab";
+    public static string P_TabBtn = "P_TabBtn";
+    public static string P_Top = "P_Top";
+    public static string P_TopIcon = "P_TopIcon";
+    public static string P_TopLab = "P_TopLab";
+    public static string P_Dress = "P_Dress";
+    public static string P_DressIcon = "P_DressIcon";
+    public static string P_DressLab = "P_DressLab";
+    public static string P_Shoe = "P_Shoe";
+    public static string P_ShoeIcon = "P_ShoeIcon";
+    public static string P_ShoeLab = "P_ShoeLab";
+    public static string P_Decarator = "P_Decarator";
+    public static string P_DecaratorIcon = "P_DecaratorIcon";
+    public static string P_DecaratorLab = "P_DecaratorLab";
+    public static string P_Wing = "P_Wing";
+    public static string P_WingIcon = "P_WingIcon";
+    public static string P_WingLab = "P_WingLab";
+    public static string P_Hair = "P_Hair";
+    public static string P_HairIcon = "P_HairIcon";
+    public static string P_HairLab = "P_HairLab";
+    public static string P_Pos = "P_Pos";
+    public static string P_Tab = "P_Tab";
+    public static string Pa_HairTab = "Pa_HairTab";
+    public static string Pa_HairGrid = "Pa_HairGrid";
+    public static string Pb_TopTab = "Pb_TopTab";
+    public static string Pb_TopGrid = "Pb_TopGrid";
+    public static string Pc_DressTab = "Pc_DressTab";
+    public static string Pc_DressGrid = "Pc_DressGrid";
+    public static string Pd_DecaratorTab = "Pd_DecaratorTab";
+    public static string Pd_DecaratorGrid = "Pd_DecaratorGrid";
+    public static string Pe_WingTab = "Pe_WingTab";
+    public static string Pe_WingGrid = "Pe_WingGrid";
+    public static string Pf_ShoeTab = "Pf_ShoeTab";
+    public static string Pf_ShoeGrid = "Pf_ShoeGrid";
+    public static string P_CancelShare = "P_CancelShare";
+    public static string P_CloseTipBtn = "P_CloseTipBtn";
+    public static string AL_ChangeMousePanel = "AL_ChangeMousePanel";
+    public static string AL_Bg = "AL_Bg";
+    public static string AL_Close = "AL_Close";
+    public static string AL_CloseLab = "AL_CloseLab";
+    public static string AL_Tit = "AL_Tit";
+    public static string AL_Buttons = "AL_Buttons";
+    public static string AL_Reset = "AL_Reset";
+    public static string AL_Save = "AL_Save";
+    public static string AL_Shadow = "AL_Shadow";
+    public static string AL_CostLab = "AL_CostLab";
+    public static string AL_CostLabImagePlus = "AL_CostLabImagePlus";
+    public static string AL_PlayerPos = "AL_PlayerPos";
+    public static string AL_Dress = "AL_Dress";
+    public static string AL_ScrollMouse = "AL_ScrollMouse";
+    public static string AL_MouseTab = "AL_MouseTab";
+    public static string AL_ScrollEye = "AL_ScrollEye";
+    public static string AL_EyeTab = "AL_EyeTab";
+    public static string AL_TabBtn = "AL_TabBtn";
+    public static string AL_HairBtn = "AL_HairBtn";
+    public static string AL_HairIcon = "AL_HairIcon";
+    public static string AL_HairLab = "AL_HairLab";
+    public static string AL_DressBtn = "AL_DressBtn";
+    public static string AL_DressIcon = "AL_DressIcon";
+    public static string AL_DressLab = "AL_DressLab";
+    public static string AM_Bubble = "AM_Bubble";
+    public static string AM_Bubble0 = "AM_Bubble0";
+    public static string AM_Title = "AM_Title";
+    public static string AM_Gold = "AM_Gold";
+    public static string AM_CoinLab = "AM_CoinLab";
+    public static string AM_Diamond = "AM_Diamond";
+    public static string AM_DiamondLab = "AM_DiamondLab";
+    public static string AM_HGroup = "AM_HGroup";
+    public static string AM_Confirm = "AM_Confirm";
+    public static string AM_ConfirmLab = "AM_ConfirmLab";
+    public static string AM_Cancel = "AM_Cancel";
+    public static string AM_CancelLab = "AM_CancelLab";
+    public static string Pi_FashionShowHomePanel = "Pi_FashionShowHomePanel";
+    public static string Pi_FashionShowHomePanelPosition = "Pi_FashionShowHomePanelPosition";
+    public static string Pi_FashionShowHomeSidePanel = "Pi_FashionShowHomeSidePanel";
+    public static string Pi_Tutorial = "Pi_Tutorial";
+    public static string Pi_TutorialBg = "Pi_TutorialBg";
+    public static string Pi_HomePageArrow0 = "Pi_HomePageArrow0";
+    public static string Pi_HomePageArrow1 = "Pi_HomePageArrow1";
+    public static string Pi_SidePanelBg = "Pi_SidePanelBg";
+    public static string Pi_Ribbon = "Pi_Ribbon";
+    public static string Pi_Return = "Pi_Return";
+    public static string Pi_TabButtons = "Pi_TabButtons";
+    public static string Pi_CuteTabButton = "Pi_CuteTabButton";
+    public static string Pi_CuteTabBubble = "Pi_CuteTabBubble";
+    public static string Pi_CuteTabButtonText = "Pi_CuteTabButtonText";
+    public static string Pi_GraceTabButton = "Pi_GraceTabButton";
+    public static string Pi_GraceTabBubble = "Pi_GraceTabBubble";
+    public static string Pi_GraceTabButtonText = "Pi_GraceTabButtonText";
+    public static string Pi_VividTabButton = "Pi_VividTabButton";
+    public static string Pi_VividTabBubble = "Pi_VividTabBubble";
+    public static string Pi_VividTabButtonText = "Pi_VividTabButtonText";
+    public static string Pi_SimpleTabButton = "Pi_SimpleTabButton";
+    public static string Pi_SimpleTabBubble = "Pi_SimpleTabBubble";
+    public static string Pi_SimpleTabButtonText = "Pi_SimpleTabButtonText";
+    public static string Pi_GloryTabButton = "Pi_GloryTabButton";
+    public static string Pi_GloryTabBubble = "Pi_GloryTabBubble";
+    public static string Pi_GloryTabButtonText = "Pi_GloryTabButtonText";
+    public static string Pi_MineTabButton = "Pi_MineTabButton";
+    public static string Pi_MineTabButtonArrow = "Pi_MineTabButtonArrow";
+    public static string Pi_MineTabBubble = "Pi_MineTabBubble";
+    public static string Pi_MineTabButtonText = "Pi_MineTabButtonText";
+    public static string Pi_HomeTabButton = "Pi_HomeTabButton";
+    public static string Pi_HomeTabBubble = "Pi_HomeTabBubble";
+    public static string Pi_HomeTabButtonText = "Pi_HomeTabButtonText";
+    public static string Pi_RecommendTitle = "Pi_RecommendTitle";
+    public static string Pi_HomeTab = "Pi_HomeTab";
+    public static string Pi_HomeScrollRect = "Pi_HomeScrollRect";
+    public static string Ph_HomeGrid = "Ph_HomeGrid";
+    public static string Pi_CuteTab = "Pi_CuteTab";
+    public static string Pi_CuteScrollRect = "Pi_CuteScrollRect";
+    public static string Ph_CuteGrid = "Ph_CuteGrid";
+    public static string Pi_GraceTab = "Pi_GraceTab";
+    public static string Pi_GraceScrollRect = "Pi_GraceScrollRect";
+    public static string Ph_GraceGrid = "Ph_GraceGrid";
+    public static string Pi_VividTab = "Pi_VividTab";
+    public static string Pi_VividScrollRect = "Pi_VividScrollRect";
+    public static string Ph_VividGrid = "Ph_VividGrid";
+    public static string Pi_SimpleTab = "Pi_SimpleTab";
+    public static string Pi_SimpleScrollRect = "Pi_SimpleScrollRect";
+    public static string Ph_SimpleGrid = "Ph_SimpleGrid";
+    public static string Pi_GloryTab = "Pi_GloryTab";
+    public static string Pi_GloryScrollRect = "Pi_GloryScrollRect";
+    public static string Ph_GloryGrid = "Ph_GloryGrid";
+    public static string Pi_MineTab = "Pi_MineTab";
+    public static string Pi_MineScrollRect = "Pi_MineScrollRect";
+    public static string Ph_MineGrid = "Ph_MineGrid";
+    public static string Pi_ShareArrow = "Pi_ShareArrow";
+    public static string Pi_ShareBg = "Pi_ShareBg";
+    public static string Pi_Share = "Pi_Share";
+    public static string Pi_HomePageTipBtn = "Pi_HomePageTipBtn";
+    public static string Pi_HomePageTipBK = "Pi_HomePageTipBK";
+    public static string Pi_HomePageTip = "Pi_HomePageTip";
+    public static string Pi_LeaveTipBK = "Pi_LeaveTipBK";
+    public static string Pi_LeaveTip = "Pi_LeaveTip";
+    public static string Pg_FashionShowEditPanel = "Pg_FashionShowEditPanel";
+    public static string Pg_FashionShowEditPanelPosition = "Pg_FashionShowEditPanelPosition";
+    public static string Pg_Ribbon = "Pg_Ribbon";
+    public static string Pg_Return = "Pg_Return";
+    public static string Pg_CurrentData = "Pg_CurrentData";
+    public static string Pg_CoinText = "Pg_CoinText";
+    public static string Pg_DiamondText = "Pg_DiamondText";
+    public static string Pg_RecommendTitle = "Pg_RecommendTitle";
+    public static string Pg_DisplayBackground = "Pg_DisplayBackground";
+    public static string Image = "Image";
+    public static string Pg_DisplayEditButton = "Pg_DisplayEditButton";
+    public static string Pg_HorizontalGroup = "Pg_HorizontalGroup";
+    public static string Pg_DeleteButton = "Pg_DeleteButton";
+    public static string Pg_ResetButton = "Pg_ResetButton";
+    public static string Pg_SaveButton = "Pg_SaveButton";
+    public static string Pg_PraiseButton = "Pg_PraiseButton";
+    public static string Pg_PraiseText = "Pg_PraiseText";
+    public static string Pg_CommentButton = "Pg_CommentButton";
+    public static string Pg_ShareButton = "Pg_ShareButton";
+    public static string Pg_FashionTitleBackground = "Pg_FashionTitleBackground";
+    public static string Pg_FashionTitleParent = "Pg_FashionTitleParent";
+    public static string Pg_FashionTitle = "Pg_FashionTitle";
+    public static string Pg_FashionTitlePlaceHolder = "Pg_FashionTitlePlaceHolder";
+    public static string Pg_FashionTitleEditButton = "Pg_FashionTitleEditButton";
+    public static string Pg_Content = "Pg_Content";
+    public static string Pg_FashionContentBackground = "Pg_FashionContentBackground";
+    public static string Pg_FashionContentParent = "Pg_FashionContentParent";
+    public static string Pg_FashionContent = "Pg_FashionContent";
+    public static string Pg_FashionContentPlaceHolder = "Pg_FashionContentPlaceHolder";
+    public static string Pg_FashionContentEditButton = "Pg_FashionContentEditButton";
+    public static string Pg_SliderBackground = "Pg_SliderBackground";
+    public static string Pg_VerticalSliderGroup = "Pg_VerticalSliderGroup";
+    public static string Pg_CuteSlider = "Pg_CuteSlider";
+    public static string Pg_CuteTitle = "Pg_CuteTitle";
+    public static string Pg_CuteValue = "Pg_CuteValue";
+    public static string Pg_CuteBackground = "Pg_CuteBackground";
+    public static string Pg_CuteFillArea = "Pg_CuteFillArea";
+    public static string Pg_CuteFill = "Pg_CuteFill";
+    public static string Pg_CuteHandleSlideArea = "Pg_CuteHandleSlideArea";
+    public static string Pg_CuteHandle = "Pg_CuteHandle";
+    public static string Pg_CuteRateBackground = "Pg_CuteRateBackground";
+    public static string Pg_CuteRateText = "Pg_CuteRateText";
+    public static string Pg_GraceSlider = "Pg_GraceSlider";
+    public static string Pg_GraceTitle = "Pg_GraceTitle";
+    public static string Pg_GraceValue = "Pg_GraceValue";
+    public static string Pg_GraceBackground = "Pg_GraceBackground";
+    public static string Pg_GraceFillArea = "Pg_GraceFillArea";
+    public static string Pg_GraceFill = "Pg_GraceFill";
+    public static string Pg_GraceHandleSlideArea = "Pg_GraceHandleSlideArea";
+    public static string Pg_GraceHandle = "Pg_GraceHandle";
+    public static string Pg_GraceRateBackground = "Pg_GraceRateBackground";
+    public static string Pg_GraceRateText = "Pg_GraceRateText";
+    public static string Pg_VividSlider = "Pg_VividSlider";
+    public static string Pg_VividTitle = "Pg_VividTitle";
+    public static string Pg_VividValue = "Pg_VividValue";
+    public static string Pg_VividBackground = "Pg_VividBackground";
+    public static string Pg_VividFillArea = "Pg_VividFillArea";
+    public static string Pg_VividFill = "Pg_VividFill";
+    public static string Pg_VividHandleSlideArea = "Pg_VividHandleSlideArea";
+    public static string Pg_VividHandle = "Pg_VividHandle";
+    public static string Pg_VividRateBackground = "Pg_VividRateBackground";
+    public static string Pg_VividRateText = "Pg_VividRateText";
+    public static string Pg_SimpleSlider = "Pg_SimpleSlider";
+    public static string Pg_SimpleTitle = "Pg_SimpleTitle";
+    public static string Pg_SimpleValue = "Pg_SimpleValue";
+    public static string Pg_SimpleBackground = "Pg_SimpleBackground";
+    public static string Pg_SimpleFillArea = "Pg_SimpleFillArea";
+    public static string Pg_SimpleFill = "Pg_SimpleFill";
+    public static string Pg_SimpleHandleSlideArea = "Pg_SimpleHandleSlideArea";
+    public static string Pg_SimpleHandle = "Pg_SimpleHandle";
+    public static string Pg_SimpleRateBackground = "Pg_SimpleRateBackground";
+    public static string Pg_SimpleRateText = "Pg_SimpleRateText";
+    public static string Pg_GlorySlider = "Pg_GlorySlider";
+    public static string Pg_GloryTitle = "Pg_GloryTitle";
+    public static string Pg_GloryValue = "Pg_GloryValue";
+    public static string Pg_GloryBackground = "Pg_GloryBackground";
+    public static string Pg_GloryFillArea = "Pg_GloryFillArea";
+    public static string Pg_GloryFill = "Pg_GloryFill";
+    public static string Pg_GloryHandleSlideArea = "Pg_GloryHandleSlideArea";
+    public static string Pg_GloryHandle = "Pg_GloryHandle";
+    public static string Pg_GloryRateBackground = "Pg_GloryRateBackground";
+    public static string Pg_GloryRateText = "Pg_GloryRateText";
+    public static string Pg_SubmitRateButton = "Pg_SubmitRateButton";
+    public static string Pg_ResetRateButton = "Pg_ResetRateButton";
+    public static string Pg_RateButton = "Pg_RateButton";
+    public static string Pg_Frame = "Pg_Frame";
+    public static string Pg_FashionShowClosesTitle = "Pg_FashionShowClosesTitle";
+    public static string Pg_FashionShowCloseScrollRect = "Pg_FashionShowCloseScrollRect";
+    public static string Pg_FashionShowCloseGrid = "Pg_FashionShowCloseGrid";
+    public static string Pg_CloseTotalCoinImage = "Pg_CloseTotalCoinImage";
+    public static string Pg_CloseTotalCoinText = "Pg_CloseTotalCoinText";
+    public static string Pg_CloseTotalDiamondImage = "Pg_CloseTotalDiamondImage";
+    public static string Pg_CloseTotalDiamondText = "Pg_CloseTotalDiamondText";
+    public static string Pg_BuyAllButton = "Pg_BuyAllButton";
+    public static string Pg_BuyAllButtonText = "Pg_BuyAllButtonText";
+    public static string Ph_CommentMask = "Ph_CommentMask";
+    public static string Ph_CommentPanel = "Ph_CommentPanel";
+    public static string Ph_Frame = "Ph_Frame";
+    public static string Ph_NicknameTitle = "Ph_NicknameTitle";
+    public static string Ph_ContentTitle = "Ph_ContentTitle";
+    public static string Ph_Title = "Ph_Title";
+    public static string Ph_CloseButton = "Ph_CloseButton";
+    public static string Ph_CloseButtonText = "Ph_CloseButtonText";
+    public static string Ph_ScrollRect = "Ph_ScrollRect";
+    public static string Ph_Grid = "Ph_Grid";
+    public static string Ph_InputFieldBK = "Ph_InputFieldBK";
+    public static string Ph_SendCommentButton = "Ph_SendCommentButton";
+    public static string Ph_SendCommentButtonText = "Ph_SendCommentButtonText";
+    public static string Ph_InputField = "Ph_InputField";
+    public static string Ph_Placeholder = "Ph_Placeholder";
+    public static string Ph_PlaceholderText = "Ph_PlaceholderText";
+    public static string Ph_Tip = "Ph_Tip";
+    public static string Pa_Info = "Pa_Info";
+    public static string Pa_Info0 = "Pa_Info0";
+    public static string Pa_Tit = "Pa_Tit";
+    public static string Pa_Icon0 = "Pa_Icon0";
+    public static string Pa_Icon1 = "Pa_Icon1";
+    public static string Pa_Icon2 = "Pa_Icon2";
+    public static string Pa_Icon3 = "Pa_Icon3";
+    public static string Pa_Lab = "Pa_Lab";
+    public static string Pa_Desc = "Pa_Desc";
+    public static string Pa_Btn = "Pa_Btn";
+    public static string Pa_BtnLab = "Pa_BtnLab";
+    public static string Pa_ImagePlus = "Pa_ImagePlus";
+    public static string Pa_Close = "Pa_Close";
+    public static string R_Notify0 = "R_Notify0";
+    public static string R_Notify = "R_Notify";
+    public static string R_NotifyBK = "R_NotifyBK";
+    public static string R_Close = "R_Close";
+    public static string R_CloseLab = "R_CloseLab";
+    public static string R_NotifyTit = "R_NotifyTit";
+    public static string R_ScrollRect = "R_ScrollRect";
+    public static string R_Grid = "R_Grid";
+    public static string Q_Comment = "Q_Comment";
+    public static string Q_CommentBK = "Q_CommentBK";
+    public static string Q_CommentPanel = "Q_CommentPanel";
+    public static string Q_Frame = "Q_Frame";
+    public static string Q_NicknameTitle = "Q_NicknameTitle";
+    public static string Q_ContentTitle = "Q_ContentTitle";
+    public static string Q_FriendFilterButton = "Q_FriendFilterButton";
+    public static string Q_FriendFilterIcon = "Q_FriendFilterIcon";
+    public static string Q_FriendFilterTitle = "Q_FriendFilterTitle";
+    public static string Q_Tit = "Q_Tit";
+    public static string Q_Close = "Q_Close";
+    public static string Q_CloseLab = "Q_CloseLab";
+    public static string Q_ScrollRect = "Q_ScrollRect";
+    public static string Q_Grid = "Q_Grid";
+    public static string Q_InputBK = "Q_InputBK";
+    public static string Q_CommentBtn = "Q_CommentBtn";
+    public static string Q_CommentLab = "Q_CommentLab";
+    public static string Q_InputField = "Q_InputField";
+    public static string Q_Placeholder = "Q_Placeholder";
+    public static string Q_Lab = "Q_Lab";
+    public static string Q_Tip = "Q_Tip";
+    public static string S_Rank = "S_Rank";
+    public static string S_RankBK = "S_RankBK";
+    public static string S_RankPanel = "S_RankPanel";
+    public static string S_Close = "S_Close";
+    public static string S_CloseLab = "S_CloseLab";
+    public static string S_ScrollRect = "S_ScrollRect";
+    public static string S_Grid = "S_Grid";
+    public static string S_Tit = "S_Tit";
+    public static string Z_PlazaRoomList = "Z_PlazaRoomList";
+    public static string Z_BK = "Z_BK";
+    public static string Z_Panel = "Z_Panel";
+    public static string Z_Create = "Z_Create";
+    public static string Z_CreateLab = "Z_CreateLab";
+    public static string Z_Close = "Z_Close";
+    public static string Z_CloseLab = "Z_CloseLab";
+    public static string Z_ScrollRect = "Z_ScrollRect";
+    public static string Z_Frame = "Z_Frame";
+    public static string Z_Grid = "Z_Grid";
+    public static string Z_Tit = "Z_Tit";
+    public static string Z_Info = "Z_Info";
+    public static string Z_Info0 = "Z_Info0";
+    public static string Z_InfoLab0 = "Z_InfoLab0";
+    public static string Z_Info1 = "Z_Info1";
+    public static string Z_InfoLab1 = "Z_InfoLab1";
+    public static string Z_Info2 = "Z_Info2";
+    public static string Z_InfoLab2 = "Z_InfoLab2";
+    public static string Z_Info3 = "Z_Info3";
+    public static string Z_InfoLab3 = "Z_InfoLab3";
+    public static string Z_Info4 = "Z_Info4";
+    public static string Z_InfoLab4 = "Z_InfoLab4";
+    public static string Z_Info5 = "Z_Info5";
+    public static string Z_InfoImg50 = "Z_InfoImg50";
+    public static string Z_InfoImg51 = "Z_InfoImg51";
+    public static string Z_InfoLab5 = "Z_InfoLab5";
+    public static string Z_Tip = "Z_Tip";
+    public static string AA_CreatePlazaRoom = "AA_CreatePlazaRoom";
+    public static string AA_Panel = "AA_Panel";
+    public static string AA_Lab = "AA_Lab";
+    public static string AA_InputField = "AA_InputField";
+    public static string AA_InputFieldLab = "AA_InputFieldLab";
+    public static string AA_Close = "AA_Close";
+    public static string AA_Desc = "AA_Desc";
+    public static string AA_DestImagePlus = "AA_DestImagePlus";
+    public static string AA_Btn = "AA_Btn";
+    public static string AA_BtnLab = "AA_BtnLab";
+    public static string AAa_Slider = "AAa_Slider";
+    public static string AAa_Tit = "AAa_Tit";
+    public static string AAa_ValueLab = "AAa_ValueLab";
+    public static string AAa_Background = "AAa_Background";
+    public static string AAa_FillArea = "AAa_FillArea";
+    public static string AAa_Fill = "AAa_Fill";
+    public static string AAa_HandleSlideArea = "AAa_HandleSlideArea";
+    public static string AAa_Handle = "AAa_Handle";
+    public static string AAb_Slider = "AAb_Slider";
+    public static string AAb_Tit = "AAb_Tit";
+    public static string AAb_ValueLab = "AAb_ValueLab";
+    public static string AAb_Background = "AAb_Background";
+    public static string AAb_FillArea = "AAb_FillArea";
+    public static string AAb_Fill = "AAb_Fill";
+    public static string AAb_HandleSlideArea = "AAb_HandleSlideArea";
+    public static string AAb_Handle = "AAb_Handle";
+    public static string AA_Tip = "AA_Tip";
+    public static string W_HudParent = "W_HudParent";
+    public static string I_BlackMask = "I_BlackMask";
+    public static string I_Lab = "I_Lab";
+    public static string X_PlazaRoom = "X_PlazaRoom";
+    public static string X_Coin = "X_Coin";
+    public static string X_CoinBK = "X_CoinBK";
+    public static string X_CoinText = "X_CoinText";
+    public static string X_Diamond = "X_Diamond";
+    public static string X_DiamondBK = "X_DiamondBK";
+    public static string X_DiamondText = "X_DiamondText";
+    public static string X_InfoParent = "X_InfoParent";
+    public static string X_InfoBK = "X_InfoBK";
+    public static string X_InfoMask = "X_InfoMask";
+    public static string X_Info = "X_Info";
+    public static string X_CloseInfo = "X_CloseInfo";
+    public static string X_CurrentInfo = "X_CurrentInfo";
+    public static string X_CurrentInfoLab = "X_CurrentInfoLab";
+    public static string X_CurrentInfoImagePlus = "X_CurrentInfoImagePlus";
+    public static string X_OpenInfo = "X_OpenInfo";
+    public static string X_Quit = "X_Quit";
+    public static string X_InputField = "X_InputField";
+    public static string X_InputFieldLab = "X_InputFieldLab";
+    public static string X_SendPublicMessage = "X_SendPublicMessage";
+    public static string X_Expression = "X_Expression";
+    public static string X_Mask = "X_Mask";
+    public static string X_GridBK = "X_GridBK";
+    public static string X_Grid = "X_Grid";
+    public static string X_HappyFace = "X_HappyFace";
+    public static string X_HopeFace = "X_HopeFace";
+    public static string X_SurpriseFace = "X_SurpriseFace";
+    public static string X_ChagrinFace = "X_ChagrinFace";
+    public static string X_BlueFace = "X_BlueFace";
+    public static string X_OgleFace = "X_OgleFace";
+    public static string X_SweatFace = "X_SweatFace";
+    public static string X_CryFace = "X_CryFace";
+    public static string X_CreateChest = "X_CreateChest";
+    public static string X_MemberButton = "X_MemberButton";
+    public static string X_MemberIcon = "X_MemberIcon";
+    public static string Y_Chest = "Y_Chest";
+    public static string Y_BK = "Y_BK";
+    public static string Y_Close = "Y_Close";
+    public static string Ya_GetAward = "Ya_GetAward";
+    public static string Ya_Btn = "Ya_Btn";
+    public static string Ya_BtnLab = "Ya_BtnLab";
+    public static string Ya_Rotate = "Ya_Rotate";
+    public static string Ya_Icon = "Ya_Icon";
+    public static string Ya_Desc = "Ya_Desc";
+    public static string Y_Guess = "Y_Guess";
+    public static string Y_RewardItem = "Y_RewardItem";
+    public static string Y_RewardIcon = "Y_RewardIcon";
+    public static string Y_RewardLab = "Y_RewardLab";
+    public static string Y_Btn = "Y_Btn";
+    public static string Y_BtnLab = "Y_BtnLab";
+    public static string Y_Desc = "Y_Desc";
+    public static string Y_Tit = "Y_Tit";
+    public static string Y_InputField = "Y_InputField";
+    public static string Y_InputFieldLab = "Y_InputFieldLab";
+    public static string Yb_CreateChest = "Yb_CreateChest";
+    public static string Yb_Tit = "Yb_Tit";
+    public static string Yb_Icon = "Yb_Icon";
+    public static string Yb_InputField = "Yb_InputField";
+    public static string Yb_InputFieldLab = "Yb_InputFieldLab";
+    public static string Yb_Slider = "Yb_Slider";
+    public static string Yb_SliderTit = "Yb_SliderTit";
+    public static string Yb_SliderValueLab = "Yb_SliderValueLab";
+    public static string Yb_Background = "Yb_Background";
+    public static string Yb_FillArea = "Yb_FillArea";
+    public static string Yb_Fill = "Yb_Fill";
+    public static string Yb_HandleSlideArea = "Yb_HandleSlideArea";
+    public static string Yb_Handle = "Yb_Handle";
+    public static string Yb_Desc = "Yb_Desc";
+    public static string Yb_CostLab = "Yb_CostLab";
+    public static string Yb_CostImagePlus = "Yb_CostImagePlus";
+    public static string Yb_Btn = "Yb_Btn";
+    public static string Yb_BtnLab = "Yb_BtnLab";
+    public static string Yb_Toggle0 = "Yb_Toggle0";
+    public static string Yb_ToggleIcon0 = "Yb_ToggleIcon0";
+    public static string Yb_ToggleLab0 = "Yb_ToggleLab0";
+    public static string Yb_Toggle1 = "Yb_Toggle1";
+    public static string Yb_ToggleIcon1 = "Yb_ToggleIcon1";
+    public static string Yb_ToggleLab1 = "Yb_ToggleLab1";
+    public static string Yb_Toggle2 = "Yb_Toggle2";
+    public static string Yb_ToggleIcon2 = "Yb_ToggleIcon2";
+    public static string Yb_ToggleLab2 = "Yb_ToggleLab2";
+    public static string Y_Tip = "Y_Tip";
+    public static string O_Toast = "O_Toast";
+    public static string O_Pos = "O_Pos";
+    public static string O_Lab = "O_Lab";
+    public static string V_BlackMask = "V_BlackMask";
+    public static string T_NickName = "T_NickName";
+    public static string T_NickNameBK = "T_NickNameBK";
+    public static string T_NickNameCard = "T_NickNameCard";
+    public static string T_CloseParent = "T_CloseParent";
+    public static string T_Close = "T_Close";
+    public static string T_Confirm = "T_Confirm";
+    public static string T_ConfirmLab = "T_ConfirmLab";
+    public static string T_Tit = "T_Tit";
+    public static string T_InputField = "T_InputField";
+    public static string T_InputLab = "T_InputLab";
+    public static string T_Random = "T_Random";
+    public static string T_CostTxt = "T_CostTxt";
+    public static string T_CostImagePlus = "T_CostImagePlus";
+    public static string AC_EnterMinigamePanelMask = "AC_EnterMinigamePanelMask";
+    public static string AC_EnterMinigamePanel = "AC_EnterMinigamePanel";
+    public static string AC_Title = "AC_Title";
+    public static string AC_CloseButton = "AC_CloseButton";
+    public static string AC_ConfirmButton = "AC_ConfirmButton";
+    public static string AC_ConfirmButtonTitle = "AC_ConfirmButtonTitle";
+    public static string AC_ChangeButton = "AC_ChangeButton";
+    public static string AC_ChangeButtonTitle = "AC_ChangeButtonTitle";
+    public static string AC_CostText = "AC_CostText";
+    public static string AC_CostTextImagePlus = "AC_CostTextImagePlus";
+    public static string AC_Mask = "AC_Mask";
+    public static string AC_ScrollPos0 = "AC_ScrollPos0";
+    public static string AC_ScrollPos1 = "AC_ScrollPos1";
+    public static string AC_ScrollPos2 = "AC_ScrollPos2";
+    public static string AC_GamaTypeText0 = "AC_GamaTypeText0";
+    public static string AC_GamaTypeText1 = "AC_GamaTypeText1";
+    public static string AE_PlazaroomMemberPanelParent = "AE_PlazaroomMemberPanelParent";
+    public static string AE_PlazaroomMemberPanelMask = "AE_PlazaroomMemberPanelMask";
+    public static string AE_PlazaroomMemberPanel = "AE_PlazaroomMemberPanel";
+    public static string AE_Frame = "AE_Frame";
+    public static string AE_NicknameTitle = "AE_NicknameTitle";
+    public static string AE_ContentTitle = "AE_ContentTitle";
+    public static string AE_FriendFilterButton = "AE_FriendFilterButton";
+    public static string AE_FriendFilterIcon = "AE_FriendFilterIcon";
+    public static string AE_FriendFilterTitle = "AE_FriendFilterTitle";
+    public static string AE_PanelTitle = "AE_PanelTitle";
+    public static string AE_CloseButton = "AE_CloseButton";
+    public static string AE_CloseButtonTitle = "AE_CloseButtonTitle";
+    public static string AE_ScrollRect = "AE_ScrollRect";
+    public static string AE_Grid = "AE_Grid";
+    public static string AE_FriendListButton = "AE_FriendListButton";
+    public static string AE_FriendListImage = "AE_FriendListImage";
+    public static string AD_CDMinigameMask = "AD_CDMinigameMask";
+    public static string AD_CDMinigamePanel = "AD_CDMinigamePanel";
+    public static string AD_Title = "AD_Title";
+    public static string AD_CoinToggle = "AD_CoinToggle";
+    public static string AD_CoinTick = "AD_CoinTick";
+    public static string AD_CoinCostText = "AD_CoinCostText";
+    public static string AD_CoinCostTextImagePlus = "AD_CoinCostTextImagePlus";
+    public static string AD_CoinDescription = "AD_CoinDescription";
+    public static string AD_DiamondToggle = "AD_DiamondToggle";
+    public static string AD_DiamondTick = "AD_DiamondTick";
+    public static string AD_DiamondDescription = "AD_DiamondDescription";
+    public static string AD_DiamondCostText = "AD_DiamondCostText";
+    public static string AD_DiamondCostTextImagePlus = "AD_DiamondCostTextImagePlus";
+    public static string AD_CloseButton = "AD_CloseButton";
+    public static string AD_ConfirmButton = "AD_ConfirmButton";
+    public static string AD_ConfirmButtonTitle = "AD_ConfirmButtonTitle";
+    public static string AF_FriendPanelParent = "AF_FriendPanelParent";
+    public static string AF_FriendPanelMask = "AF_FriendPanelMask";
+    public static string AF_FriendPanel = "AF_FriendPanel";
+    public static string AF_Frame = "AF_Frame";
+    public static string AF_NicknameTitle = "AF_NicknameTitle";
+    public static string AF_ContentTitle = "AF_ContentTitle";
+    public static string AF_NewMessageFlag = "AF_NewMessageFlag";
+    public static string AF_NewMessageFlagText = "AF_NewMessageFlagText";
+    public static string AF_ApplicantButton = "AF_ApplicantButton";
+    public static string AF_NewApplicantFlagImage = "AF_NewApplicantFlagImage";
+    public static string AF_ApplicantIcon = "AF_ApplicantIcon";
+    public static string AF_ApplicantTitle = "AF_ApplicantTitle";
+    public static string AF_PanelTitle = "AF_PanelTitle";
+    public static string AF_FriendScrollRect = "AF_FriendScrollRect";
+    public static string AF_FriendGrid = "AF_FriendGrid";
+    public static string AF_ApplicantScrollRect = "AF_ApplicantScrollRect";
+    public static string AF_ApplicantGrid = "AF_ApplicantGrid";
+    public static string AF_HorizontalGroup = "AF_HorizontalGroup";
+    public static string AF_AcceptAllButton = "AF_AcceptAllButton";
+    public static string AF_AcceptAllButtonTitle = "AF_AcceptAllButtonTitle";
+    public static string AF_AddFriendButton = "AF_AddFriendButton";
+    public static string AF_AddFriendTitle = "AF_AddFriendTitle";
+    public static string AF_CloseButton = "AF_CloseButton";
+    public static string AF_CloseButtonTitle = "AF_CloseButtonTitle";
+    public static string AF_FriendAmountText = "AF_FriendAmountText";
+    public static string AG_AddFriendPanelMask = "AG_AddFriendPanelMask";
+    public static string AG_AddFriendPanel = "AG_AddFriendPanel";
+    public static string AG_Title = "AG_Title";
+    public static string AG_InputField = "AG_InputField";
+    public static string AG_InputFieldText = "AG_InputFieldText";
+    public static string AG_SearchButton = "AG_SearchButton";
+    public static string AG_SearchButtonTitle = "AG_SearchButtonTitle";
+    public static string AG_TipText = "AG_TipText";
+    public static string AG_NicknameText = "AG_NicknameText";
+    public static string AG_ChangeButton = "AG_ChangeButton";
+    public static string AG_ChangeButtonUnderline = "AG_ChangeButtonUnderline";
+    public static string AG_CloseButton = "AG_CloseButton";
+    public static string AG_ApplyButton = "AG_ApplyButton";
+    public static string AG_ApplyButtonTitle = "AG_ApplyButtonTitle";
+    public static string AH_MessagePanelParent = "AH_MessagePanelParent";
+    public static string AH_MessagePanelMask = "AH_MessagePanelMask";
+    public static string AH_MessagePanel = "AH_MessagePanel";
+    public static string AH_Frame = "AH_Frame";
+    public static string AH_NicknameTitle = "AH_NicknameTitle";
+    public static string AH_ContentTitle = "AH_ContentTitle";
+    public static string AH_TimeTitle = "AH_TimeTitle";
+    public static string AH_PanelTitle = "AH_PanelTitle";
+    public static string AH_CloseButton = "AH_CloseButton";
+    public static string AH_CloseButtonTitle = "AH_CloseButtonTitle";
+    public static string AH_ScrollRect = "AH_ScrollRect";
+    public static string AH_Grid = "AH_Grid";
+    public static string AH_InputFieldParent = "AH_InputFieldParent";
+    public static string AH_InputField = "AH_InputField";
+    public static string AH_PlaceholderTitle = "AH_PlaceholderTitle";
+    public static string AH_InputText = "AH_InputText";
+    public static string AH_SendMessageButton = "AH_SendMessageButton";
+    public static string AH_SendMessageButtonTitle = "AH_SendMessageButtonTitle";
+    public static string AH_LoadingTitle = "AH_LoadingTitle";
+    public static string B_SignIn0 = "B_SignIn0";
+    public static string B_SignIn = "B_SignIn";
+    public static string Bb_SignIn = "Bb_SignIn";
+    public static string Bb_Get = "Bb_Get";
+    public static string Bb_GetLab = "Bb_GetLab";
+    public static string Bb_Title = "Bb_Title";
+    public static string Bb_Grid = "Bb_Grid";
+    public static string Bb_Rotate = "Bb_Rotate";
+    public static string Bb_Info = "Bb_Info";
+    public static string Bb_IconB = "Bb_IconB";
+    public static string Bb_InfoLabB = "Bb_InfoLabB";
+    public static string Bb_IconA = "Bb_IconA";
+    public static string Bb_IconA0 = "Bb_IconA0";
+    public static string Bb_InfoLabA = "Bb_InfoLabA";
+    public static string Bb_Confirm = "Bb_Confirm";
+    public static string Bb_ConfirmLab = "Bb_ConfirmLab";
+    public static string Ba_Notice0 = "Ba_Notice0";
+    public static string Ba_Notice = "Ba_Notice";
+    public static string Ba_Confirm = "Ba_Confirm";
+    public static string Ba_ConfirmLab = "Ba_ConfirmLab";
+    public static string Ba_Lab = "Ba_Lab";
+    public static string Ba_Lab2 = "Ba_Lab2";
+    public static string Ba_Group = "Ba_Group";
+    public static string Ba_Icon = "Ba_Icon";
+    public static string Ba_IconLab = "Ba_IconLab";
+    public static string Bc_Lottery = "Bc_Lottery";
+    public static string Bc_LotteryItem1 = "Bc_LotteryItem1";
+    public static string Bc_LotteryBK11 = "Bc_LotteryBK11";
+    public static string Bc_LotteryBK12 = "Bc_LotteryBK12";
+    public static string Bc_LotteryBtn1 = "Bc_LotteryBtn1";
+    public static string Bc_LotteryIcon11 = "Bc_LotteryIcon11";
+    public static string Bc_LotteryIcon12 = "Bc_LotteryIcon12";
+    public static string Bc_LotteryIcon13 = "Bc_LotteryIcon13";
+    public static string Bc_LotteryLab1 = "Bc_LotteryLab1";
+    public static string Bc_LotteryBack1 = "Bc_LotteryBack1";
+    public static string Bc_LotteryItem2 = "Bc_LotteryItem2";
+    public static string Bc_LotteryBK21 = "Bc_LotteryBK21";
+    public static string Bc_LotteryBK22 = "Bc_LotteryBK22";
+    public static string Bc_LotteryBtn2 = "Bc_LotteryBtn2";
+    public static string Bc_LotteryIcon21 = "Bc_LotteryIcon21";
+    public static string Bc_LotteryIcon22 = "Bc_LotteryIcon22";
+    public static string Bc_LotteryIcon23 = "Bc_LotteryIcon23";
+    public static string Bc_LotteryLab2 = "Bc_LotteryLab2";
+    public static string Bc_LotteryBack2 = "Bc_LotteryBack2";
+    public static string Bc_LotteryItem3 = "Bc_LotteryItem3";
+    public static string Bc_LotteryBK31 = "Bc_LotteryBK31";
+    public static string Bc_LotteryBK32 = "Bc_LotteryBK32";
+    public static string Bc_LotteryBtn3 = "Bc_LotteryBtn3";
+    public static string Bc_LotteryIcon31 = "Bc_LotteryIcon31";
+    public static string Bc_LotteryIcon32 = "Bc_LotteryIcon32";
+    public static string Bc_LotteryIcon33 = "Bc_LotteryIcon33";
+    public static string Bc_LotteryLab3 = "Bc_LotteryLab3";
+    public static string Bc_LotteryBack3 = "Bc_LotteryBack3";
+    public static string Bc_Lab = "Bc_Lab";
+    public static string Bc_Confirm = "Bc_Confirm";
+    public static string Bc_ConfirmLab = "Bc_ConfirmLab";
+    public static string Bd_Mail = "Bd_Mail";
+    public static string Bd_Mail0 = "Bd_Mail0";
+    public static string Bd_Text = "Bd_Text";
+    public static string Bd_Get = "Bd_Get";
+    public static string Bd_GetLab = "Bd_GetLab";
+    public static string Bd_Title = "Bd_Title";
+    public static string Bd_ScrollRect = "Bd_ScrollRect";
+    public static string Bd_Grid = "Bd_Grid";
+    public static string N_Tutorial = "N_Tutorial";
+    public static string N_Mask = "N_Mask";
+    public static string N_Arrow = "N_Arrow";
+    public static string N_ArrowIcon = "N_ArrowIcon";
+    public static string N_LabBK = "N_LabBK";
+    public static string N_Lab = "N_Lab";
+    public static string N_Button = "N_Button";
+    public static string N_Confirm = "N_Confirm";
+    public static string N_ConfirmLab = "N_ConfirmLab";
+    public static string N_FormerPlayerButton = "N_FormerPlayerButton";
+    public static string N_FormerPlayerButtonText = "N_FormerPlayerButtonText";
+    public static string AB_RechargeGiftPanel = "AB_RechargeGiftPanel";
+    public static string AB_PanelBK = "AB_PanelBK";
+    public static string AB_Confirm = "AB_Confirm";
+    public static string AB_ConfirmText = "AB_ConfirmText";
+    public static string AB_RotateIcon = "AB_RotateIcon";
+    public static string AB_Title = "AB_Title";
+    public static string AB_Description = "AB_Description";
+    public static string AB_AwardImages = "AB_AwardImages";
+    public static string AB_AwardImage0 = "AB_AwardImage0";
+    public static string AB_AwardImage1 = "AB_AwardImage1";
+    public static string AB_AwardImage2 = "AB_AwardImage2";
+    public static string AB_FlowerAwardImage = "AB_FlowerAwardImage";
+    public static string K_Bubble = "K_Bubble";
+    public static string K_Bubble0 = "K_Bubble0";
+    public static string K_Tit = "K_Tit";
+    public static string K_VGroup = "K_VGroup";
+    public static string K_Icon = "K_Icon";
+    public static string K_Lab = "K_Lab";
+    public static string K_Lab2 = "K_Lab2";
+    public static string K_ImagePlus2 = "K_ImagePlus2";
+    public static string K_Lab1 = "K_Lab1";
+    public static string K_ImagePlus1 = "K_ImagePlus1";
+    public static string K_Lab3 = "K_Lab3";
+    public static string K_LinkButton = "K_LinkButton";
+    public static string K_NotifyLab = "K_NotifyLab";
+    public static string K_NotifyImagePlus = "K_NotifyImagePlus";
+    public static string K_HGroup = "K_HGroup";
+    public static string K_Confirm = "K_Confirm";
+    public static string K_ConfirmLab = "K_ConfirmLab";
+    public static string K_Cancel = "K_Cancel";
+    public static string K_CancelLab = "K_CancelLab";
+    public static string AI_AlertPanel = "AI_AlertPanel";
+    public static string AI_BK = "AI_BK";
+    public static string AI_Tit = "AI_Tit";
+    public static string AI_Grid = "AI_Grid";
+    public static string AI_HGroup = "AI_HGroup";
+    public static string AI_Confirm = "AI_Confirm";
+    public static string AI_ConfirmLab = "AI_ConfirmLab";
+    public static string AI_Cancel = "AI_Cancel";
+    public static string AI_CancelLab = "AI_CancelLab";
+    public static string A_HudParent = "A_HudParent";
+    public static string U_LoadingPanel = "U_LoadingPanel";
+    public static string U_Parent = "U_Parent";
+    public static string U_DebugLab = "U_DebugLab";
+    public static string U_VGroup = "U_VGroup";
+    public static string U_WarningTitle = "U_WarningTitle";
+    public static string U_WarningText = "U_WarningText";
+    public static string U_Group = "U_Group";
+    public static string U_Icon = "U_Icon";
+    public static string U_Lab = "U_Lab";
+    public static string AJ_UpdatePanel = "AJ_UpdatePanel";
+    public static string AJ_bg = "AJ_bg";
+    public static string AJ_Title = "AJ_Title";
+    public static string AJ_Content = "AJ_Content";
+    public static string AJ_Progress = "AJ_Progress";
+    //EndMark-Used by LabelUtility-Do not remove
 }

+ 6 - 0
Assets/Script/Label/LanguageLabel.cs

@@ -315,6 +315,12 @@ public class LanguageLabel
     	public static string UI__AH_SendPrivateMessageFailed = "UI__AH_SendPrivateMessageFailed";
     	public static string UI__AH_Current = "UI__AH_Current";
     	public static string UI__AK_Desc = "UI__AK_Desc";
+    	public static string UI__AL_Title = "UI__AL_Title";
+    	public static string UI__AL_Cost = "UI__AL_Cost";
+    	public static string UI__AL_Close = "UI__AL_Close";
+    	public static string UI__AL_Eye = "UI__AL_Eye";
+    	public static string UI__AL_Mouse = "UI__AL_Mouse";
+    	public static string UI__AL_Tip = "UI__AL_Tip";
     	public static string FriendItem = "FriendItem";
     	public static string FriendItem__SendMessageButtonText = "FriendItem__SendMessageButtonText";
     	public static string FriendItem__DeleteButtonText = "FriendItem__DeleteButtonText";

+ 82 - 81
Assets/Script/Label/PlayerConfigLabel.cs

@@ -1,82 +1,83 @@
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEngine;
-
-public class PlayerConfigLabel
-{
-    public static string DefaultID = "Default";
-    public static string DefaultSerialNumber = "Default";
-
-    public static string MinigameCoolFlag = "MinigameCoolFlag";
-    public static string FindMissingMinigameTutorial = "FindMissingMinigameTutorial";
-    public static string FindMissingMinigameTutorialIndex = "FindMissingMinigameTutorialIndex";
-    public static string AttributeName = "value";
-    public static string LastApplicantSerialNumber = "LastApplicantSerialNumber";
-    public static string LastPrivateMessageDate = "LastPrivateMessageDate";
-    public static string CurrentMinigameType = "CurrentMinigameType";
-    public static string OneTimeReward = "OneTimeReward";
-    public static string PackLock = "PackLock";
-    public static string RefundNode = "Refund";
-    public static string ReceivedNode = "Received";
-    public static string RootNode = "PlayerConfig";
-    public static string ExtraSlot = "ExtraSlot";
-    public static string Version = "Version";
-    public static string ReplayVersion = "ReplayVersion";
-    public static string SkillList = "SkillList";
-    public static string Skill = "Skill";
-    public static string ID = "ID";
-    public static string SkillType = "SkillType";
-    public static string ItemStatus = "ItemStatus";
-    public static string Level = "Level";
-    public static string CoolTimer = "CoolTimer";
-    public static string UseTimer = "UseTimer";
-    public static string BarStatus = "BarStatus";
-    public static string DressList = "DressList";
-    public static string DressData = "DressData";
-    public static string AchieveList = "AchieveList";
-    public static string AchieveData = "AchieveData";
-    public static string PlantList = "PlantList";
-    public static string Coin = "Coin";
-    public static string Diamond = "Diamond";
-    public static string SignTime = "SignTime";
-    public static string SignIndex = "SignIndex";
-    public static string SignRound = "SignRound";
-    public static string QuitFlag = "QuitFlag";
-    public static string QuitTime = "QuitTime";
-    public static string MiniTimer = "MiniTimer";
-    public static string CircleTimer = "CircleTimer";
-    public static string SerialNumber = "SerialNumber";
-    public static string Language = "Language";
-    public static string MiniGameIndex = "MiniGameIndex";
-    public static string NewplayerTutorial = "TutorialA";
-    public static string MemoryMinigameTutorial = "TutorialB";
-    public static string VisitTutorial = "TutorialC";
-    public static string DressroomTutorial = "TutorialD";
-    public static string FashionShowTutorial = "FashionShowTutorial";
-    public static string FashionShowTutorialIndex = "FashionShowTutorialIndex";
-    public static string FindSoloMinigameTutorial = "TutorialE";
-    public static string TutorialPlazaRoom = "TutorialPlazaRoom";
-    public static string NewplayerTutorialIndex = "TutorialIndexA";
-    public static string MemoryMinigameTutorialIndex = "TutorialIndexB";
-    public static string VisitTutorialIndex = "TutorialIndexC";
-    public static string DressroomIndex = "TutorialIndexD";
-    public static string FindSoloMinigameTutorialIndex = "TutorialIndexE";
-    public static string TutorialIndexPlazaRoom = "TutorialIndexPlazaRoom";
-    public static string FlowerList = "FlowerList";
-    public static string FlowerAmtList = "FlowerAmtList";
-    public static string ADPlayTime = "ADPlayTime";
-    public static string NotificationIndex = "NotificationIndex";
-    public static string NickName = "NickName";
-    public static string LeftLongSleeveSlot = "LeftLongSleeveSlot";
-    public static string LeftShortSleeveSlot = "LeftShortSleeveSlot";
-    public static string RightLongSleeveSlot = "RightLongSleeveSlot";
-    public static string RightShortSleeveSlot = "RightShortSleeveSlot";
-    public static string NewFlowerFlag = "NewFlowerFlag";
-    public static string CreateRoomAmt = "CreateRoomAmt";
-    public static string CreateChestAmt = "CreateChestAmt";
-    public static string CreateLuckyChestAmt = "CreateLuckyChestAmt";
-    public static string CreateGuessColorChestAmt = "CreateGuessColorChestAmt";
-    public static string CreateGuessNumberChestAmt = "CreateGuessNumberChestAmt";
-    public static string GetChestAwardAmt = "GetChestAwardAmt";
+using System.Collections;
+using System.Collections.Generic;
+
+using UnityEngine;
+
+public class PlayerConfigLabel
+{
+    public static string DefaultID = "Default";
+    public static string DefaultSerialNumber = "Default";
+
+    public static string MinigameCoolFlag = "MinigameCoolFlag";
+    public static string ChangeMouseTutorial = "ChangeMouseTutorial";
+    public static string FindMissingMinigameTutorial = "FindMissingMinigameTutorial";
+    public static string FindMissingMinigameTutorialIndex = "FindMissingMinigameTutorialIndex";
+    public static string AttributeName = "value";
+    public static string LastApplicantSerialNumber = "LastApplicantSerialNumber";
+    public static string LastPrivateMessageDate = "LastPrivateMessageDate";
+    public static string CurrentMinigameType = "CurrentMinigameType";
+    public static string OneTimeReward = "OneTimeReward";
+    public static string PackLock = "PackLock";
+    public static string RefundNode = "Refund";
+    public static string ReceivedNode = "Received";
+    public static string RootNode = "PlayerConfig";
+    public static string ExtraSlot = "ExtraSlot";
+    public static string Version = "Version";
+    public static string ReplayVersion = "ReplayVersion";
+    public static string SkillList = "SkillList";
+    public static string Skill = "Skill";
+    public static string ID = "ID";
+    public static string SkillType = "SkillType";
+    public static string ItemStatus = "ItemStatus";
+    public static string Level = "Level";
+    public static string CoolTimer = "CoolTimer";
+    public static string UseTimer = "UseTimer";
+    public static string BarStatus = "BarStatus";
+    public static string DressList = "DressList";
+    public static string DressData = "DressData";
+    public static string AchieveList = "AchieveList";
+    public static string AchieveData = "AchieveData";
+    public static string PlantList = "PlantList";
+    public static string Coin = "Coin";
+    public static string Diamond = "Diamond";
+    public static string SignTime = "SignTime";
+    public static string SignIndex = "SignIndex";
+    public static string SignRound = "SignRound";
+    public static string QuitFlag = "QuitFlag";
+    public static string QuitTime = "QuitTime";
+    public static string MiniTimer = "MiniTimer";
+    public static string CircleTimer = "CircleTimer";
+    public static string SerialNumber = "SerialNumber";
+    public static string Language = "Language";
+    public static string MiniGameIndex = "MiniGameIndex";
+    public static string NewplayerTutorial = "TutorialA";
+    public static string MemoryMinigameTutorial = "TutorialB";
+    public static string VisitTutorial = "TutorialC";
+    public static string DressroomTutorial = "TutorialD";
+    public static string FashionShowTutorial = "FashionShowTutorial";
+    public static string FashionShowTutorialIndex = "FashionShowTutorialIndex";
+    public static string FindSoloMinigameTutorial = "TutorialE";
+    public static string TutorialPlazaRoom = "TutorialPlazaRoom";
+    public static string NewplayerTutorialIndex = "TutorialIndexA";
+    public static string MemoryMinigameTutorialIndex = "TutorialIndexB";
+    public static string VisitTutorialIndex = "TutorialIndexC";
+    public static string DressroomIndex = "TutorialIndexD";
+    public static string FindSoloMinigameTutorialIndex = "TutorialIndexE";
+    public static string TutorialIndexPlazaRoom = "TutorialIndexPlazaRoom";
+    public static string FlowerList = "FlowerList";
+    public static string FlowerAmtList = "FlowerAmtList";
+    public static string ADPlayTime = "ADPlayTime";
+    public static string NotificationIndex = "NotificationIndex";
+    public static string NickName = "NickName";
+    public static string LeftLongSleeveSlot = "LeftLongSleeveSlot";
+    public static string LeftShortSleeveSlot = "LeftShortSleeveSlot";
+    public static string RightLongSleeveSlot = "RightLongSleeveSlot";
+    public static string RightShortSleeveSlot = "RightShortSleeveSlot";
+    public static string NewFlowerFlag = "NewFlowerFlag";
+    public static string CreateRoomAmt = "CreateRoomAmt";
+    public static string CreateChestAmt = "CreateChestAmt";
+    public static string CreateLuckyChestAmt = "CreateLuckyChestAmt";
+    public static string CreateGuessColorChestAmt = "CreateGuessColorChestAmt";
+    public static string CreateGuessNumberChestAmt = "CreateGuessNumberChestAmt";
+    public static string GetChestAwardAmt = "GetChestAwardAmt";
 }

+ 154 - 153
Assets/Script/Label/ResourceLabel.cs

@@ -1,154 +1,155 @@
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEngine;
-
-public class ResourceLabel
-{
-    //public static string NewDressConfig = "new_dress_config";
-    public static string NewDressSke = "new_dress_ske";
-    public static string NewDressTex = "new_dress_tex";
-    public static string NewLanguage = "new_language_config";
-    //public static string NewFlowerConfig = "new_flower_config";
-    public static string NewFlowerTex = "new_flower_tex";
-
-    public static string ChestTimer = "ChestTimer";
-    public static string PlazaRoom = "PlazaRoom";
-    public static string ObjPool = "ObjPool";
-
-    public static string SkillAtlas = "SkillAtlas";
-    public static string Atlas = "Atlas";
-    public static string TimerMat = "TimerMat";
-    public static string EventSystem = "EventSystem";
-    public static string MainCamera = "MainCamera";
-    public static string Canvas = "Canvas";
-    public static string UI = "UI";
-
-    public static string LOGO0005 = "LOGO0005";
-    public static string PlazaroomMemberItem = "PlazaroomMemberItem";
-    public static string MailItem = "MailItem";
-    public static string NotifyTitle = "NotifyTitle";
-    public static string NotifySplit = "NotifySplit";
-    public static string NotifyContent = "NotifyContent";
-    public static string NotifyDate = "NotifyDate";
-    public static string NotifyImage = "NotifyImage";
-    //public static string NotifyItem = "NotifyItem";
-    public static string Music = "Music";
-    public static string MessageBox = "MessageBox";
-    public static string NickName = "NickName";
-    public static string PlazaRoomItem = "PlazaRoomItem";
-    public static string PlazaRoomStar = "PlazaRoomStar";
-    public static string CloseItem = "CloseItem";
-    public static string FlyGold = "FlyGold";
-    public static string FlowerItem = "FlowerItem";
-    public static string SignItem = "SignItem";
-    public static string LightwallUI = "LightwallUI";
-    public static string Firework = "Firework";
-    public static string AchieveItem = "AchieveItem";
-    public static string SkillItem = "SkillItem";
-    public static string CommentItem = "CommentItem";
-    public static string RankItem = "RankItem";
-    public static string HudText = "HudText";
-    public static string GardenInfoItem = "GardenInfoItem";
-    public static string PlazaInfoItem = "PlazaInfoItem";
-    public static string FashionShowCloseItem = "FashionShowCloseItem";
-    public static string Flower = "Flower";
-    public static string DropGold = "DropGold";
-    public static string DropDiamond = "DropDiamond";
-    public static string PlazaRoomChest = "PlazaRoomChest";
-    public static string ADChest = "ADChest";
-    public static string Star = "Star";
-    public static string Page = "Page";
-    public static string Player = "Player";
-    public static string Garden = "Garden";
-    public static string Tutorial = "Tutorial";
-    public static string DressRoom = "DressRoom";
-
-    public static string Expression_BlueFace = "郁闷按钮";
-    public static string Expression_SweatFace = "汗颜按钮";
-    public static string Expression_SurpriseFace = "惊讶按钮";
-    public static string Expression_HappyFace = "开心按钮";
-    public static string Expression_CryFace = "哭按钮";
-    public static string Expression_HopeFace = "期待按钮";
-    public static string Expression_OgleFace = "色咪咪按钮";
-    public static string Expression_ChagrinFace = "委屈按钮";
-    public static string Expression_SendPublicMessage = "发送按钮";
-    public static string Expression_Expression = "表情按钮";
-    public static string Expression_InputField = "打字框";
-
-    public static string WifiOn = "wifi_ok";
-    public static string WifiOff = "wifi_lost";
-    public static string Expression = "Expression";
-    public static string Slot = "未开垦图标";
-    public static string SystemChest = "系统宝箱";
-    public static string DiamondChest = "钻石宝箱";
-    public static string NumberChest = "数字宝箱";
-    public static string FlowerChest = "花朵宝箱";
-    public static string FlowerShadow = "花影子";
-    public static string Chest = "宝箱";
-    public static string Rip = "Rip";
-    public static string Water = "Water";
-    public static string Fertilize = "Fertilize";
-    public static string Pack = "礼包";
-    public static string Gold = "金币";
-    public static string Diamond = "钻石";
-    public static string BigGold = "大金币图标";
-    public static string MinigameRateStar = "游戏等级评分";
-
-    public static string RobotConfig = "robot_config";
-    public static string StandTex0 = "stand_tex_0";
-    public static string StandTex1 = "stand_tex_1";
-    public static string StandSke = "stand_ske";
-    public static string StandTexture0 = "stand_texture_0";
-    public static string StandTexture1 = "stand_texture_1";
-    public static string PhonoGraphTex = "PhonoGraph_tex";
-    public static string PhonoGraphSke = "PhonoGraph_ske";
-    public static string PhonoGraphTexture = "PhonoGraph_texture";
-
-    public static string Setting = "Setting";
-    public static string English = "English";
-    public static string ChineseSimplified = "ChineseSimplified";
-    public static string ChineseTraditional = "ChineseTraditional";
-    public static string DefaultNickName = "DefaultNickName";
-    public static string Config = "config";
-    public static string MinigameConfig = "minigame_config";
-    public static string DressroomConfig = "dressRoom_config";
-    public static string CostConfig = "cost_config";
-    public static string AchieveConfig = "achieve_config";
-    public static string LotteryConfig = "lottery_config";
-    public static string FlowerConfig = "flower_config";
-    public static string SigninConfig = "signin_config";
-    public static string PackConfig = "pack_config";
-    public static string SkillConfig = "skill_config";
-    public static string AbilityConfig = "ability_config";
-    public static string VisitConfig = "visit_config";
-    public static string PlazaroomConfig = "plaza_room_config";
-    public static string AwardConfig = "award_config";
-    public static string IAPConfig = "iap_config";
-    public static string OfflineConfig = "offline_config";
-    public static string PlayerConfig= "PlayerConfig";
-    public static string PlayerConfigXml = "PlayerConfig.xml";
-    public static string NewDressroomConfig = "new_dressRoom_config";
-    public static string NewEnglish = "new_English";
-    public static string NewChineseSimplified = "new_ChineseSimplified";
-    public static string NewChineseTraditional = "new_ChineseTraditional";
-    public static string DefaultEnglish = "default_English";
-    public static string DefaultChineseSimplified = "default_ChineseSimplified";
-    public static string DefaultChineseTraditional = "default_ChineseTraditional";
-
-    public static string BtnClip = "BtnClip";
-    public static string SkillClip = "SkillClip";
-    public static string ErrorClip = "ErrorClip";
-    public static string DropClip = "DropClip";
-    public static string CloseClip = "CloseClip";
-    public static string FlowerClip = "FlowerClip";
-    public static string BubbleClip = "BubbleClip";
-    public static string CurrentClip = "CurrentClip";
-    public static string MiniEndClip = "MiniEndClip";
-
-    public static string GrayMat = "GrayMat";
-    public static string UIMaskMat = "UIMaskMat";
-    public static string GraySpriteMat = "GraySpriteMat";
-    public static string GrayMeshMat = "GrayMeshMat";
-    public static string DragonboneUGUIMat = "DragonboneUGUIMat";
+using System.Collections;
+using System.Collections.Generic;
+
+using UnityEngine;
+
+public class ResourceLabel
+{
+    //public static string NewDressConfig = "new_dress_config";
+    public static string NewDressSke = "new_dress_ske";
+    public static string NewDressTex = "new_dress_tex";
+    public static string NewLanguage = "new_language_config";
+    //public static string NewFlowerConfig = "new_flower_config";
+    public static string NewFlowerTex = "new_flower_tex";
+
+    public static string MouseCloseItem = "MouseCloseItem";
+    public static string ChestTimer = "ChestTimer";
+    public static string PlazaRoom = "PlazaRoom";
+    public static string ObjPool = "ObjPool";
+
+    public static string SkillAtlas = "SkillAtlas";
+    public static string Atlas = "Atlas";
+    public static string TimerMat = "TimerMat";
+    public static string EventSystem = "EventSystem";
+    public static string MainCamera = "MainCamera";
+    public static string Canvas = "Canvas";
+    public static string UI = "UI";
+
+    public static string LOGO0005 = "LOGO0005";
+    public static string PlazaroomMemberItem = "PlazaroomMemberItem";
+    public static string MailItem = "MailItem";
+    public static string NotifyTitle = "NotifyTitle";
+    public static string NotifySplit = "NotifySplit";
+    public static string NotifyContent = "NotifyContent";
+    public static string NotifyDate = "NotifyDate";
+    public static string NotifyImage = "NotifyImage";
+    //public static string NotifyItem = "NotifyItem";
+    public static string Music = "Music";
+    public static string MessageBox = "MessageBox";
+    public static string NickName = "NickName";
+    public static string PlazaRoomItem = "PlazaRoomItem";
+    public static string PlazaRoomStar = "PlazaRoomStar";
+    public static string CloseItem = "CloseItem";
+    public static string FlyGold = "FlyGold";
+    public static string FlowerItem = "FlowerItem";
+    public static string SignItem = "SignItem";
+    public static string LightwallUI = "LightwallUI";
+    public static string Firework = "Firework";
+    public static string AchieveItem = "AchieveItem";
+    public static string SkillItem = "SkillItem";
+    public static string CommentItem = "CommentItem";
+    public static string RankItem = "RankItem";
+    public static string HudText = "HudText";
+    public static string GardenInfoItem = "GardenInfoItem";
+    public static string PlazaInfoItem = "PlazaInfoItem";
+    public static string FashionShowCloseItem = "FashionShowCloseItem";
+    public static string Flower = "Flower";
+    public static string DropGold = "DropGold";
+    public static string DropDiamond = "DropDiamond";
+    public static string PlazaRoomChest = "PlazaRoomChest";
+    public static string ADChest = "ADChest";
+    public static string Star = "Star";
+    public static string Page = "Page";
+    public static string Player = "Player";
+    public static string Garden = "Garden";
+    public static string Tutorial = "Tutorial";
+    public static string DressRoom = "DressRoom";
+
+    public static string Expression_BlueFace = "郁闷按钮";
+    public static string Expression_SweatFace = "汗颜按钮";
+    public static string Expression_SurpriseFace = "惊讶按钮";
+    public static string Expression_HappyFace = "开心按钮";
+    public static string Expression_CryFace = "哭按钮";
+    public static string Expression_HopeFace = "期待按钮";
+    public static string Expression_OgleFace = "色咪咪按钮";
+    public static string Expression_ChagrinFace = "委屈按钮";
+    public static string Expression_SendPublicMessage = "发送按钮";
+    public static string Expression_Expression = "表情按钮";
+    public static string Expression_InputField = "打字框";
+
+    public static string WifiOn = "wifi_ok";
+    public static string WifiOff = "wifi_lost";
+    public static string Expression = "Expression";
+    public static string Slot = "未开垦图标";
+    public static string SystemChest = "系统宝箱";
+    public static string DiamondChest = "钻石宝箱";
+    public static string NumberChest = "数字宝箱";
+    public static string FlowerChest = "花朵宝箱";
+    public static string FlowerShadow = "花影子";
+    public static string Chest = "宝箱";
+    public static string Rip = "Rip";
+    public static string Water = "Water";
+    public static string Fertilize = "Fertilize";
+    public static string Pack = "礼包";
+    public static string Gold = "金币";
+    public static string Diamond = "钻石";
+    public static string BigGold = "大金币图标";
+    public static string MinigameRateStar = "游戏等级评分";
+
+    public static string RobotConfig = "robot_config";
+    public static string StandTex0 = "stand_tex_0";
+    public static string StandTex1 = "stand_tex_1";
+    public static string StandSke = "stand_ske";
+    public static string StandTexture0 = "stand_texture_0";
+    public static string StandTexture1 = "stand_texture_1";
+    public static string PhonoGraphTex = "PhonoGraph_tex";
+    public static string PhonoGraphSke = "PhonoGraph_ske";
+    public static string PhonoGraphTexture = "PhonoGraph_texture";
+
+    public static string Setting = "Setting";
+    public static string English = "English";
+    public static string ChineseSimplified = "ChineseSimplified";
+    public static string ChineseTraditional = "ChineseTraditional";
+    public static string DefaultNickName = "DefaultNickName";
+    public static string Config = "config";
+    public static string MinigameConfig = "minigame_config";
+    public static string DressroomConfig = "dressRoom_config";
+    public static string CostConfig = "cost_config";
+    public static string AchieveConfig = "achieve_config";
+    public static string LotteryConfig = "lottery_config";
+    public static string FlowerConfig = "flower_config";
+    public static string SigninConfig = "signin_config";
+    public static string PackConfig = "pack_config";
+    public static string SkillConfig = "skill_config";
+    public static string AbilityConfig = "ability_config";
+    public static string VisitConfig = "visit_config";
+    public static string PlazaroomConfig = "plaza_room_config";
+    public static string AwardConfig = "award_config";
+    public static string IAPConfig = "iap_config";
+    public static string OfflineConfig = "offline_config";
+    public static string PlayerConfig= "PlayerConfig";
+    public static string PlayerConfigXml = "PlayerConfig.xml";
+    public static string NewDressroomConfig = "new_dressRoom_config";
+    public static string NewEnglish = "new_English";
+    public static string NewChineseSimplified = "new_ChineseSimplified";
+    public static string NewChineseTraditional = "new_ChineseTraditional";
+    public static string DefaultEnglish = "default_English";
+    public static string DefaultChineseSimplified = "default_ChineseSimplified";
+    public static string DefaultChineseTraditional = "default_ChineseTraditional";
+
+    public static string BtnClip = "BtnClip";
+    public static string SkillClip = "SkillClip";
+    public static string ErrorClip = "ErrorClip";
+    public static string DropClip = "DropClip";
+    public static string CloseClip = "CloseClip";
+    public static string FlowerClip = "FlowerClip";
+    public static string BubbleClip = "BubbleClip";
+    public static string CurrentClip = "CurrentClip";
+    public static string MiniEndClip = "MiniEndClip";
+
+    public static string GrayMat = "GrayMat";
+    public static string UIMaskMat = "UIMaskMat";
+    public static string GraySpriteMat = "GraySpriteMat";
+    public static string GrayMeshMat = "GrayMeshMat";
+    public static string DragonboneUGUIMat = "DragonboneUGUIMat";
 }

+ 86 - 0
Assets/Script/Manage/CommentRewardManager.cs

@@ -0,0 +1,86 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using UnityEngine;
+using Random = UnityEngine.Random;
+
+public class CommentRewardManager : Regist
+{
+    public static double rewardCoin;
+    public static float rewardTime;
+    public static float rewardChance;
+
+    public static string rewardCoinFml;
+    public static string rewardTimeFml;
+    public static string rewardChanceFml;
+
+    public static float timer;
+
+    public override void ThirdInit()
+    {
+        XmlDocument document = ConfigManager.GetXmlDocument(ResourceLabel.CostConfig);
+        XmlNodeList nodes = document.SelectSingleNode(ConfigLabel.RootNode).ChildNodes;
+        rewardCoinFml = nodes[3].Attributes[1].Value;
+        rewardChanceFml = nodes[4].Attributes[1].Value;
+        rewardTimeFml = nodes[5].Attributes[1].Value;
+
+        rewardCoin = Auxiliary.FmlParse(rewardCoinFml, "c", (Manager.CircleIncome*6).ToString("0"));
+        rewardCoin = (long) rewardCoin;
+        rewardTime = (float) Auxiliary.FmlParse(rewardTimeFml);
+        rewardChance = (float) Auxiliary.FmlParse(rewardChanceFml);
+
+        //rewardChance = 1;
+        //rewardTime = 1;
+    }
+
+    public void Update()
+    {
+        timer -= Time.deltaTime;
+    }
+
+    public static void GetReward()
+    {
+        if (timer >= 0)
+        {
+            return;
+        }
+
+        if (Random.Range(0f, 1f) > rewardChance)
+        {
+            return;
+        }
+
+        Transform flyGold = ResourceManager.Get("UIFlyGold", Folder.UI, false, ResourceManager.Get(CanvasLabel.Canvas), false);
+        flyGold.transform.localPosition = new Vector3(0, 0, 0);
+        TweenRoot tweenRoot = flyGold.CreateTweenGra(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
+        tweenRoot.AddEventOnetime(EventType.ForwardFinish, () => { Destroy(flyGold.gameObject); });
+
+        Move2D move2D = new Move2D(flyGold);
+        move2D.Restrain2D = Restrain2D.Y;
+        Vector3 destination = ResourceManager.Get(CanvasLabel.C_Coin).position;
+        move2D.StartMove(destination, 0.5f, false, Curve.EaseOutQuad);
+        
+        move2D = new Move2D(flyGold);
+        move2D.Restrain2D = Restrain2D.X;
+        destination = ResourceManager.Get(CanvasLabel.C_Coin).position;
+        move2D.StartMove(destination, 0.5f, false, Curve.Linear);
+
+        DelayCall.Call
+        (
+            0.4f,
+            () =>
+            {
+                tweenRoot.StartForward();
+                Manager.AddCoin(rewardCoin, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.ClickFlower);
+            }
+        );
+
+        AudioManager.PlayClip(ResourceLabel.CurrentClip);
+
+        ResourceManager.GetHudText(string.Format("{0}+{1}", TransferLabel.CoinSprite, rewardCoin), Color.gray, 90, ResourceManager.Get("UIFlyGoldPos"), ResourceManager.Get(CanvasLabel.A_HudParent), true);
+
+        timer = rewardTime;
+    }
+}

+ 13 - 0
Assets/Script/Manage/CommentRewardManager.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 70d72bd2d06a31d419b7a0d58a9dd9b4
+timeCreated: 1525684192
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2122 - 2064
Assets/Script/Manage/ConfigManager.cs

@@ -1,2065 +1,2123 @@
-using LitJson;
-
-using UnityEngine;
-
-using System;
-using System.IO;
-using System.Xml;
-using System.Text;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using System.Security.Cryptography;
-using Sfs2X.Entities;
-using Sfs2X.Entities.Data;
-using UnityEngine.UI;
-using Random = UnityEngine.Random;
-
-public class ConfigManager : Regist
-{
-    #region Config
-
-    public static XmlNode ConfigRootNode
-    {
-        get
-        {
-            if (configRootNode == null)
-            {
-                configRootNode = ConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
-            }
-
-            return configRootNode;
-        }
-        set { configRootNode = value; }
-    }
-    public static XmlNode configRootNode;
-    public static XmlDocument ConfigDocument
-    {
-        get
-        {
-            if (configDocument == null)
-            {
-                LoadConfigDocument();
-            }
-
-            return configDocument;
-        }
-        set { configDocument = value; }
-    }
-    public static XmlDocument configDocument;
-
-    public static float UrlTimer;
-    public static bool PlayerDocumentDamageFlag;
-    public static bool IDRequestFlag;
-    public static bool SerialNumberRequestFlag = true;
-    public static XmlDocument DefaultConfigDocument = new XmlDocument();
-
-    public static int ConfigReplayVersion = -1000;
-    public static string ConfigPath
-    {
-        get
-        {
-            if (string.IsNullOrEmpty(configPath))
-            {
-                configPath = string.Format("{0}/{1}", Application.persistentDataPath, ResourceLabel.PlayerConfigXml);
-            }
-
-            return configPath;
-        }
-    }
-    public static string configPath;
-
-    #endregion
-
-    private static string UnvalidConfigMD5 = "";
-    private static void LoadConfigDocument()
-    {
-        //if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
-        //{
-        //    Debug.LogWarning("Download Archive : did not interact");
-
-        //    PlayerDocumentDamageFlag = true;
-        //    SerialNumberRequestFlag = false;
-
-        //    return;
-        //}
-
-        int defaultVersion;
-        int nativeVersion;
-
-        XmlNode node;
-        XmlDocument nativeDoc = new XmlDocument();
-
-        if (File.Exists(ConfigPath))
-        {
-            try
-            {
-                StreamReader sr = new StreamReader(ConfigPath);
-
-                nativeDoc.LoadXml(sr.ReadToEnd());
-
-                sr.Close();
-
-                Auxiliary.DecryptXml(nativeDoc);
-            }
-            catch (Exception)
-            {
-                Debug.LogWarning("Download Archive : MD5 doesn't match");
-                //ManaDebug.Log("Download Archive");
-
-                PlayerDocumentDamageFlag = true;
-                SerialNumberRequestFlag = false;
-
-                return;
-            }
-
-
-            TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default);
-
-            DefaultConfigDocument.LoadXml(textAsset.text);
-
-            defaultVersion = int.Parse(DefaultConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value);
-
-            node = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version);
-
-            if (node == null)
-            {
-                StreamWriter sw = new StreamWriter(ConfigPath);
-
-                sw.Write(DefaultConfigDocument.OuterXml);
-
-                sw.Close();
-
-                configDocument = DefaultConfigDocument;
-            }
-            else
-            {
-                nativeVersion = int.Parse(node.Attributes[0].Value);
-
-                if (nativeVersion == ConfigReplayVersion)
-                {
-                    configDocument = DefaultConfigDocument;
-                    int currentReplayVersion = int.Parse(nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ReplayVersion).Attributes[0].Value);
-                    SaveIntToConfig(PlayerConfigLabel.ReplayVersion, currentReplayVersion + 1);
-                    //Debug.Log(currentReplayVersion);
-                }
-                else if (nativeVersion < defaultVersion)
-                {
-                    byte[] bytes;
-
-                    MD5 md5 = new MD5CryptoServiceProvider();
-
-                    if (nativeVersion <= 4)
-                    {
-                        bytes = Encoding.UTF8.GetBytes(nativeDoc.OuterXml);
-                    }
-                    else
-                    {
-                        bytes = File.ReadAllBytes(ConfigPath);
-                    }
-
-                    if (PlayerPrefs.GetString(Lib.ConfigPrefs) != UnvalidConfigMD5 && PlayerPrefs.GetString(Lib.ConfigPrefs) != Auxiliary.ToString(md5.ComputeHash(bytes)))
-                    {
-                        Debug.LogWarning("Download Archive : MD5 doesn't match");
-                        //ManaDebug.Log("Download Archive");
-
-                        PlayerDocumentDamageFlag = true;
-                        SerialNumberRequestFlag = false;
-
-                        return;
-                    }
-                    else
-                    {
-                        configDocument = UpdateConfigDocument(nativeVersion, nativeDoc, DefaultConfigDocument);
-
-                        //HttpManager.UploadConfig();
-                    }
-                }
-                else if (nativeVersion > defaultVersion)
-                {
-                    //configDocument = DefaultConfigDocument;
-                }
-                else
-                {
-                    byte[] bytes = File.ReadAllBytes(ConfigPath);
-
-                    MD5 md5 = new MD5CryptoServiceProvider();
-
-                    if (PlayerPrefs.GetString(Lib.ConfigPrefs) != UnvalidConfigMD5 && PlayerPrefs.GetString(Lib.ConfigPrefs) != Auxiliary.ToString(md5.ComputeHash(bytes)))
-                    {
-                        Debug.LogWarning("Download Archive : MD5 doesn't match");
-                        //ManaDebug.Log("Download Archive");
-
-                        PlayerDocumentDamageFlag = true;
-                        SerialNumberRequestFlag = false;
-
-                        return;
-                    }
-
-                    configDocument = nativeDoc;
-                }
-            }
-        }
-        else
-        {
-            TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default);
-
-            DefaultConfigDocument.LoadXml(textAsset.text);
-
-            Debug.LogWarning("Download Archive");
-            //ManaDebug.Log("Download Archive");
-
-            PlayerDocumentDamageFlag = true;
-            SerialNumberRequestFlag = false;
-
-            return;
-        }
-    }
-
-
-    private float MaxUrlWaitTime = 10;
-    public void Update()
-    {
-        if (PlayerDocumentDamageFlag)
-        {
-            UrlTimer += Time.deltaTime;
-
-            if (UrlTimer >= MaxUrlWaitTime)
-            {
-                PlayerDocumentDamageFlag = false;
-
-                TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default);
-
-                configDocument = new XmlDocument();
-
-                configDocument.LoadXml(textAsset.text);
-
-                return;
-            }
-        }
-
-        if (!SerialNumberRequestFlag)
-        {   
-            if (HttpManager.SerialNumber != PlayerConfigLabel.DefaultSerialNumber)
-            {
-                SerialNumberRequestFlag = true;
-
-                HttpManager.GetConfigBySerialNumber(HttpManager.SerialNumber, RecoveConfigDocument);
-            }
-        }
-    }
-
-    public override bool InitAtOnce()
-    {
-        if (base.InitAtOnce())
-        {
-            return true;
-        }
-
-        enabled = true;
-
-        return false;
-    }
-
-
-    public static void RecoveConfigDocument(JsonData jsonData)
-    {
-        if (!PlayerDocumentDamageFlag)
-        {
-            return;
-        }
-
-        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default);
-
-        DefaultConfigDocument.LoadXml(textAsset.text);
-        //Debug.Log(jsonData.ToJson());
-        if (jsonData.Inst_Object.Keys.Contains("l"))
-        {
-            XmlDocument recoverdDocument = new XmlDocument();
-
-            recoverdDocument.LoadXml(jsonData["l"].ToString());
-
-            int RecoverdVersion = int.Parse(recoverdDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value);
-            int DefaultVersion = int.Parse(DefaultConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value);
-
-            PlayerDocumentDamageFlag = false;
-            if (RecoverdVersion <= DefaultVersion)
-            {
-                UpdateConfigDocument(RecoverdVersion, recoverdDocument, DefaultConfigDocument);
-                configDocument = recoverdDocument;
-                PlayerPrefManager.SaveBool(PlayerPrefManager.INTERACT_CONFIG, true);
-            }
-            else if (RecoverdVersion > DefaultVersion)
-            {
-                //configDocument = DefaultConfigDocument;
-            }
-        }
-        else
-        {
-            if (!IDRequestFlag)
-            {
-                if (HttpManager.ID != PlayerConfigLabel.DefaultID)
-                {
-                    IDRequestFlag = true;
-                    Debug.LogWarning("DownloadByID");
-
-                    HttpManager.GetConfigByID(HttpManager.ID, RecoveConfigDocument);
-                }
-                else
-                {
-                    Debug.LogWarning("Use Default");
-                    configDocument = DefaultConfigDocument;
-                    PlayerDocumentDamageFlag = false;
-                }
-            }
-            else
-            {
-                Debug.LogWarning("Use Default");
-                configDocument = DefaultConfigDocument;
-                PlayerDocumentDamageFlag = false;
-            }
-        }
-    }
-
-
-    public static void SaveSkillList()
-    {
-        if (TutorialManager.NewplayerTutorial || !Manager.Inited)
-        {
-            return;
-        }
-        
-        XmlNode xmlNode;
-        XmlAttribute xmlAttribute;
-
-        xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
-        xmlNode.RemoveAll();
-
-        for (int i = 0; i < Manager.SkillList.Count; i++)
-        {
-            if (Manager.SkillList[i].SkillType == SkillType.Skill)
-            {
-                #region Skill
-
-                Skill skill = (Skill)Manager.SkillList[i];
-
-                xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
-                xmlAttribute.Value = skill.FullID;
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
-                xmlAttribute.Value = skill.SkillType.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
-                xmlAttribute.Value = skill.ItemStatus.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
-                xmlAttribute.Value = skill.Level.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.CoolTimer));
-                xmlAttribute.Value = skill.CoolTimer.ToString("0");
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.UseTimer));
-                xmlAttribute.Value = skill.UseTimer.ToString("0");
-
-                xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
-
-                #endregion
-            }
-            else if (Manager.SkillList[i].SkillType == SkillType.Pack)
-            {
-                #region Pack
-
-                Pack pack = (Pack)Manager.SkillList[i];
-
-                xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
-                xmlAttribute.Value = pack.FullID;
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
-                xmlAttribute.Value = pack.SkillType.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
-                xmlAttribute.Value = pack.ItemStatus.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
-                xmlAttribute.Value = pack.Level.ToString();
-
-                xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
-
-                #endregion
-            }
-            else if (Manager.SkillList[i].SkillType == SkillType.Ability)
-            {
-                #region Ability
-
-                Ability ability = (Ability)Manager.SkillList[i];
-
-                xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
-                xmlAttribute.Value = ability.FullID;
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
-                xmlAttribute.Value = ability.SkillType.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
-                xmlAttribute.Value = ability.ItemStatus.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
-                xmlAttribute.Value = ability.Level.ToString();
-
-                xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
-
-                #endregion
-            }
-            else if (Manager.SkillList[i].SkillType == SkillType.BigSkill)
-            {
-                #region BigSkill
-
-                BigSkill bigSkill = (BigSkill)Manager.SkillList[i];
-
-                xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
-                xmlAttribute.Value = bigSkill.FullID;
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
-                xmlAttribute.Value = bigSkill.SkillType.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
-                xmlAttribute.Value = bigSkill.ItemStatus.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.BarStatus));
-                xmlAttribute.Value = bigSkill.BarStatus.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
-                xmlAttribute.Value = bigSkill.Level.ToString();
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.CoolTimer));
-                xmlAttribute.Value = bigSkill.CoolTimer.ToString("0");
-
-                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.UseTimer));
-                xmlAttribute.Value = bigSkill.UseTimer.ToString("0");
-
-                xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
-
-                #endregion
-            }
-        }
-    }
-
-    public static void SaveDress()
-    {
-        XmlNode xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressList);
-        xmlNode.Attributes[0].Value = "";
-
-        for (int i = 0; i < PlayerManager.BoughtCloseIDs.Count; i++)
-        {
-            xmlNode.Attributes[0].Value += PlayerManager.BoughtCloseIDs[i] + " ";
-        }
-
-        xmlNode.Attributes[0].Value = xmlNode.Attributes[0].Value.TrimEnd(' ');
-
-
-        xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressData);
-
-        for (int i = 0; i < PlayerManager.DressDatas.Count; i++)
-        {
-            xmlNode.Attributes[i].Value = PlayerManager.DressDatas[i];
-        }
-    }
-
-    public static void SaveAchieve()
-    {
-        XmlNode xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveList);
-        xmlNode.Attributes[0].Value = "";
-
-        foreach (var kv in AchieveManager.AchieveItemDictionary)
-        {
-            if (!kv.Value.Lock)
-            {
-                xmlNode.Attributes[0].Value += kv.Value.ID + " ";
-            }
-        }
-
-        xmlNode.Attributes[0].Value = xmlNode.Attributes[0].Value.TrimEnd(' ');
-
-
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[0].Value = Manager.PlayADsAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[1].Value = Manager.UseSkillAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[2].Value = Manager.SignAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[3].Value = Manager.ShareAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[4].Value = Manager.AllElfLevel.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[5].Value = Manager.PlayMinigameAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[6].Value = Manager.TotalFlowerAwardCoin.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[7].Value = Manager.TotalVisitPerson.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[8].Value = Manager.TotalSpendDiamond.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[9].Value = Manager.CreateRoomAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[10].Value = Manager.CreateChestAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[11].Value = Manager.CreateLuckyChestAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[12].Value = Manager.CreateGuessColorChestAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[13].Value = Manager.CreateGuessNumberChestAmt.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[14].Value = Manager.GetChestAwardAmt.ToString("0");
-    }
-
-    public static void SavePlantList()
-    {
-        if (VisitManager.InVisit || TutorialManager.NewplayerTutorial)
-        {
-            return;
-        }
-        
-        XmlAttributeCollection attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.PlantList).Attributes;
-
-        attribute[0].Value = "";
-
-        for (int i = 0; i < GardenManager.PlantSlotList.Count; i++)
-        {
-            Slot slot = GardenManager.PlantSlotList[i];
-            
-            attribute[0].Value += slot.ID + "," + slot.Index + " ";
-        }
-
-        attribute[0].Value = attribute[0].Value.TrimEnd(' ');
-    }
-
-    public static void SaveDatas()
-    {
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Coin).Attributes[0].Value = Manager.Coin.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Diamond).Attributes[0].Value = Manager.Diamond.ToString("0");
-        
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SignTime).Attributes[0].Value = SignManager.LastSignTime.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SignIndex).Attributes[0].Value = SignManager.SignIndex.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SignRound).Attributes[0].Value = SignManager.SignRound.ToString();
-        
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.QuitFlag).Attributes[0].Value = HttpManager.IsConnect.ToInt().ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.QuitTime).Attributes[0].Value = HttpManager.CurrentDateTime.ToString();
-
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MiniTimer).Attributes[0].Value = Manager.MinigameCDTimer.ToString("0");
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.CircleTimer).Attributes[0].Value = Manager.IncomeCircleTimer.ToString("0");
-
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.ID).Attributes[0].Value = HttpManager.ID;
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SerialNumber).Attributes[0].Value = HttpManager.SerialNumber;
-
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Language).Attributes[0].Value = LanguageManager.CurrentLanguage.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MiniGameIndex).Attributes[0].Value = MiniGameManager.MiniGameIndex.ToString();
-
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.NewplayerTutorial).Attributes[0].Value = TutorialManager.NewplayerTutorial.ToInt().ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MemoryMinigameTutorial).Attributes[0].Value = TutorialManager.memoryMinigameTutorial.ToInt().ToString();
-
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.VisitTutorial).Attributes[0].Value = TutorialManager.visitTutorial.ToInt().ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressroomTutorial).Attributes[0].Value = TutorialManager.dressroomTutorial.ToInt().ToString();
-
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FashionShowTutorial).Attributes[0].Value = TutorialManager.fashionShowTutorial.ToInt().ToString();
-
-        if (TutorialManager.findSoloMinigameTutorial || TutorialManager.FindSoloMinigameTutorial)
-        {
-            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindSoloMinigameTutorial).Attributes[0].Value = "1";
-        }
-        else
-        {
-            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindSoloMinigameTutorial).Attributes[0].Value = "0";
-        }
-        if (TutorialManager.findMissingMinigameTutorial || TutorialManager.FindMissingMinigameTutorial)
-        {
-            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial).Attributes[0].Value = "1";
-        }
-        else
-        {
-            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial).Attributes[0].Value = "0";
-        }
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.TutorialPlazaRoom).Attributes[0].Value = TutorialManager.plazaRoomTutorial.ToInt().ToString();
-
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.NewplayerTutorialIndex).Attributes[0].Value = TutorialManager.NewplayerTutorialIndex.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MemoryMinigameTutorialIndex).Attributes[0].Value = TutorialManager.MemoryMinigameTutorialIndex.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.VisitTutorialIndex).Attributes[0].Value = TutorialManager.VisitTutorialIndex.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressroomIndex).Attributes[0].Value = TutorialManager.DressroomTutorialIndex.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindSoloMinigameTutorialIndex).Attributes[0].Value = TutorialManager.FindSoloMinigameTutorialIndex.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorialIndex).Attributes[0].Value = TutorialManager.FindMissingMinigameTutorialIndex.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.TutorialIndexPlazaRoom).Attributes[0].Value = TutorialManager.PlazaRoomTutorialIndex.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FashionShowTutorialIndex).Attributes[0].Value = TutorialManager.FashionShowTutorialIndex.ToString();
-    }
-
-    public static void SaveFlowers()
-    {
-        XmlAttribute attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FlowerList).Attributes[0];
-        XmlAttribute attribute1 = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FlowerAmtList).Attributes[0];
-
-        attribute.Value = "";
-        attribute1.Value = "";
-
-        foreach (var kv in GardenManager.GetFlowerInfoDict())
-        {
-            if (kv.Value.Unlock)
-            {
-                attribute.Value += kv.Value.ID + " ";
-                attribute1.Value += kv.Value.Amount + " ";
-            }
-        }
-
-        attribute.Value = attribute.Value.Trim(' ');
-        attribute1.Value = attribute1.Value.Trim(' ');
-    }
-
-    public static void SaveConfigDocument()
-    {
-        if (Initializer.Inited)
-        {
-            SaveSkillList();
-            SaveAchieve();
-            SaveDress();
-            SavePlantList();
-            SaveDatas();
-            SaveFlowers();
-            ChestManager.SaveToConfig();
-        }
-    }
-
-    public static void SaveConfigDocumentToDisk()
-    {
-        if (Initializer.Inited)
-        {
-            XmlDocument doc = new XmlDocument();
-
-            doc.LoadXml(ConfigDocument.OuterXml);
-
-            Auxiliary.EncryptXml(doc);
-
-            StreamWriter sw = new StreamWriter(ConfigPath);
-
-            sw.Write(doc.OuterXml);
-
-            sw.Close();
-
-            byte[] bytes = File.ReadAllBytes(ConfigPath);
-            //byte[] bytes = Encoding.UTF8.GetBytes(PlayerDoc.OuterXml);
-
-            MD5 md5 = new MD5CryptoServiceProvider();
-
-            PlayerPrefs.SetString(Lib.ConfigPrefs, Auxiliary.ToString(md5.ComputeHash(bytes)));
-        }
-    }
-
-
-    public static void ResetConfigDocument()
-    {
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = ConfigReplayVersion.ToString();
-
-        SaveConfigDocument();
-
-        Manager.UploadConfigFlag = true;
-        Manager.DownloadConfigFlag = true;
-
-        SaveConfigDocumentToDisk();
-
-        DelayCall.Call
-        (
-            1,
-            () =>
-            {
-                Bubble.Show(null, Language.GetStr(LanguageLabel.UI__La_Lab0), null, null, () => { Application.Quit(); }, null, false);
-            }
-        );
-    }
-
-
-    public static int GetIntFormConfig(string node)
-    {
-        return int.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value);
-    }
-
-    public static bool GetBoolFormConfig(string node)
-    {
-        return int.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value).ToBool();
-    }
-
-    public static float GetFloatFormConfig(string node)
-    {
-        return float.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value);
-    }
-
-    public static string GetStringFormConfig(string node)
-    {
-        return ConfigRootNode.SelectSingleNode(node).Attributes[0].Value;
-    }
-
-    public static double GetDoubleFormConfig(string node)
-    {
-        return double.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value);
-    }
-
-
-    public static void SaveIntToConfig(string node, int value)
-    {
-        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToString();
-    }
-
-    public static void SaveBoolToConfig(string node, bool value)
-    {
-        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToInt().ToString();
-    }
-
-    public static void SaveFloatToConfig(string node, float value)
-    {
-        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToString();
-    }
-
-    public static void SaveStringToConfig(string node, string value)
-    {
-        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value;
-    }
-
-    public static void SaveDoubleToConfig(string node, double value)
-    {
-        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToString();
-    }
-
-
-    public static List<int> GetIntList(char splitChar, string nodeName, List<int> defaultList)
-    {
-        return Auxiliary.StringToInts(splitChar, ConfigRootNode.SelectSingleNode(nodeName).Attributes[0].Value, defaultList);
-    }
-
-    public static List<string> GetStringList(char splitChar, string nodeName, List<string> defaultList)
-    {
-        return Auxiliary.StringToStrings(splitChar, ConfigRootNode.SelectSingleNode(nodeName).Attributes[0].Value, defaultList);
-    }
-
-
-    public static List<int> GetDressList()
-    {
-        List<int> list = new List<int>();
-
-        XmlAttributeCollection attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressList).Attributes;
-
-        return Auxiliary.StringToInts(' ', attribute[0].Value, list);
-    }
-
-    public static List<int> GetDressDataIDs(Player player)
-    {
-        //foreach (var VARIABLE in ManaPlayer.CloseIDDic)
-        //{
-        //    Debug.LogWarning(VARIABLE.Key);
-        //}
-
-        List<int> dressDataIDs = new List<int>();
-
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Head]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Dress]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Shoe]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.HeadWear]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Top]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Eye]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Mouse]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Wing]);
-
-        return dressDataIDs;
-    }
-
-    public static List<int> GetDressDataIDs(List<string> dressdataNames)
-    {
-        //foreach (var VARIABLE in ManaPlayer.CloseIDDic)
-        //{
-        //    Debug.LogWarning(VARIABLE.Key);
-        //}
-
-        List<int> dressDataIDs = new List<int>();
-
-        int index = 0;
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
-        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
-
-        return dressDataIDs;
-    }
-
-    public static List<int> GetDressDataIDs(ISFSObject parameter)
-    {
-        List<int> ids = parameter.GetIntArray(InfoLabel.Close.GetHashString()).ToList();
-
-        return ids;
-    }
-
-    public static List<string> GetDressData(SFSObject parameter)
-    {
-        List<int> ids = GetDressDataIDs(parameter);
-
-        List<string> dressData = new List<string>();
-
-        foreach (var id in ids)
-        {
-            dressData.Add(PlayerManager.CloseItemDictionary[id].ArmatureName);
-        }
-
-        return dressData;
-    }
-
-    public static List<string> GetDressData(XmlNode node = null)
-    {
-        XmlNode xmlNode;
-
-        if (node == null)
-        {
-            xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressData);
-        }
-        else
-        {
-            xmlNode = node.SelectSingleNode(PlayerConfigLabel.DressData);
-        }
-
-
-        List<string> dataList = new List<string>();
-
-        if (xmlNode != null && xmlNode.Attributes.Count == 12)
-        {
-            dataList.Add(xmlNode.Attributes[0].Value);
-            dataList.Add(xmlNode.Attributes[1].Value);
-            dataList.Add(xmlNode.Attributes[2].Value);
-            dataList.Add(xmlNode.Attributes[3].Value);
-            dataList.Add(xmlNode.Attributes[4].Value);
-            dataList.Add(xmlNode.Attributes[5].Value);
-            dataList.Add(xmlNode.Attributes[6].Value);
-            dataList.Add(xmlNode.Attributes[7].Value);
-			dataList.Add(xmlNode.Attributes[8].Value);
-			dataList.Add(xmlNode.Attributes[9].Value);
-			dataList.Add(xmlNode.Attributes[10].Value);
-			dataList.Add(xmlNode.Attributes[11].Value);
-
-            //dataList[8] = "长袖9左";
-            //dataList[9] = "Empty";
-            //dataList[10] = "长袖9右";
-            //dataList[11] = "Empty";
-        }
-		else if(xmlNode != null && xmlNode.Attributes.Count == 8)
-		{
-			dataList.Add(xmlNode.Attributes[0].Value);
-			dataList.Add(xmlNode.Attributes[1].Value);
-			dataList.Add(xmlNode.Attributes[2].Value);
-			dataList.Add(xmlNode.Attributes[3].Value);
-			dataList.Add(xmlNode.Attributes[4].Value);
-			dataList.Add(xmlNode.Attributes[5].Value);
-			dataList.Add(xmlNode.Attributes[6].Value);
-			dataList.Add(xmlNode.Attributes[7].Value);
-			dataList.AddRange (GetSleeveListByTop(xmlNode.Attributes[4].Value));
-		}
-        else
-        {
-            float rate = Random.Range(0f, 1f);
-
-            if (rate < 0.33f)
-            {
-                dataList.Add("脑壳1");
-                dataList.Add("裙子1");
-                dataList.Add("鞋子1");
-                dataList.Add("头饰品1");
-                dataList.Add("上衣1");
-                dataList.Add("眼睛1");
-                dataList.Add("嘴巴1");
-                dataList.Add("Empty");
-				dataList.Add("Empty");
-				dataList.Add("短袖1左");
-				dataList.Add("Empty");
-				dataList.Add("短袖1右");
-            }
-            else if (rate < 0.66f)
-            {
-                dataList.Add("脑壳2");
-                dataList.Add("裙子2");
-                dataList.Add("鞋子2");
-                dataList.Add("头饰品2");
-                dataList.Add("上衣2");
-                dataList.Add("眼睛2");
-                dataList.Add("嘴巴2");
-                dataList.Add("Empty");
-				dataList.Add("Empty");
-				dataList.Add("短袖2左");
-				dataList.Add("Empty");
-				dataList.Add("短袖2右");
-            }
-            else
-            {
-                dataList.Add("脑壳3");
-                dataList.Add("裙子3");
-                dataList.Add("鞋子3");
-                dataList.Add("头饰品3");
-                dataList.Add("上衣3");
-                dataList.Add("眼睛3");
-                dataList.Add("嘴巴3");
-                dataList.Add("Empty");
-				dataList.Add("Empty");
-				dataList.Add("短袖2左");
-				dataList.Add("Empty");
-				dataList.Add("短袖2右");
-            }
-        }
-
-        return dataList;
-    }
-
-    public static List<int> GetFlowerList()
-    {
-        List<int> list = new List<int>();
-
-        XmlAttributeCollection attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FlowerList).Attributes;
-
-        return Auxiliary.StringToInts(' ', attribute[0].Value, list);
-    }
-
-    public static List<int> GetLockAchieveIDs()
-    {
-        return Auxiliary.StringToInts(' ', GetStringFormConfig(PlayerConfigLabel.AchieveList), new List<int>());
-    }
-
-    public static List<double> GetAchieveValues()
-    {
-        List<double> dataList = new List<double>();
-
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[0].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[1].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[2].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[3].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[4].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[5].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[6].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[7].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[8].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[9].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[10].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[11].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[12].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[13].Value));
-        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[14].Value));
-
-        return dataList;
-    }
-
-    public static List<KV<int, int>> GetPlantList(XmlNode node = null)
-    {
-        List<KV<int, int>> list = new List<KV<int, int>>();
-
-        XmlNode xmlNode;
-
-        if (node == null)
-        {
-            xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.PlantList);
-        }
-        else
-        {
-            xmlNode = node.SelectSingleNode(PlayerConfigLabel.PlantList);
-        }
-
-        if (!string.IsNullOrEmpty(xmlNode.Attributes[0].Value))
-        {
-            string[] strings = xmlNode.Attributes[0].Value.Split(' ');
-
-            for (int i = 0; i < strings.Length; i++)
-            {
-                list.Add(new KV<int, int>(int.Parse(strings[i].Split(',')[0]), int.Parse(strings[i].Split(',')[1])));
-            }
-        }
-
-        return list;
-    }
-
-    public static List<XmlAttributeCollection> GetSkillList(XmlNode node = null)
-    {
-        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-
-        XmlNodeList xmlNodeList;
-
-        if (node == null)
-        {
-            xmlNodeList = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
-        }
-        else
-        {
-            xmlNodeList = node.SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
-        }
-
-        for (int i = 0; i < xmlNodeList.Count; i++)
-        {
-            attributeList.Add(xmlNodeList[i].Attributes);
-        }
-
-        return attributeList;
-    }
-
-
-    public static List<string> GetOfflineConfig()
-    {
-        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.OfflineConfig, Folder.Config);
-
-        XmlDocument xmlDoc = new XmlDocument();
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
-
-        List<string> strList = new List<string>()
-        {
-            xmlNode.Attributes[1].Value,
-            xmlNode.Attributes[2].Value,
-            xmlNode.Attributes[3].Value,
-        };
-
-        return strList;
-    }
-
-    public static XmlAttributeCollection GetVisitConfig()
-    {
-        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.VisitConfig, Folder.Config);
-
-        XmlDocument xmlDoc = new XmlDocument();
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
-
-        return xmlNode.Attributes;
-    }
-
-    public static XmlAttributeCollection GetPlazaRoomConfig()
-    {
-        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlazaroomConfig, Folder.Config);
-
-        XmlDocument xmlDoc = new XmlDocument();
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
-
-        return xmlNode.Attributes;
-    }
-
-    public static XmlAttributeCollection GetAwardConfig()
-    {
-        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.AwardConfig, Folder.Config);
-
-        XmlDocument xmlDoc = new XmlDocument();
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
-
-        return xmlNode.Attributes;
-    }
-
-    public static List<XmlAttributeCollection> GetIAPConfig()
-    {
-        TextAsset textAsset;
-        XmlNodeList xmlNodeList;
-
-        XmlDocument xmlDoc = new XmlDocument();
-        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-
-
-        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.IAPConfig, Folder.Config);
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
-
-        for (int i = 0; i < xmlNodeList.Count; i++)
-        {
-            attributeList.Add(xmlNodeList[i].Attributes);
-        }
-
-        return attributeList;
-    }
-
-    public static List<XmlAttributeCollection> GetSkillConfig()
-    {
-        TextAsset textAsset;
-        XmlDocument xmlDoc = new XmlDocument();
-        List<XmlNodeList> xmlNodeList = new List<XmlNodeList>();
-        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-        
-        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PackConfig, Folder.Config);
-        xmlDoc.LoadXml(textAsset.text);
-        xmlNodeList.Add(xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode));
-        
-        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.SkillConfig, Folder.Config);
-        xmlDoc.LoadXml(textAsset.text);
-        xmlNodeList.Add(xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode));
-        
-        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.AbilityConfig, Folder.Config);
-        xmlDoc.LoadXml(textAsset.text);
-        xmlNodeList.Add(xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode));
-
-        for (int i = 0; i < xmlNodeList.Count; i++)
-        {
-            for (int j = 0; j < xmlNodeList[i].Count; j++)
-            {
-                attributeList.Add(xmlNodeList[i][j].Attributes);
-            }
-        }
-
-        return attributeList;
-    }
-
-    public static List<XmlAttributeCollection> GetSignConfig()
-    {
-        TextAsset textAsset;
-        XmlNodeList xmlNodeList;
-
-        XmlDocument xmlDoc = new XmlDocument();
-        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-        
-
-        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.SigninConfig, Folder.Config);
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
-        
-        for (int i = 0; i < xmlNodeList.Count; i++)
-        {
-            attributeList.Add(xmlNodeList[i].Attributes);
-        }
-
-        return attributeList;
-    }
-
-    public static List<XmlAttributeCollection> GetFlowerConfig(TextAsset textAsset = null)
-    {
-        XmlNodeList xmlNodeList;
-
-        XmlDocument xmlDoc = new XmlDocument();
-        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-
-        if (textAsset == null)
-        {
-            textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.FlowerConfig, Folder.Config);
-        }
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
-
-        for (int i = 0; i < xmlNodeList.Count; i++)
-        {
-            attributeList.Add(xmlNodeList[i].Attributes);
-        }
-
-        return attributeList;
-    }
-
-    public static List<XmlAttributeCollection> GetLotteryConfig()
-    {
-        TextAsset textAsset;
-        XmlNodeList xmlNodeList;
-
-        XmlDocument xmlDoc = new XmlDocument();
-        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-
-
-        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.LotteryConfig, Folder.Config);
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
-
-        for (int i = 0; i < xmlNodeList.Count; i++)
-        {
-            attributeList.Add(xmlNodeList[i].Attributes);
-        }
-
-        return attributeList;
-    }
-
-    public static List<XmlAttributeCollection> GetAchieveConfig()
-    {
-        TextAsset textAsset;
-        XmlNodeList xmlNodeList;
-
-        XmlDocument xmlDoc = new XmlDocument();
-        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-
-
-        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.AchieveConfig, Folder.Config);
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
-
-        for (int i = 0; i < xmlNodeList.Count; i++)
-        {
-            attributeList.Add(xmlNodeList[i].Attributes);
-        }
-
-        return attributeList;
-    }
-
-    public static List<XmlAttributeCollection> GetDressRoomConfig(TextAsset textAsset = null)
-    {
-        XmlNodeList xmlNodeList;
-
-        XmlDocument xmlDoc = new XmlDocument();
-        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-
-        if (textAsset == null)
-        {
-            textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.DressroomConfig, Folder.Config);
-        }
-
-        xmlDoc.LoadXml(textAsset.text);
-
-        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
-
-        for (int i = 0; i < xmlNodeList.Count; i++)
-        {
-            attributeList.Add(xmlNodeList[i].Attributes);
-        }
-
-        return attributeList;
-    }
-
-
-    public static int GetGardenLevel(XmlDocument xmlDocument)
-    {
-        XmlNodeList nodeList = xmlDocument.SelectNodes(PlayerConfigLabel.RootNode + "/" + PlayerConfigLabel.SkillList + "/" + PlayerConfigLabel.Skill);
-        for (int i = 0; i < nodeList.Count; i++)
-        {
-            if (nodeList[i].Attributes[0].Value == "Ability1")
-            {
-                return int.Parse(nodeList[i].Attributes[3].Value);
-            }
-        }
-        return -1;
-    }
-
-    public static int GetConfigVersion(XmlDocument xmlDocument)
-    {
-        return int.Parse(xmlDocument.SelectSingleNode(PlayerConfigLabel.RootNode + "/" + PlayerConfigLabel.Version).Attributes[0].Value);
-    }
-
-    public static List<string> GetDefaultDressDatas()
-    {
-        List<string> defaultDressDatas = new List<string>();
-        defaultDressDatas.Add("脑壳-缺失");
-        defaultDressDatas.Add("裙子-缺失");
-        defaultDressDatas.Add("鞋子-缺失");
-        defaultDressDatas.Add("头饰-缺失");
-        defaultDressDatas.Add("上衣-缺失");
-        defaultDressDatas.Add("眼睛1");
-        defaultDressDatas.Add("嘴巴1");
-        defaultDressDatas.Add("翅膀-缺失");
-        defaultDressDatas.Add("Empty");
-        defaultDressDatas.Add("Empty");
-        defaultDressDatas.Add("Empty");
-        defaultDressDatas.Add("Empty");
-
-        //defaultDressDatas.Add("脑壳1");
-        //defaultDressDatas.Add("裙子1");
-        //defaultDressDatas.Add("鞋子1");
-        //defaultDressDatas.Add("头饰品1");
-        //defaultDressDatas.Add("上衣1");
-        //defaultDressDatas.Add("眼睛1");
-        //defaultDressDatas.Add("嘴巴1");
-        //defaultDressDatas.Add("Empty");
-        //defaultDressDatas.Add("Empty");
-        //defaultDressDatas.Add("短袖2左");
-        //defaultDressDatas.Add("Empty");
-        //defaultDressDatas.Add("短袖2右");
-
-        return defaultDressDatas;
-    }
-
-
-    public static XmlDocument GetXmlDocument(string ConfigName)
-    {
-        TextAsset textAsset = ResourceManager.Load<TextAsset>(ConfigName, Folder.Config);
-        XmlDocument xmlDocument = new XmlDocument();
-        xmlDocument.LoadXml(textAsset.text);
-        return xmlDocument;
-    }
-
-
-    //玩家存档版本大于默认存档版本时需要清空
-    //玩家存档版本小于默认存档版本时需要更新
-    //玩家存档版本等于ReplayVersion时需要标记为重玩
-    public static XmlDocument UpdateConfigDocument(int nativeVersion, XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        if (nativeVersion < 0)
-        {
-            Debug.LogWarning("UpdateArchive to 0");
-
-            ToVersion0(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 1)
-        {
-            Debug.LogWarning("UpdateArchive to 1");
-
-            ToVersion1(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 2)
-        {
-            Debug.LogWarning("UpdateArchive to 2");
-
-            ToVersion2(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 3)
-        {
-            Debug.LogWarning("UpdateArchive to 3");
-
-            ToVersion3(nativeDoc, defaultDoc);
-        }
-
-		if (nativeVersion < 4)
-		{
-			Debug.LogWarning("UpdateArchive to 4");
-
-			ToVersion4(nativeDoc, defaultDoc);
-		}
-
-        if (nativeVersion < 5)
-        {
-            Debug.LogWarning("UpdateArchive to 5");
-
-            ToVersion5(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 6)
-        {
-            Debug.LogWarning("UpdateArchive to 6");
-
-            ToVersion6(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 7)
-        {
-            Debug.LogWarning("UpdateArchive to 7");
-
-            ToVersion7(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 8)
-        {
-            Debug.LogWarning("UpdateArchive to 8");
-
-            ToVersion8(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 9)
-        {
-            Debug.LogWarning("UpdateArchive to 9");
-
-            ToVersion9(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 10)
-        {
-            Debug.LogWarning("UpdateArchive to 10");
-
-            ToVersion10(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 11)
-        {
-            Debug.LogWarning("UpdateArchive to 11");
-
-            ToVersion11(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 12)
-        {
-            Debug.LogWarning("UpdateArchive to 12");
-
-            ToVersion12(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 13)
-        {
-            Debug.LogWarning("UpdateArchive to 13");
-
-            ToVersion13(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 14)
-        {
-            Debug.LogWarning("UpdateArchive to 14");
-
-            ToVersion14(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 15)
-        {
-            Debug.LogWarning("UpdateArchive to 15");
-
-            ToVersion15(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 16)
-        {
-            Debug.LogWarning("UpdateArchive to 16");
-
-            ToVersion16(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 17)
-        {
-            Debug.LogWarning("UpdateArchive to 17");
-
-            ToVersion17(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 18)
-        {
-            Debug.LogWarning("UpdateArchive to 18");
-
-            ToVersion18(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 19)
-        {
-            Debug.LogWarning("UpdateArchive to 19");
-
-            ToVersion19(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 20)
-        {
-            Debug.LogWarning("UpdateArchive to 20");
-
-            ToVersion20(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 21)
-        {
-            Debug.LogWarning("UpdateArchive to 21");
-
-            ToVersion21(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 22)
-        {
-            Debug.LogWarning("UpdateArchive to 22");
-
-            ToVersion22(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 23)
-        {
-            Debug.LogWarning("UpdateArchive to 23");
-
-            ToVersion23(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 24)
-        {
-            Debug.LogWarning("UpdateArchive to 24");
-
-            ToVersion24(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 25)
-        {
-            Debug.LogWarning("UpdateArchive to 25");
-
-            ToVersion25(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 26)
-        {
-            Debug.LogWarning("UpdateArchive to 26");
-
-            ToVersion26(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 28)
-        {
-            Debug.LogWarning("UpdateArchive to 28");
-
-            ToVersion28(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 29)
-        {
-            Debug.LogWarning("UpdateArchive to 29");
-
-            ToVersion29(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 30)
-        {
-            Debug.LogWarning("UpdateArchive to 30");
-
-            ToVersion30(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 31)
-        {
-            Debug.LogWarning("UpdateArchive to 31");
-
-            ToVersion31(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 32)
-        {
-            Debug.LogWarning("UpdateArchive to 32");
-
-            ToVersion32(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 33)
-        {
-            Debug.LogWarning("UpdateArchive to 33");
-
-            ToVersion33(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 34)
-        {
-            Debug.LogWarning("UpdateArchive to 34");
-
-            ToVersion34(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 35)
-        {
-            Debug.LogWarning("UpdateArchive to 35");
-
-            ToVersion35(nativeDoc, defaultDoc);
-        }
-
-        if (nativeVersion < 36)
-        {
-            Debug.LogWarning("UpdateArchive to 36");
-
-            ToVersion36(nativeDoc, defaultDoc);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion0(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 0.ToString();
-
-        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ADPlayTime);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion1(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 1.ToString();
-
-        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SerialNumber);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion2(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 2.ToString();
-
-        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NotificationIndex);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion3(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 3.ToString();
-
-        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NickName);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
-
-        return nativeDoc;
-    }
-
-	public static XmlDocument ToVersion4(XmlDocument nativeDoc, XmlDocument defaultDoc)
-	{
-		nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 4.ToString();
-
-		XmlNode xmlNode = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.DressData);
-
-		XmlAttribute attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.LeftLongSleeveSlot));
-		attribute.Value="Empty";
-
-		attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.LeftShortSleeveSlot));
-		attribute.Value="Empty";
-
-		attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.RightLongSleeveSlot));
-		attribute.Value="Empty";
-
-		attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.RightShortSleeveSlot));
-		attribute.Value="Empty";
-
-		List<string> sleeveList = GetSleeveListByTop (xmlNode.Attributes [4].Value);
-
-		xmlNode.Attributes [8].Value = sleeveList[0];
-		xmlNode.Attributes [9].Value = sleeveList[1];
-		xmlNode.Attributes [10].Value = sleeveList[2];
-		xmlNode.Attributes [11].Value = sleeveList[3];
-
-		return nativeDoc;
-	}
-
-    public static List<string> GetSleeveListByTop(string topName)
-    {
-        List<string> sleeveList = new List<string>() {"Empty", "Empty", "Empty", "Empty"};
-
-        if (topName == "上衣1")
-        {
-            sleeveList[1] = "短袖1左";
-            sleeveList[3] = "短袖1右";
-        }
-        else if (topName == "上衣2")
-        {
-            sleeveList[1] = "短袖2左";
-            sleeveList[3] = "短袖2右";
-        }
-        else if (topName == "上衣3")
-        {
-            sleeveList[1] = "短袖2左";
-            sleeveList[3] = "短袖2右";
-        }
-        else if (topName == "上衣5")
-        {
-            sleeveList[1] = "短袖2左";
-            sleeveList[3] = "短袖2右";
-        }
-        else if (topName == "上衣6")
-        {
-            sleeveList[1] = "短袖6左";
-            sleeveList[3] = "短袖6右";
-        }
-        else if (topName == "上衣7")
-        {
-            sleeveList[1] = "短袖7左";
-            sleeveList[3] = "短袖7右";
-        }
-        else if (topName == "上衣7(粉)")
-        {
-            sleeveList[1] = "短袖7粉左";
-            sleeveList[3] = "短袖7粉右";
-        }
-        else if (topName == "上衣12")
-        {
-            sleeveList[1] = "短袖12左";
-            sleeveList[3] = "短袖12右";
-        }
-        else if (topName == "上衣13")
-        {
-            sleeveList[1] = "短袖13左";
-            sleeveList[3] = "短袖13右";
-        }
-        else if (topName == "上衣13(紫)")
-        {
-            sleeveList[1] = "短袖13蓝左";
-            sleeveList[3] = "短袖13蓝右";
-        }
-        else
-        {
-            sleeveList[0] = "长袖9左";
-            sleeveList[2] = "长袖9右";
-        }
-
-        return sleeveList;
-    }
-
-    public static XmlDocument ToVersion5(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 5.ToString();
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion6(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 6.ToString();
-
-        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NewFlowerFlag);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
-
-        return nativeDoc;
-    }
-
-    private static int DefaultFlowerAmt = 1;
-    public static XmlDocument ToVersion7(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 7.ToString();
-
-        XmlNode xmlNode1 = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FlowerList);
-        string[] flowerIDs= xmlNode1.Attributes[0].Value.Split(' ');
-
-        xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FlowerAmtList);
-        xmlNode1.Attributes[0].Value = "";
-        foreach (var flowerID in flowerIDs)
-        {
-            xmlNode1.Attributes[0].Value += " " + DefaultFlowerAmt;
-        }
-        xmlNode1.Attributes[0].Value = xmlNode1.Attributes[0].Value.TrimStart();
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion8(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 8.ToString();
-
-        XmlNode xmlNode0 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.TutorialPlazaRoom);
-        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.TutorialIndexPlazaRoom);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode0, true));
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
-
-        return nativeDoc;
-    }
-
-    private static int DefaultAchieveValue = 0;
-    public static XmlDocument ToVersion9(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 9.ToString();
-        XmlNode xmlNode = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.AchieveData);
-        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateRoomAmt));
-        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateChestAmt));
-        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateLuckyChestAmt));
-        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateGuessColorChestAmt));
-        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateGuessNumberChestAmt));
-        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.GetChestAwardAmt));
-        xmlNode.Attributes[9].Value = DefaultAchieveValue.ToString();
-        xmlNode.Attributes[10].Value = DefaultAchieveValue.ToString();
-        xmlNode.Attributes[11].Value = DefaultAchieveValue.ToString();
-        xmlNode.Attributes[12].Value = DefaultAchieveValue.ToString();
-        xmlNode.Attributes[13].Value = DefaultAchieveValue.ToString();
-        xmlNode.Attributes[14].Value = DefaultAchieveValue.ToString();
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion10(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 10.ToString();
-        ChestManager.ClearRefundAndOperateData(nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode));
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion11(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 11.ToString();
-        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ReplayVersion);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion12(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 12.ToString();
-        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ExtraSlot);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion13(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 13.ToString();
-        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.CurrentMinigameType);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion14(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 14.ToString();
-        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.LastPrivateMessageDate);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion15(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 15.ToString();
-        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.LastApplicantSerialNumber);
-
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion16(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 16.ToString();
-
-        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial);
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-        xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorialIndex);
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion17(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 17.ToString();
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion18(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 18.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion19(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 19.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion20(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 20.ToString();
-
-        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.MinigameCoolFlag);
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion21(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 21.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion22(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 22.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion23(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 23.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion24(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 24.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion25(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 25.ToString();
-
-        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FashionShowTutorial);
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-        xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FashionShowTutorialIndex);
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion26(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 26.ToString();
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion27(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 27.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion28(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 28.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion29(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 29.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion30(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 30.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion31(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 31.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion32(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 32.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion33(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 33.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion34(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 34.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion35(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 35.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
-
-    public static XmlDocument ToVersion36(XmlDocument nativeDoc, XmlDocument defaultDoc)
-    {
-        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 36.ToString();
-
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (Directory.Exists(persistentFolderPath))
-        {
-            Directory.Delete(persistentFolderPath, true);
-        }
-
-        return nativeDoc;
-    }
+using LitJson;
+
+using UnityEngine;
+
+using System;
+using System.IO;
+using System.Xml;
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Cryptography;
+using Sfs2X.Entities;
+using Sfs2X.Entities.Data;
+using UnityEngine.UI;
+using Random = UnityEngine.Random;
+
+public class ConfigManager : Regist
+{
+    #region Config
+
+    public static XmlNode ConfigRootNode
+    {
+        get
+        {
+            if (configRootNode == null)
+            {
+                configRootNode = ConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
+            }
+
+            return configRootNode;
+        }
+        set { configRootNode = value; }
+    }
+    public static XmlNode configRootNode;
+    public static XmlDocument ConfigDocument
+    {
+        get
+        {
+            if (configDocument == null)
+            {
+                LoadConfigDocument();
+            }
+
+            return configDocument;
+        }
+        set { configDocument = value; }
+    }
+    public static XmlDocument configDocument;
+
+    public static float UrlTimer;
+    public static bool PlayerDocumentDamageFlag;
+    public static bool IDRequestFlag;
+    public static bool SerialNumberRequestFlag = true;
+    public static XmlDocument DefaultConfigDocument = new XmlDocument();
+
+    public static int ConfigReplayVersion = -1000;
+    public static string ConfigPath
+    {
+        get
+        {
+            if (string.IsNullOrEmpty(configPath))
+            {
+                configPath = string.Format("{0}/{1}", Application.persistentDataPath, ResourceLabel.PlayerConfigXml);
+            }
+
+            return configPath;
+        }
+    }
+    public static string configPath;
+
+    #endregion
+
+    private static string UnvalidConfigMD5 = "";
+    private static void LoadConfigDocument()
+    {
+        //if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
+        //{
+        //    Debug.LogWarning("Download Archive : did not interact");
+
+        //    PlayerDocumentDamageFlag = true;
+        //    SerialNumberRequestFlag = false;
+
+        //    return;
+        //}
+
+        int defaultVersion;
+        int nativeVersion;
+
+        XmlNode node;
+        XmlDocument nativeDoc = new XmlDocument();
+
+        if (File.Exists(ConfigPath))
+        {
+            try
+            {
+                StreamReader sr = new StreamReader(ConfigPath);
+
+                nativeDoc.LoadXml(sr.ReadToEnd());
+
+                sr.Close();
+
+                Auxiliary.DecryptXml(nativeDoc);
+            }
+            catch (Exception)
+            {
+                Debug.LogWarning("Download Archive : MD5 doesn't match");
+                //ManaDebug.Log("Download Archive");
+
+                PlayerDocumentDamageFlag = true;
+                SerialNumberRequestFlag = false;
+
+                return;
+            }
+
+
+            TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default);
+
+            DefaultConfigDocument.LoadXml(textAsset.text);
+
+            defaultVersion = int.Parse(DefaultConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value);
+
+            node = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version);
+
+            if (node == null)
+            {
+                StreamWriter sw = new StreamWriter(ConfigPath);
+
+                sw.Write(DefaultConfigDocument.OuterXml);
+
+                sw.Close();
+
+                configDocument = DefaultConfigDocument;
+            }
+            else
+            {
+                nativeVersion = int.Parse(node.Attributes[0].Value);
+
+                if (nativeVersion == ConfigReplayVersion)
+                {
+                    configDocument = DefaultConfigDocument;
+                    int currentReplayVersion = int.Parse(nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ReplayVersion).Attributes[0].Value);
+                    SaveIntToConfig(PlayerConfigLabel.ReplayVersion, currentReplayVersion + 1);
+                    //Debug.Log(currentReplayVersion);
+                }
+                else if (nativeVersion < defaultVersion)
+                {
+                    byte[] bytes;
+
+                    MD5 md5 = new MD5CryptoServiceProvider();
+
+                    if (nativeVersion <= 4)
+                    {
+                        bytes = Encoding.UTF8.GetBytes(nativeDoc.OuterXml);
+                    }
+                    else
+                    {
+                        bytes = File.ReadAllBytes(ConfigPath);
+                    }
+
+                    if (PlayerPrefs.GetString(Lib.ConfigPrefs) != UnvalidConfigMD5 && PlayerPrefs.GetString(Lib.ConfigPrefs) != Auxiliary.ToString(md5.ComputeHash(bytes)))
+                    {
+                        Debug.LogWarning("Download Archive : MD5 doesn't match");
+                        //ManaDebug.Log("Download Archive");
+
+                        PlayerDocumentDamageFlag = true;
+                        SerialNumberRequestFlag = false;
+
+                        return;
+                    }
+                    else
+                    {
+                        configDocument = UpdateConfigDocument(nativeVersion, nativeDoc, DefaultConfigDocument);
+
+                        //HttpManager.UploadConfig();
+                    }
+                }
+                else if (nativeVersion > defaultVersion)
+                {
+                    //configDocument = DefaultConfigDocument;
+                }
+                else
+                {
+                    byte[] bytes = File.ReadAllBytes(ConfigPath);
+
+                    MD5 md5 = new MD5CryptoServiceProvider();
+
+                    if (PlayerPrefs.GetString(Lib.ConfigPrefs) != UnvalidConfigMD5 && PlayerPrefs.GetString(Lib.ConfigPrefs) != Auxiliary.ToString(md5.ComputeHash(bytes)))
+                    {
+                        Debug.LogWarning("Download Archive : MD5 doesn't match");
+                        //ManaDebug.Log("Download Archive");
+
+                        PlayerDocumentDamageFlag = true;
+                        SerialNumberRequestFlag = false;
+
+                        return;
+                    }
+
+                    configDocument = nativeDoc;
+                }
+            }
+        }
+        else
+        {
+            TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default);
+
+            DefaultConfigDocument.LoadXml(textAsset.text);
+
+            Debug.LogWarning("Download Archive");
+            //ManaDebug.Log("Download Archive");
+
+            PlayerDocumentDamageFlag = true;
+            SerialNumberRequestFlag = false;
+
+            return;
+        }
+    }
+
+
+    private float MaxUrlWaitTime = 10;
+    public void Update()
+    {
+        if (PlayerDocumentDamageFlag)
+        {
+            UrlTimer += Time.deltaTime;
+
+            if (UrlTimer >= MaxUrlWaitTime)
+            {
+                PlayerDocumentDamageFlag = false;
+
+                TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default);
+
+                configDocument = new XmlDocument();
+
+                configDocument.LoadXml(textAsset.text);
+
+                return;
+            }
+        }
+
+        if (!SerialNumberRequestFlag)
+        {   
+            if (HttpManager.SerialNumber != PlayerConfigLabel.DefaultSerialNumber)
+            {
+                SerialNumberRequestFlag = true;
+
+                HttpManager.GetConfigBySerialNumber(HttpManager.SerialNumber, RecoveConfigDocument);
+            }
+        }
+    }
+
+    public override bool InitAtOnce()
+    {
+        if (base.InitAtOnce())
+        {
+            return true;
+        }
+
+        enabled = true;
+
+        return false;
+    }
+
+
+    public static void RecoveConfigDocument(JsonData jsonData)
+    {
+        if (!PlayerDocumentDamageFlag)
+        {
+            return;
+        }
+
+        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default);
+
+        DefaultConfigDocument.LoadXml(textAsset.text);
+        //Debug.Log(jsonData.ToJson());
+        if (jsonData.Inst_Object.Keys.Contains("l"))
+        {
+            XmlDocument recoverdDocument = new XmlDocument();
+
+            recoverdDocument.LoadXml(jsonData["l"].ToString());
+
+            int RecoverdVersion = int.Parse(recoverdDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value);
+            int DefaultVersion = int.Parse(DefaultConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value);
+
+            PlayerDocumentDamageFlag = false;
+            if (RecoverdVersion <= DefaultVersion)
+            {
+                UpdateConfigDocument(RecoverdVersion, recoverdDocument, DefaultConfigDocument);
+                configDocument = recoverdDocument;
+                PlayerPrefManager.SaveBool(PlayerPrefManager.INTERACT_CONFIG, true);
+            }
+            else if (RecoverdVersion > DefaultVersion)
+            {
+                //configDocument = DefaultConfigDocument;
+            }
+        }
+        else
+        {
+            if (!IDRequestFlag)
+            {
+                if (HttpManager.ID != PlayerConfigLabel.DefaultID)
+                {
+                    IDRequestFlag = true;
+                    Debug.LogWarning("DownloadByID");
+
+                    HttpManager.GetConfigByID(HttpManager.ID, RecoveConfigDocument);
+                }
+                else
+                {
+                    Debug.LogWarning("Use Default");
+                    configDocument = DefaultConfigDocument;
+                    PlayerDocumentDamageFlag = false;
+                }
+            }
+            else
+            {
+                Debug.LogWarning("Use Default");
+                configDocument = DefaultConfigDocument;
+                PlayerDocumentDamageFlag = false;
+            }
+        }
+    }
+
+
+    public static void SaveSkillList()
+    {
+        if (TutorialManager.NewplayerTutorial || !Manager.Inited)
+        {
+            return;
+        }
+        
+        XmlNode xmlNode;
+        XmlAttribute xmlAttribute;
+
+        xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
+        xmlNode.RemoveAll();
+
+        for (int i = 0; i < Manager.SkillList.Count; i++)
+        {
+            if (Manager.SkillList[i].SkillType == SkillType.Skill)
+            {
+                #region Skill
+
+                Skill skill = (Skill)Manager.SkillList[i];
+
+                xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
+                xmlAttribute.Value = skill.FullID;
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
+                xmlAttribute.Value = skill.SkillType.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
+                xmlAttribute.Value = skill.ItemStatus.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
+                xmlAttribute.Value = skill.Level.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.CoolTimer));
+                xmlAttribute.Value = skill.CoolTimer.ToString("0");
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.UseTimer));
+                xmlAttribute.Value = skill.UseTimer.ToString("0");
+
+                xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
+
+                #endregion
+            }
+            else if (Manager.SkillList[i].SkillType == SkillType.Pack)
+            {
+                #region Pack
+
+                Pack pack = (Pack)Manager.SkillList[i];
+
+                xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
+                xmlAttribute.Value = pack.FullID;
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
+                xmlAttribute.Value = pack.SkillType.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
+                xmlAttribute.Value = pack.ItemStatus.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
+                xmlAttribute.Value = pack.Level.ToString();
+
+                xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
+
+                #endregion
+            }
+            else if (Manager.SkillList[i].SkillType == SkillType.Ability)
+            {
+                #region Ability
+
+                Ability ability = (Ability)Manager.SkillList[i];
+
+                xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
+                xmlAttribute.Value = ability.FullID;
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
+                xmlAttribute.Value = ability.SkillType.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
+                xmlAttribute.Value = ability.ItemStatus.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
+                xmlAttribute.Value = ability.Level.ToString();
+
+                xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
+
+                #endregion
+            }
+            else if (Manager.SkillList[i].SkillType == SkillType.BigSkill)
+            {
+                #region BigSkill
+
+                BigSkill bigSkill = (BigSkill)Manager.SkillList[i];
+
+                xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
+                xmlAttribute.Value = bigSkill.FullID;
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
+                xmlAttribute.Value = bigSkill.SkillType.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
+                xmlAttribute.Value = bigSkill.ItemStatus.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.BarStatus));
+                xmlAttribute.Value = bigSkill.BarStatus.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
+                xmlAttribute.Value = bigSkill.Level.ToString();
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.CoolTimer));
+                xmlAttribute.Value = bigSkill.CoolTimer.ToString("0");
+
+                xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.UseTimer));
+                xmlAttribute.Value = bigSkill.UseTimer.ToString("0");
+
+                xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
+
+                #endregion
+            }
+        }
+    }
+
+    public static void SaveDress()
+    {
+        XmlNode xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressList);
+        xmlNode.Attributes[0].Value = "";
+
+        for (int i = 0; i < PlayerManager.BoughtCloseIDs.Count; i++)
+        {
+            xmlNode.Attributes[0].Value += PlayerManager.BoughtCloseIDs[i] + " ";
+        }
+
+        xmlNode.Attributes[0].Value = xmlNode.Attributes[0].Value.TrimEnd(' ');
+
+
+        xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressData);
+
+        for (int i = 0; i < PlayerManager.DressDatas.Count; i++)
+        {
+            xmlNode.Attributes[i].Value = PlayerManager.DressDatas[i];
+        }
+    }
+
+    public static void SaveAchieve()
+    {
+        XmlNode xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveList);
+        xmlNode.Attributes[0].Value = "";
+
+        foreach (var kv in AchieveManager.AchieveItemDictionary)
+        {
+            if (!kv.Value.Lock)
+            {
+                xmlNode.Attributes[0].Value += kv.Value.ID + " ";
+            }
+        }
+
+        xmlNode.Attributes[0].Value = xmlNode.Attributes[0].Value.TrimEnd(' ');
+
+
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[0].Value = Manager.PlayADsAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[1].Value = Manager.UseSkillAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[2].Value = Manager.SignAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[3].Value = Manager.ShareAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[4].Value = Manager.AllElfLevel.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[5].Value = Manager.PlayMinigameAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[6].Value = Manager.TotalFlowerAwardCoin.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[7].Value = Manager.TotalVisitPerson.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[8].Value = Manager.TotalSpendDiamond.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[9].Value = Manager.CreateRoomAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[10].Value = Manager.CreateChestAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[11].Value = Manager.CreateLuckyChestAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[12].Value = Manager.CreateGuessColorChestAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[13].Value = Manager.CreateGuessNumberChestAmt.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[14].Value = Manager.GetChestAwardAmt.ToString("0");
+    }
+
+    public static void SavePlantList()
+    {
+        if (VisitManager.InVisit || TutorialManager.NewplayerTutorial)
+        {
+            return;
+        }
+        
+        XmlAttributeCollection attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.PlantList).Attributes;
+
+        attribute[0].Value = "";
+
+        for (int i = 0; i < GardenManager.PlantSlotList.Count; i++)
+        {
+            Slot slot = GardenManager.PlantSlotList[i];
+            
+            attribute[0].Value += slot.ID + "," + slot.Index + " ";
+        }
+
+        attribute[0].Value = attribute[0].Value.TrimEnd(' ');
+    }
+
+    public static void SaveDatas()
+    {
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Coin).Attributes[0].Value = Manager.Coin.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Diamond).Attributes[0].Value = Manager.Diamond.ToString("0");
+        
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SignTime).Attributes[0].Value = SignManager.LastSignTime.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SignIndex).Attributes[0].Value = SignManager.SignIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SignRound).Attributes[0].Value = SignManager.SignRound.ToString();
+        
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.QuitFlag).Attributes[0].Value = HttpManager.IsConnect.ToInt().ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.QuitTime).Attributes[0].Value = HttpManager.CurrentDateTime.ToString();
+
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MiniTimer).Attributes[0].Value = Manager.MinigameCDTimer.ToString("0");
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.CircleTimer).Attributes[0].Value = Manager.IncomeCircleTimer.ToString("0");
+
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.ID).Attributes[0].Value = HttpManager.ID;
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SerialNumber).Attributes[0].Value = HttpManager.SerialNumber;
+
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Language).Attributes[0].Value = LanguageManager.CurrentLanguage.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MiniGameIndex).Attributes[0].Value = MiniGameManager.MiniGameIndex.ToString();
+
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.NewplayerTutorial).Attributes[0].Value = TutorialManager.NewplayerTutorial.ToInt().ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MemoryMinigameTutorial).Attributes[0].Value = TutorialManager.memoryMinigameTutorial.ToInt().ToString();
+
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.VisitTutorial).Attributes[0].Value = TutorialManager.visitTutorial.ToInt().ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressroomTutorial).Attributes[0].Value = TutorialManager.dressroomTutorial.ToInt().ToString();
+
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FashionShowTutorial).Attributes[0].Value = TutorialManager.fashionShowTutorial.ToInt().ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.ChangeMouseTutorial).Attributes[0].Value = TutorialManager.changeMouseTutorial.ToInt().ToString();
+
+        if (TutorialManager.findSoloMinigameTutorial || TutorialManager.FindSoloMinigameTutorial)
+        {
+            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindSoloMinigameTutorial).Attributes[0].Value = "1";
+        }
+        else
+        {
+            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindSoloMinigameTutorial).Attributes[0].Value = "0";
+        }
+        if (TutorialManager.findMissingMinigameTutorial || TutorialManager.FindMissingMinigameTutorial)
+        {
+            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial).Attributes[0].Value = "1";
+        }
+        else
+        {
+            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial).Attributes[0].Value = "0";
+        }
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.TutorialPlazaRoom).Attributes[0].Value = TutorialManager.plazaRoomTutorial.ToInt().ToString();
+
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.NewplayerTutorialIndex).Attributes[0].Value = TutorialManager.NewplayerTutorialIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MemoryMinigameTutorialIndex).Attributes[0].Value = TutorialManager.MemoryMinigameTutorialIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.VisitTutorialIndex).Attributes[0].Value = TutorialManager.VisitTutorialIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressroomIndex).Attributes[0].Value = TutorialManager.DressroomTutorialIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindSoloMinigameTutorialIndex).Attributes[0].Value = TutorialManager.FindSoloMinigameTutorialIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorialIndex).Attributes[0].Value = TutorialManager.FindMissingMinigameTutorialIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.TutorialIndexPlazaRoom).Attributes[0].Value = TutorialManager.PlazaRoomTutorialIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FashionShowTutorialIndex).Attributes[0].Value = TutorialManager.FashionShowTutorialIndex.ToString();
+    }
+
+    public static void SaveFlowers()
+    {
+        XmlAttribute attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FlowerList).Attributes[0];
+        XmlAttribute attribute1 = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FlowerAmtList).Attributes[0];
+
+        attribute.Value = "";
+        attribute1.Value = "";
+
+        foreach (var kv in GardenManager.GetFlowerInfoDict())
+        {
+            if (kv.Value.Unlock)
+            {
+                attribute.Value += kv.Value.ID + " ";
+                attribute1.Value += kv.Value.Amount + " ";
+            }
+        }
+
+        attribute.Value = attribute.Value.Trim(' ');
+        attribute1.Value = attribute1.Value.Trim(' ');
+    }
+
+    public static void SaveConfigDocument()
+    {
+        if (Initializer.Inited)
+        {
+            SaveSkillList();
+            SaveAchieve();
+            SaveDress();
+            SavePlantList();
+            SaveDatas();
+            SaveFlowers();
+            ChestManager.SaveToConfig();
+        }
+    }
+
+    public static void SaveConfigDocumentToDisk()
+    {
+        if (Initializer.Inited)
+        {
+            XmlDocument doc = new XmlDocument();
+
+            doc.LoadXml(ConfigDocument.OuterXml);
+
+            Auxiliary.EncryptXml(doc);
+
+            StreamWriter sw = new StreamWriter(ConfigPath);
+
+            sw.Write(doc.OuterXml);
+
+            sw.Close();
+
+            byte[] bytes = File.ReadAllBytes(ConfigPath);
+            //byte[] bytes = Encoding.UTF8.GetBytes(PlayerDoc.OuterXml);
+
+            MD5 md5 = new MD5CryptoServiceProvider();
+
+            PlayerPrefs.SetString(Lib.ConfigPrefs, Auxiliary.ToString(md5.ComputeHash(bytes)));
+        }
+    }
+
+
+    public static void ResetConfigDocument()
+    {
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = ConfigReplayVersion.ToString();
+
+        SaveConfigDocument();
+
+        Manager.UploadConfigFlag = true;
+        Manager.DownloadConfigFlag = true;
+
+        SaveConfigDocumentToDisk();
+
+        DelayCall.Call
+        (
+            1,
+            () =>
+            {
+                Bubble.Show(null, Language.GetStr(LanguageLabel.UI__La_Lab0), null, null, () => { Application.Quit(); }, null, false);
+            }
+        );
+    }
+
+
+    public static int GetIntFormConfig(string node)
+    {
+        return int.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value);
+    }
+
+    public static bool GetBoolFormConfig(string node)
+    {
+        return int.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value).ToBool();
+    }
+
+    public static float GetFloatFormConfig(string node)
+    {
+        return float.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value);
+    }
+
+    public static string GetStringFormConfig(string node)
+    {
+        return ConfigRootNode.SelectSingleNode(node).Attributes[0].Value;
+    }
+
+    public static double GetDoubleFormConfig(string node)
+    {
+        return double.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value);
+    }
+
+
+    public static void SaveIntToConfig(string node, int value)
+    {
+        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToString();
+    }
+
+    public static void SaveBoolToConfig(string node, bool value)
+    {
+        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToInt().ToString();
+    }
+
+    public static void SaveFloatToConfig(string node, float value)
+    {
+        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToString();
+    }
+
+    public static void SaveStringToConfig(string node, string value)
+    {
+        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value;
+    }
+
+    public static void SaveDoubleToConfig(string node, double value)
+    {
+        ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToString();
+    }
+
+
+    public static List<int> GetIntList(char splitChar, string nodeName, List<int> defaultList)
+    {
+        return Auxiliary.StringToInts(splitChar, ConfigRootNode.SelectSingleNode(nodeName).Attributes[0].Value, defaultList);
+    }
+
+    public static List<string> GetStringList(char splitChar, string nodeName, List<string> defaultList)
+    {
+        return Auxiliary.StringToStrings(splitChar, ConfigRootNode.SelectSingleNode(nodeName).Attributes[0].Value, defaultList);
+    }
+
+
+    public static List<int> GetDressList()
+    {
+        List<int> list = new List<int>();
+
+        XmlAttributeCollection attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressList).Attributes;
+
+        return Auxiliary.StringToInts(' ', attribute[0].Value, list);
+    }
+
+    public static List<int> GetDressDataIDs(Player player)
+    {
+        //foreach (var VARIABLE in ManaPlayer.CloseIDDic)
+        //{
+        //    Debug.LogWarning(VARIABLE.Key);
+        //}
+
+        List<int> dressDataIDs = new List<int>();
+
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Head]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Dress]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Shoe]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.HeadWear]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Top]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Eye]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Mouse]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Wing]);
+
+        return dressDataIDs;
+    }
+
+    public static List<int> GetDressDataIDs(List<string> dressdataNames)
+    {
+        //foreach (var VARIABLE in ManaPlayer.CloseIDDic)
+        //{
+        //    Debug.LogWarning(VARIABLE.Key);
+        //}
+
+        List<int> dressDataIDs = new List<int>();
+
+        int index = 0;
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
+        dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
+
+        return dressDataIDs;
+    }
+
+    public static List<int> GetDressDataIDs(ISFSObject parameter)
+    {
+        List<int> ids = parameter.GetIntArray(InfoLabel.Close.GetHashString()).ToList();
+
+        return ids;
+    }
+
+    public static List<string> GetDressData(SFSObject parameter)
+    {
+        List<int> ids = GetDressDataIDs(parameter);
+
+        List<string> dressData = new List<string>();
+
+        foreach (var id in ids)
+        {
+            dressData.Add(PlayerManager.CloseItemDictionary[id].ArmatureName);
+        }
+
+        return dressData;
+    }
+
+    public static List<string> GetDressData(XmlNode node = null)
+    {
+        XmlNode xmlNode;
+
+        if (node == null)
+        {
+            xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressData);
+        }
+        else
+        {
+            xmlNode = node.SelectSingleNode(PlayerConfigLabel.DressData);
+        }
+
+
+        List<string> dataList = new List<string>();
+
+        if (xmlNode != null && xmlNode.Attributes.Count == 12)
+        {
+            dataList.Add(xmlNode.Attributes[0].Value);
+            dataList.Add(xmlNode.Attributes[1].Value);
+            dataList.Add(xmlNode.Attributes[2].Value);
+            dataList.Add(xmlNode.Attributes[3].Value);
+            dataList.Add(xmlNode.Attributes[4].Value);
+            dataList.Add(xmlNode.Attributes[5].Value);
+            dataList.Add(xmlNode.Attributes[6].Value);
+            dataList.Add(xmlNode.Attributes[7].Value);
+			dataList.Add(xmlNode.Attributes[8].Value);
+			dataList.Add(xmlNode.Attributes[9].Value);
+			dataList.Add(xmlNode.Attributes[10].Value);
+			dataList.Add(xmlNode.Attributes[11].Value);
+
+            //dataList[8] = "长袖9左";
+            //dataList[9] = "Empty";
+            //dataList[10] = "长袖9右";
+            //dataList[11] = "Empty";
+        }
+		else if(xmlNode != null && xmlNode.Attributes.Count == 8)
+		{
+			dataList.Add(xmlNode.Attributes[0].Value);
+			dataList.Add(xmlNode.Attributes[1].Value);
+			dataList.Add(xmlNode.Attributes[2].Value);
+			dataList.Add(xmlNode.Attributes[3].Value);
+			dataList.Add(xmlNode.Attributes[4].Value);
+			dataList.Add(xmlNode.Attributes[5].Value);
+			dataList.Add(xmlNode.Attributes[6].Value);
+			dataList.Add(xmlNode.Attributes[7].Value);
+			dataList.AddRange (GetSleeveListByTop(xmlNode.Attributes[4].Value));
+		}
+        else
+        {
+            float rate = Random.Range(0f, 1f);
+
+            if (rate < 0.33f)
+            {
+                dataList.Add("脑壳1");
+                dataList.Add("裙子1");
+                dataList.Add("鞋子1");
+                dataList.Add("头饰品1");
+                dataList.Add("上衣1");
+                dataList.Add("眼睛1");
+                dataList.Add("嘴巴1");
+                dataList.Add("Empty");
+				dataList.Add("Empty");
+				dataList.Add("短袖1左");
+				dataList.Add("Empty");
+				dataList.Add("短袖1右");
+            }
+            else if (rate < 0.66f)
+            {
+                dataList.Add("脑壳2");
+                dataList.Add("裙子2");
+                dataList.Add("鞋子2");
+                dataList.Add("头饰品2");
+                dataList.Add("上衣2");
+                dataList.Add("眼睛2");
+                dataList.Add("嘴巴2");
+                dataList.Add("Empty");
+				dataList.Add("Empty");
+				dataList.Add("短袖2左");
+				dataList.Add("Empty");
+				dataList.Add("短袖2右");
+            }
+            else
+            {
+                dataList.Add("脑壳3");
+                dataList.Add("裙子3");
+                dataList.Add("鞋子3");
+                dataList.Add("头饰品3");
+                dataList.Add("上衣3");
+                dataList.Add("眼睛3");
+                dataList.Add("嘴巴3");
+                dataList.Add("Empty");
+				dataList.Add("Empty");
+				dataList.Add("短袖2左");
+				dataList.Add("Empty");
+				dataList.Add("短袖2右");
+            }
+        }
+
+        return dataList;
+    }
+
+    public static List<int> GetFlowerList()
+    {
+        List<int> list = new List<int>();
+
+        XmlAttributeCollection attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FlowerList).Attributes;
+
+        return Auxiliary.StringToInts(' ', attribute[0].Value, list);
+    }
+
+    public static List<int> GetLockAchieveIDs()
+    {
+        return Auxiliary.StringToInts(' ', GetStringFormConfig(PlayerConfigLabel.AchieveList), new List<int>());
+    }
+
+    public static List<double> GetAchieveValues()
+    {
+        List<double> dataList = new List<double>();
+
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[0].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[1].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[2].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[3].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[4].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[5].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[6].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[7].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[8].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[9].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[10].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[11].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[12].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[13].Value));
+        dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[14].Value));
+
+        return dataList;
+    }
+
+    public static List<KV<int, int>> GetPlantList(XmlNode node = null)
+    {
+        List<KV<int, int>> list = new List<KV<int, int>>();
+
+        XmlNode xmlNode;
+
+        if (node == null)
+        {
+            xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.PlantList);
+        }
+        else
+        {
+            xmlNode = node.SelectSingleNode(PlayerConfigLabel.PlantList);
+        }
+
+        if (!string.IsNullOrEmpty(xmlNode.Attributes[0].Value))
+        {
+            string[] strings = xmlNode.Attributes[0].Value.Split(' ');
+
+            for (int i = 0; i < strings.Length; i++)
+            {
+                list.Add(new KV<int, int>(int.Parse(strings[i].Split(',')[0]), int.Parse(strings[i].Split(',')[1])));
+            }
+        }
+
+        return list;
+    }
+
+    public static List<XmlAttributeCollection> GetSkillList(XmlNode node = null)
+    {
+        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
+
+        XmlNodeList xmlNodeList;
+
+        if (node == null)
+        {
+            xmlNodeList = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
+        }
+        else
+        {
+            xmlNodeList = node.SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
+        }
+
+        for (int i = 0; i < xmlNodeList.Count; i++)
+        {
+            attributeList.Add(xmlNodeList[i].Attributes);
+        }
+
+        return attributeList;
+    }
+
+
+    public static List<string> GetOfflineConfig()
+    {
+        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.OfflineConfig, Folder.Config);
+
+        XmlDocument xmlDoc = new XmlDocument();
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
+
+        List<string> strList = new List<string>()
+        {
+            xmlNode.Attributes[1].Value,
+            xmlNode.Attributes[2].Value,
+            xmlNode.Attributes[3].Value,
+        };
+
+        return strList;
+    }
+
+    public static XmlAttributeCollection GetVisitConfig()
+    {
+        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.VisitConfig, Folder.Config);
+
+        XmlDocument xmlDoc = new XmlDocument();
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
+
+        return xmlNode.Attributes;
+    }
+
+    public static XmlAttributeCollection GetPlazaRoomConfig()
+    {
+        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlazaroomConfig, Folder.Config);
+
+        XmlDocument xmlDoc = new XmlDocument();
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
+
+        return xmlNode.Attributes;
+    }
+
+    public static XmlAttributeCollection GetAwardConfig()
+    {
+        TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.AwardConfig, Folder.Config);
+
+        XmlDocument xmlDoc = new XmlDocument();
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
+
+        return xmlNode.Attributes;
+    }
+
+    public static List<XmlAttributeCollection> GetIAPConfig()
+    {
+        TextAsset textAsset;
+        XmlNodeList xmlNodeList;
+
+        XmlDocument xmlDoc = new XmlDocument();
+        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
+
+
+        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.IAPConfig, Folder.Config);
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
+
+        for (int i = 0; i < xmlNodeList.Count; i++)
+        {
+            attributeList.Add(xmlNodeList[i].Attributes);
+        }
+
+        return attributeList;
+    }
+
+    public static List<XmlAttributeCollection> GetSkillConfig()
+    {
+        TextAsset textAsset;
+        XmlDocument xmlDoc = new XmlDocument();
+        List<XmlNodeList> xmlNodeList = new List<XmlNodeList>();
+        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
+        
+        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PackConfig, Folder.Config);
+        xmlDoc.LoadXml(textAsset.text);
+        xmlNodeList.Add(xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode));
+        
+        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.SkillConfig, Folder.Config);
+        xmlDoc.LoadXml(textAsset.text);
+        xmlNodeList.Add(xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode));
+        
+        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.AbilityConfig, Folder.Config);
+        xmlDoc.LoadXml(textAsset.text);
+        xmlNodeList.Add(xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode));
+
+        for (int i = 0; i < xmlNodeList.Count; i++)
+        {
+            for (int j = 0; j < xmlNodeList[i].Count; j++)
+            {
+                attributeList.Add(xmlNodeList[i][j].Attributes);
+            }
+        }
+
+        return attributeList;
+    }
+
+    public static List<XmlAttributeCollection> GetSignConfig()
+    {
+        TextAsset textAsset;
+        XmlNodeList xmlNodeList;
+
+        XmlDocument xmlDoc = new XmlDocument();
+        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
+        
+
+        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.SigninConfig, Folder.Config);
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
+        
+        for (int i = 0; i < xmlNodeList.Count; i++)
+        {
+            attributeList.Add(xmlNodeList[i].Attributes);
+        }
+
+        return attributeList;
+    }
+
+    public static List<XmlAttributeCollection> GetFlowerConfig(TextAsset textAsset = null)
+    {
+        XmlNodeList xmlNodeList;
+
+        XmlDocument xmlDoc = new XmlDocument();
+        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
+
+        if (textAsset == null)
+        {
+            textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.FlowerConfig, Folder.Config);
+        }
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
+
+        for (int i = 0; i < xmlNodeList.Count; i++)
+        {
+            attributeList.Add(xmlNodeList[i].Attributes);
+        }
+
+        return attributeList;
+    }
+
+    public static List<XmlAttributeCollection> GetLotteryConfig()
+    {
+        TextAsset textAsset;
+        XmlNodeList xmlNodeList;
+
+        XmlDocument xmlDoc = new XmlDocument();
+        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
+
+
+        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.LotteryConfig, Folder.Config);
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
+
+        for (int i = 0; i < xmlNodeList.Count; i++)
+        {
+            attributeList.Add(xmlNodeList[i].Attributes);
+        }
+
+        return attributeList;
+    }
+
+    public static List<XmlAttributeCollection> GetAchieveConfig()
+    {
+        TextAsset textAsset;
+        XmlNodeList xmlNodeList;
+
+        XmlDocument xmlDoc = new XmlDocument();
+        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
+
+
+        textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.AchieveConfig, Folder.Config);
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
+
+        for (int i = 0; i < xmlNodeList.Count; i++)
+        {
+            attributeList.Add(xmlNodeList[i].Attributes);
+        }
+
+        return attributeList;
+    }
+
+    public static List<XmlAttributeCollection> GetDressRoomConfig(TextAsset textAsset = null)
+    {
+        XmlNodeList xmlNodeList;
+
+        XmlDocument xmlDoc = new XmlDocument();
+        List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
+
+        if (textAsset == null)
+        {
+            textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.DressroomConfig, Folder.Config);
+        }
+
+        xmlDoc.LoadXml(textAsset.text);
+
+        xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
+
+        for (int i = 0; i < xmlNodeList.Count; i++)
+        {
+            attributeList.Add(xmlNodeList[i].Attributes);
+        }
+
+        return attributeList;
+    }
+
+
+    public static int GetGardenLevel(XmlDocument xmlDocument)
+    {
+        XmlNodeList nodeList = xmlDocument.SelectNodes(PlayerConfigLabel.RootNode + "/" + PlayerConfigLabel.SkillList + "/" + PlayerConfigLabel.Skill);
+        for (int i = 0; i < nodeList.Count; i++)
+        {
+            if (nodeList[i].Attributes[0].Value == "Ability1")
+            {
+                return int.Parse(nodeList[i].Attributes[3].Value);
+            }
+        }
+        return -1;
+    }
+
+    public static int GetConfigVersion(XmlDocument xmlDocument)
+    {
+        return int.Parse(xmlDocument.SelectSingleNode(PlayerConfigLabel.RootNode + "/" + PlayerConfigLabel.Version).Attributes[0].Value);
+    }
+
+    public static List<string> GetDefaultDressDatas()
+    {
+        List<string> defaultDressDatas = new List<string>();
+        defaultDressDatas.Add("脑壳-缺失");
+        defaultDressDatas.Add("裙子-缺失");
+        defaultDressDatas.Add("鞋子-缺失");
+        defaultDressDatas.Add("头饰-缺失");
+        defaultDressDatas.Add("上衣-缺失");
+        defaultDressDatas.Add("眼睛1");
+        defaultDressDatas.Add("嘴巴1");
+        defaultDressDatas.Add("翅膀-缺失");
+        defaultDressDatas.Add("Empty");
+        defaultDressDatas.Add("Empty");
+        defaultDressDatas.Add("Empty");
+        defaultDressDatas.Add("Empty");
+
+        //defaultDressDatas.Add("脑壳1");
+        //defaultDressDatas.Add("裙子1");
+        //defaultDressDatas.Add("鞋子1");
+        //defaultDressDatas.Add("头饰品1");
+        //defaultDressDatas.Add("上衣1");
+        //defaultDressDatas.Add("眼睛1");
+        //defaultDressDatas.Add("嘴巴1");
+        //defaultDressDatas.Add("Empty");
+        //defaultDressDatas.Add("Empty");
+        //defaultDressDatas.Add("短袖2左");
+        //defaultDressDatas.Add("Empty");
+        //defaultDressDatas.Add("短袖2右");
+
+        return defaultDressDatas;
+    }
+
+
+    public static XmlDocument GetXmlDocument(string ConfigName)
+    {
+        TextAsset textAsset = ResourceManager.Load<TextAsset>(ConfigName, Folder.Config);
+        XmlDocument xmlDocument = new XmlDocument();
+        xmlDocument.LoadXml(textAsset.text);
+        return xmlDocument;
+    }
+
+
+    //玩家存档版本大于默认存档版本时需要清空
+    //玩家存档版本小于默认存档版本时需要更新
+    //玩家存档版本等于ReplayVersion时需要标记为重玩
+    public static XmlDocument UpdateConfigDocument(int nativeVersion, XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        if (nativeVersion < 0)
+        {
+            Debug.LogWarning("UpdateArchive to 0");
+
+            ToVersion0(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 1)
+        {
+            Debug.LogWarning("UpdateArchive to 1");
+
+            ToVersion1(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 2)
+        {
+            Debug.LogWarning("UpdateArchive to 2");
+
+            ToVersion2(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 3)
+        {
+            Debug.LogWarning("UpdateArchive to 3");
+
+            ToVersion3(nativeDoc, defaultDoc);
+        }
+
+		if (nativeVersion < 4)
+		{
+			Debug.LogWarning("UpdateArchive to 4");
+
+			ToVersion4(nativeDoc, defaultDoc);
+		}
+
+        if (nativeVersion < 5)
+        {
+            Debug.LogWarning("UpdateArchive to 5");
+
+            ToVersion5(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 6)
+        {
+            Debug.LogWarning("UpdateArchive to 6");
+
+            ToVersion6(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 7)
+        {
+            Debug.LogWarning("UpdateArchive to 7");
+
+            ToVersion7(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 8)
+        {
+            Debug.LogWarning("UpdateArchive to 8");
+
+            ToVersion8(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 9)
+        {
+            Debug.LogWarning("UpdateArchive to 9");
+
+            ToVersion9(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 10)
+        {
+            Debug.LogWarning("UpdateArchive to 10");
+
+            ToVersion10(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 11)
+        {
+            Debug.LogWarning("UpdateArchive to 11");
+
+            ToVersion11(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 12)
+        {
+            Debug.LogWarning("UpdateArchive to 12");
+
+            ToVersion12(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 13)
+        {
+            Debug.LogWarning("UpdateArchive to 13");
+
+            ToVersion13(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 14)
+        {
+            Debug.LogWarning("UpdateArchive to 14");
+
+            ToVersion14(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 15)
+        {
+            Debug.LogWarning("UpdateArchive to 15");
+
+            ToVersion15(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 16)
+        {
+            Debug.LogWarning("UpdateArchive to 16");
+
+            ToVersion16(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 17)
+        {
+            Debug.LogWarning("UpdateArchive to 17");
+
+            ToVersion17(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 18)
+        {
+            Debug.LogWarning("UpdateArchive to 18");
+
+            ToVersion18(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 19)
+        {
+            Debug.LogWarning("UpdateArchive to 19");
+
+            ToVersion19(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 20)
+        {
+            Debug.LogWarning("UpdateArchive to 20");
+
+            ToVersion20(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 21)
+        {
+            Debug.LogWarning("UpdateArchive to 21");
+
+            ToVersion21(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 22)
+        {
+            Debug.LogWarning("UpdateArchive to 22");
+
+            ToVersion22(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 23)
+        {
+            Debug.LogWarning("UpdateArchive to 23");
+
+            ToVersion23(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 24)
+        {
+            Debug.LogWarning("UpdateArchive to 24");
+
+            ToVersion24(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 25)
+        {
+            Debug.LogWarning("UpdateArchive to 25");
+
+            ToVersion25(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 26)
+        {
+            Debug.LogWarning("UpdateArchive to 26");
+
+            ToVersion26(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 28)
+        {
+            Debug.LogWarning("UpdateArchive to 28");
+
+            ToVersion28(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 29)
+        {
+            Debug.LogWarning("UpdateArchive to 29");
+
+            ToVersion29(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 30)
+        {
+            Debug.LogWarning("UpdateArchive to 30");
+
+            ToVersion30(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 31)
+        {
+            Debug.LogWarning("UpdateArchive to 31");
+
+            ToVersion31(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 32)
+        {
+            Debug.LogWarning("UpdateArchive to 32");
+
+            ToVersion32(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 33)
+        {
+            Debug.LogWarning("UpdateArchive to 33");
+
+            ToVersion33(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 34)
+        {
+            Debug.LogWarning("UpdateArchive to 34");
+
+            ToVersion34(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 35)
+        {
+            Debug.LogWarning("UpdateArchive to 35");
+
+            ToVersion35(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 36)
+        {
+            Debug.LogWarning("UpdateArchive to 36");
+
+            ToVersion36(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 37)
+        {
+            Debug.LogWarning("UpdateArchive to 37");
+
+            ToVersion37(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 38)
+        {
+            Debug.LogWarning("UpdateArchive to 38");
+
+            ToVersion38(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 39)
+        {
+            Debug.LogWarning("UpdateArchive to 39");
+
+            ToVersion39(nativeDoc, defaultDoc);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion0(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 0.ToString();
+
+        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ADPlayTime);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion1(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 1.ToString();
+
+        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SerialNumber);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion2(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 2.ToString();
+
+        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NotificationIndex);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion3(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 3.ToString();
+
+        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NickName);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
+
+        return nativeDoc;
+    }
+
+	public static XmlDocument ToVersion4(XmlDocument nativeDoc, XmlDocument defaultDoc)
+	{
+		nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 4.ToString();
+
+		XmlNode xmlNode = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.DressData);
+
+		XmlAttribute attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.LeftLongSleeveSlot));
+		attribute.Value="Empty";
+
+		attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.LeftShortSleeveSlot));
+		attribute.Value="Empty";
+
+		attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.RightLongSleeveSlot));
+		attribute.Value="Empty";
+
+		attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.RightShortSleeveSlot));
+		attribute.Value="Empty";
+
+		List<string> sleeveList = GetSleeveListByTop (xmlNode.Attributes [4].Value);
+
+		xmlNode.Attributes [8].Value = sleeveList[0];
+		xmlNode.Attributes [9].Value = sleeveList[1];
+		xmlNode.Attributes [10].Value = sleeveList[2];
+		xmlNode.Attributes [11].Value = sleeveList[3];
+
+		return nativeDoc;
+	}
+
+    public static List<string> GetSleeveListByTop(string topName)
+    {
+        List<string> sleeveList = new List<string>() {"Empty", "Empty", "Empty", "Empty"};
+
+        if (topName == "上衣1")
+        {
+            sleeveList[1] = "短袖1左";
+            sleeveList[3] = "短袖1右";
+        }
+        else if (topName == "上衣2")
+        {
+            sleeveList[1] = "短袖2左";
+            sleeveList[3] = "短袖2右";
+        }
+        else if (topName == "上衣3")
+        {
+            sleeveList[1] = "短袖2左";
+            sleeveList[3] = "短袖2右";
+        }
+        else if (topName == "上衣5")
+        {
+            sleeveList[1] = "短袖2左";
+            sleeveList[3] = "短袖2右";
+        }
+        else if (topName == "上衣6")
+        {
+            sleeveList[1] = "短袖6左";
+            sleeveList[3] = "短袖6右";
+        }
+        else if (topName == "上衣7")
+        {
+            sleeveList[1] = "短袖7左";
+            sleeveList[3] = "短袖7右";
+        }
+        else if (topName == "上衣7(粉)")
+        {
+            sleeveList[1] = "短袖7粉左";
+            sleeveList[3] = "短袖7粉右";
+        }
+        else if (topName == "上衣12")
+        {
+            sleeveList[1] = "短袖12左";
+            sleeveList[3] = "短袖12右";
+        }
+        else if (topName == "上衣13")
+        {
+            sleeveList[1] = "短袖13左";
+            sleeveList[3] = "短袖13右";
+        }
+        else if (topName == "上衣13(紫)")
+        {
+            sleeveList[1] = "短袖13蓝左";
+            sleeveList[3] = "短袖13蓝右";
+        }
+        else
+        {
+            sleeveList[0] = "长袖9左";
+            sleeveList[2] = "长袖9右";
+        }
+
+        return sleeveList;
+    }
+
+    public static XmlDocument ToVersion5(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 5.ToString();
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion6(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 6.ToString();
+
+        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NewFlowerFlag);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
+
+        return nativeDoc;
+    }
+
+    private static int DefaultFlowerAmt = 1;
+    public static XmlDocument ToVersion7(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 7.ToString();
+
+        XmlNode xmlNode1 = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FlowerList);
+        string[] flowerIDs= xmlNode1.Attributes[0].Value.Split(' ');
+
+        xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FlowerAmtList);
+        xmlNode1.Attributes[0].Value = "";
+        foreach (var flowerID in flowerIDs)
+        {
+            xmlNode1.Attributes[0].Value += " " + DefaultFlowerAmt;
+        }
+        xmlNode1.Attributes[0].Value = xmlNode1.Attributes[0].Value.TrimStart();
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion8(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 8.ToString();
+
+        XmlNode xmlNode0 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.TutorialPlazaRoom);
+        XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.TutorialIndexPlazaRoom);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode0, true));
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
+
+        return nativeDoc;
+    }
+
+    private static int DefaultAchieveValue = 0;
+    public static XmlDocument ToVersion9(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 9.ToString();
+        XmlNode xmlNode = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.AchieveData);
+        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateRoomAmt));
+        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateChestAmt));
+        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateLuckyChestAmt));
+        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateGuessColorChestAmt));
+        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateGuessNumberChestAmt));
+        xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.GetChestAwardAmt));
+        xmlNode.Attributes[9].Value = DefaultAchieveValue.ToString();
+        xmlNode.Attributes[10].Value = DefaultAchieveValue.ToString();
+        xmlNode.Attributes[11].Value = DefaultAchieveValue.ToString();
+        xmlNode.Attributes[12].Value = DefaultAchieveValue.ToString();
+        xmlNode.Attributes[13].Value = DefaultAchieveValue.ToString();
+        xmlNode.Attributes[14].Value = DefaultAchieveValue.ToString();
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion10(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 10.ToString();
+        ChestManager.ClearRefundAndOperateData(nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode));
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion11(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 11.ToString();
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ReplayVersion);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion12(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 12.ToString();
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ExtraSlot);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion13(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 13.ToString();
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.CurrentMinigameType);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion14(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 14.ToString();
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.LastPrivateMessageDate);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion15(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 15.ToString();
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.LastApplicantSerialNumber);
+
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion16(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 16.ToString();
+
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial);
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+        xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorialIndex);
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion17(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 17.ToString();
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion18(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 18.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion19(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 19.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion20(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 20.ToString();
+
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.MinigameCoolFlag);
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion21(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 21.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion22(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 22.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion23(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 23.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion24(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 24.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion25(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 25.ToString();
+
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FashionShowTutorial);
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+        xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FashionShowTutorialIndex);
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion26(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 26.ToString();
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion27(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 27.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion28(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 28.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion29(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 29.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion30(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 30.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion31(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 31.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion32(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 32.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion33(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 33.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion34(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 34.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion35(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 35.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion36(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 36.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion37(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 37.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion38(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 38.ToString();
+
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ChangeMouseTutorial);
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument ToVersion39(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 39.ToString();
+
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (Directory.Exists(persistentFolderPath))
+        {
+            Directory.Delete(persistentFolderPath, true);
+        }
+
+        return nativeDoc;
+    }
 }

+ 2 - 0
Assets/Script/Manage/HttpManager.cs

@@ -749,6 +749,8 @@ public class HttpManager : Regist
                 {
                     Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Q_CommentDone));
                     SocialManager.UpdateCommentPage(false);
+
+                    CommentRewardManager.GetReward();
                 }
                 else
                 {

+ 562 - 550
Assets/Script/Manage/Initializer.cs

@@ -1,551 +1,563 @@
-using LitJson;
-
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.EventSystems;
-
-using System;
-using System.Xml;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq.Expressions;
-
-public class LogoSceneLabel
-{
-    public static string DebugText = "DebugText";
-    public static string ManagerGame = "ManagerGame";
-}
-
-public class Initializer : MonoBehaviour
-{
-    #region Config
-
-    //public Texture2D Texture2D;
-
-    public bool AuditEdition;
-    public bool DebugMode;
-    public bool CatchException;
-    public GameObject DebugModeGo;
-
-    public static bool Inited;
-    public static bool IsGameActivated;
-    public static string InitScriptProgress;
-    public static Text DebugText;
-    public static Initializer Instance;
-    public static List<Regist> RegistList = new List<Regist>();
-
-    #endregion
-
-    private void Awake()
-    {
-        if (!Application.isEditor)
-        {
-            Debug.unityLogger.logEnabled = false;
-        }
-
-        if (CatchException)
-        {
-            try
-            {
-                InitDataEye();
-            }
-            catch (Exception)
-            {
-
-            }
-        }
-        else
-        {
-            InitDataEye();
-        }
-
-        if (CatchException)
-        {
-            try
-            {
-                InitScript();
-            }
-            catch (Exception e)
-            {
-                Text debugText = GameObject.Find(LogoSceneLabel.DebugText).GetComponent<Text>();
-                debugText.SetAlpha(1);
-                debugText.text = InitScriptProgress + "\n" + e;
-                throw new Exception();
-            }
-        }
-        else
-        {
-            InitScript();
-        }
-    }
-
-    private void InitDataEye()
-    {
-        if (Application.platform == RuntimePlatform.IPhonePlayer)
-        {
-            DataEyeGA.Init("C5790DBD2CFE97BD18C7BE9A95482C05", DataEyeGA.PlatformType.IOS, "Official", "IOS");
-        }
-        else if (Application.isMobilePlatform)
-        {
-            DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.ADR, "Official", "Android");
-        }
-        else if (Application.isEditor)
-        {
-            DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.WP, "Official", "Windows");
-        }
-    }
-
-    private void InitScript()
-    {
-        int index = 1;
-
-        HttpManager.LoadMd5();
-        HttpManager.LoadMd5Dictionary();
-
-        InitScriptProgress = index++.ToString();
-        Application.targetFrameRate = 50;
-
-        InitScriptProgress = index++.ToString();
-        DontDestroyOnLoad(gameObject);
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.Login(Manager.FirstTimeLoginCallback);
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.GetMailAwardData();
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.GetRankData();
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.GetAlipayFlag();
-
-        InitScriptProgress = index++.ToString();
-        HttpManager.GetAnnounceData();
-
-        Instance = this;
-
-        InitScriptProgress = index++.ToString();
-        if (DebugMode)
-        {
-            Bundle bundle = Instantiate(DebugModeGo, transform).GetComponent<Bundle>();
-            bundle.Begin();
-        }
-        else
-        {
-            gameObject.AddComponent<Bundle>().Begin();
-        }
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddComponent<IAPManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddComponent<VisitManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddComponent<DebugManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<Auxiliary>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<ConfigManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<ResourceManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<TutorialManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<LanguageManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<AnimManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<AudioManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<AchieveManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<UIManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<SignManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<Manager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<GardenManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<PlayerManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<HttpManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<MiniGameManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<InfoBoxManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<SocialManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<NickNameManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<SFSManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<PlazaRoomManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<ChestManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<RobotManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<CDMinigamePanelManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<EnterMinigamePanelManager>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<PlazaroomMemberPanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<FriendPanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<AddFriendPanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<MessagePanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<FashionShowEditPage>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<FashionShowCommentPanel>();
-
-        InitScriptProgress = index++.ToString();
-        gameObject.AddScript<FashionShowHomePage>();
-
-        InitScriptProgress = index++.ToString();
-
-        StartCoroutine(WaitToInit());
-    }
-
-
-    public static void InitEntrance()
-    {
-        if (Instance.CatchException)
-        {
-            DebugManager.TryCatch(InitGame, EnableDebugLab);
-        }
-        else
-        {
-            InitGame();
-        }
-    }
-
-    public static void InstantiatePrefabs()
-    {
-        DebugText.text = "Error code : 1";
-
-        TutorialManager.NewplayerTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.NewplayerTutorial);
-        DebugText.text = "Error code : 1-1";
-
-        TutorialManager.memoryMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.MemoryMinigameTutorial);
-        DebugText.text = "Error code : 1-2";
-
-        TutorialManager.visitTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.VisitTutorial);
-        DebugText.text = "Error code : 1-3";
-
-        TutorialManager.dressroomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.DressroomTutorial);
-        DebugText.text = "Error code : 1-4";
-
-        TutorialManager.fashionShowTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FashionShowTutorial);
-        DebugText.text = "Error code : 1-4-1";
-
-        TutorialManager.findSoloMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindSoloMinigameTutorial);
-        DebugText.text = "Error code : 1-5";
-
-        TutorialManager.findMissingMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindMissingMinigameTutorial);
-        DebugText.text = "Error code : 1-5-0";
-
-        TutorialManager.plazaRoomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.TutorialPlazaRoom);
-        DebugText.text = "Error code : 1-5-1";
-
-        TutorialManager.NewplayerTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.NewplayerTutorialIndex);
-        DebugText.text = "Error code : 1-6";
-
-        TutorialManager.MemoryMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.MemoryMinigameTutorialIndex);
-        DebugText.text = "Error code : 1-7";
-
-        TutorialManager.VisitTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.VisitTutorialIndex);
-        DebugText.text = "Error code : 1-8";
-
-        TutorialManager.DressroomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.DressroomIndex);
-        DebugText.text = "Error code : 1-9";
-
-        TutorialManager.FindSoloMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindSoloMinigameTutorialIndex);
-        DebugText.text = "Error code : 1-10";
-
-        TutorialManager.FindMissingMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindMissingMinigameTutorialIndex);
-        DebugText.text = "Error code : 1-10-0";
-
-        TutorialManager.PlazaRoomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.TutorialIndexPlazaRoom);
-        DebugText.text = "Error code : 1-10-1";
-
-        TutorialManager.FashionShowTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FashionShowTutorialIndex);
-        DebugText.text = "Error code : 1-10-1";
-
-        Bundle.LoadAtlasSprites();
-
-        DebugText.text = "Error code : 7";
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetDressRoomConfig();
-        attributeList.RemoveAt(0);
-        //attributeList.AddRange(Bundle.NewDressroomConfigs);
-        PlayerManager.CreateCloseItems(attributeList);
-
-        DebugText.text = "Error code : 1-11";
-        //Bundle.LoadAllDressBundleAssetsIntoDragonbone();
-        DebugText.text = "Error code : 1-11-1";
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 1-12-" + i;
-            //Debug.Log(i + " " + RegistList[i].GetType());
-            RegistList[i].InstantiatePrefabs();
-        }
-
-        DebugText.text = "Error code : 2";
-    }
-
-    public static void InitGame()
-    {
-        InstantiatePrefabs();
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 2-" + i;
-            RegistList[i].RegistReference();
-        }
-
-        DebugText.text = "Error code : 3";
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 3-" + i;
-            RegistList[i].FirstInit();
-        }
-
-        DebugText.text = "Error code : 4";
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 4-" + i;
-            RegistList[i].SecondInit();
-        }
-
-        DebugText.text = "Error code : 5";
-
-        for (int i = 0; i < RegistList.Count; i++)
-        {
-            DebugText.text = "Error code : 5-" + i;
-            RegistList[i].ThirdInit();
-
-            RegistList[i].enabled = true;
-        }
-
-        DebugText.text = "Error code : 6";
-
-        Inited = true;
-
-        if (HttpManager.IsAnnounceReady)
-        {
-            ResourceManager.SetActive(CanvasLabel.C_NotifyParent, true);
-            ResourceManager.Get(CanvasLabel.C_Notify).TweenForCG();
-        }
-
-        LeftSidePanel.Init();
-
-        DebugText.text = "Error code : 7-1";
-        PlayerManager.InitDressRoom();
-
-        DebugText.text = "Error code : 8";
-        Manager.FirstTimeLoginCallback(new JsonData());
-
-        //debugLab.text = "Error code : 9";
-        //SFSManager.GardenSmartFox.Connector.Connect();
-
-        DebugText.text = "Error code : 10";
-        StringFilter.Init();
-
-        DebugText.text = "Error code : 11";
-        IAPManager.Init();
-
-        DebugText.text = "Error code : 12";
-        VisitManager.Init();
-
-        DebugText.text = "Error code : 13";
-        SocialManager.InitRankPanel();
-
-        if (Instance.DebugMode)
-        {
-            ActivateGame();
-        }
-        else
-        {
-            ShowLoadingPanel();
-        }
-    }
-
-    public IEnumerator WaitToInit()
-    {
-        while (!Logo.Complete)
-        {
-            yield return null;
-        }
-
-        while (!Bundle.Complete)
-        {
-            yield return null;
-        }
-
-        //EnableDebugLab();
-        DebugText = GameObject.Find(CanvasLabel.U_DebugLab).GetComponent<Text>();
-        //DebugText.text = "W3";
-
-        Bundle.CopyAssetBundles();
-        while (!Bundle.CopyComplete)
-        {
-            yield return null;
-        }
-
-        ResourceManager.Get(CanvasLabel.AJ_UpdatePanel).AddComponent<UpdatePanel>().Init();
-        bool haveError = Bundle.UpdateAssetBundles();
-
-        while (haveError)
-        {
-            yield return null;
-        }
-
-        //DebugText.text = "W4";
-        while (!Bundle.UpdateComplete)
-        {
-            //DebugText.text = "W5";
-            yield return null;
-        }
-
-        //UpdatePanel.Show();
-        //while (true)
-        //{
-        //    yield return null;
-        //}
-
-        //DebugText.text = "W5-2";
-        SetWarningTitle();
-
-        //DebugText.text = "W6";
-        while (ConfigManager.PlayerDocumentDamageFlag)
-        {
-            //DebugText.text = "W7";
-            yield return null;
-        }
-
-        Language.Initialize();
-        UIManager.Init(Instance.DebugMode);
-        AudioManager.Init();
-        InitEntrance();
-    }
-
-
-    private static float LoadingDelayTime = 3f;
-    private static void ShowLoadingPanel()
-    {
-        DelayCall.Call(1, () =>
-        {
-            Canvas canvas = ResourceManager.Get(CanvasLabel.U_Parent).AddComponent<Canvas>();
-            ResourceManager.Get(CanvasLabel.U_Parent).AddComponent<GraphicRaycaster>();
-            canvas.overrideSorting = true;
-            canvas.sortingOrder = 5;
-        });
-
-        ResourceManager.Get(CanvasLabel.U_Group).TweenForCG();
-        ResourceManager.Get<CanvasGroup>(CanvasLabel.C_Main).alpha = 0;
-
-        ResourceManager.SetText(CanvasLabel.U_Lab, Language.GetStr(LanguageLabel.UI__U_Lab, Application.systemLanguage));
-
-        //SetWarningTitleAndText();
-
-        Auxiliary.Instance.DelayCall(ActivateGame, LoadingDelayTime);
-    }
-
-    public static void SetWarningTitle()
-    {
-        SystemLanguage language = Application.systemLanguage;
-
-        if (Instance.AuditEdition)
-        {
-            language = SystemLanguage.ChineseSimplified;
-        }
-
-        ResourceManager.SetText(CanvasLabel.U_WarningTitle, Language.GetStr(LanguageLabel.UI__U_WarningTitle, language));
-    }
-
-    public static void SetWarningText()
-    {
-        SystemLanguage language = Application.systemLanguage;
-
-        if (Instance.AuditEdition)
-        {
-            language = SystemLanguage.ChineseSimplified;
-        }
-
-        if (language == SystemLanguage.ChineseSimplified)
-        {
-            ResourceManager.SetActive(CanvasLabel.U_WarningTitle, false);
-            ResourceManager.SetText(CanvasLabel.U_WarningText, Language.GetStr(LanguageLabel.UI__U_WarningText, language));
-        }
-        else if (language == SystemLanguage.ChineseTraditional)
-        {
-            ResourceManager.SetActive(CanvasLabel.U_WarningTitle, false);
-            ResourceManager.SetText(CanvasLabel.U_WarningText, Language.GetStr(LanguageLabel.UI__U_WarningText, language));
-        }
-        else
-        {
-            ResourceManager.SetActive(CanvasLabel.U_WarningText, false);
-        }
-    }
-
-
-    private static void ActivateGame()
-    {
-        ResourceManager.Get<CanvasGroup>(CanvasLabel.C_Main).alpha = 1;
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.U_LoadingPanel).TweenForCG();
-        tweenRoot.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () => ResourceManager.Get(CanvasLabel.U_Icon).GetTweenEuler().Pause()
-        );
-
-        AudioManager.GardenThemeAudio.TweenForAudio();
-        IsGameActivated = true;
-    }
-
-    public static void EnableDebugLab()
-    {
-        ResourceManager.Get<CanvasGroup>(CanvasLabel.U_Group).alpha = 0;
-        ResourceManager.Get<Text>(CanvasLabel.U_DebugLab).enabled = true;
-    }
+using LitJson;
+
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.EventSystems;
+
+using System;
+using System.Xml;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+
+public class LogoSceneLabel
+{
+    public static string DebugText = "DebugText";
+    public static string ManagerGame = "ManagerGame";
+}
+
+public class Initializer : MonoBehaviour
+{
+    #region Config
+
+    //public Texture2D Texture2D;
+
+    public bool AuditEdition;
+    public bool DebugMode;
+    public bool CatchException;
+    public GameObject DebugModeGo;
+
+    public static bool Inited;
+    public static bool IsGameActivated;
+    public static string InitScriptProgress;
+    public static Text DebugText;
+    public static Initializer Instance;
+    public static List<Regist> RegistList = new List<Regist>();
+
+    #endregion
+
+    private void Awake()
+    {
+        if (!Application.isEditor)
+        {
+            Debug.unityLogger.logEnabled = false;
+        }
+
+        if (CatchException)
+        {
+            try
+            {
+                InitDataEye();
+            }
+            catch (Exception)
+            {
+
+            }
+        }
+        else
+        {
+            InitDataEye();
+        }
+
+        if (CatchException)
+        {
+            try
+            {
+                InitScript();
+            }
+            catch (Exception e)
+            {
+                Text debugText = GameObject.Find(LogoSceneLabel.DebugText).GetComponent<Text>();
+                debugText.SetAlpha(1);
+                debugText.text = InitScriptProgress + "\n" + e;
+                throw new Exception();
+            }
+        }
+        else
+        {
+            InitScript();
+        }
+    }
+
+    private void InitDataEye()
+    {
+        if (Application.platform == RuntimePlatform.IPhonePlayer)
+        {
+            DataEyeGA.Init("C5790DBD2CFE97BD18C7BE9A95482C05", DataEyeGA.PlatformType.IOS, "Official", "IOS");
+        }
+        else if (Application.isMobilePlatform)
+        {
+            DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.ADR, "Official", "Android");
+        }
+        else if (Application.isEditor)
+        {
+            DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.WP, "Official", "Windows");
+        }
+    }
+
+    private void InitScript()
+    {
+        int index = 1;
+
+        HttpManager.LoadMd5();
+        HttpManager.LoadMd5Dictionary();
+
+        InitScriptProgress = index++.ToString();
+        Application.targetFrameRate = 50;
+
+        InitScriptProgress = index++.ToString();
+        DontDestroyOnLoad(gameObject);
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.Login(Manager.FirstTimeLoginCallback);
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.GetMailAwardData();
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.GetRankData();
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.GetAlipayFlag();
+
+        InitScriptProgress = index++.ToString();
+        HttpManager.GetAnnounceData();
+
+        Instance = this;
+
+        InitScriptProgress = index++.ToString();
+        if (DebugMode)
+        {
+            Bundle bundle = Instantiate(DebugModeGo, transform).GetComponent<Bundle>();
+            bundle.Begin();
+        }
+        else
+        {
+            gameObject.AddComponent<Bundle>().Begin();
+        }
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddComponent<IAPManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddComponent<VisitManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddComponent<DebugManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<Auxiliary>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ConfigManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ResourceManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<TutorialManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<LanguageManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<AnimManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<AudioManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<AchieveManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<UIManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<SignManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<Manager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<GardenManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<PlayerManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<HttpManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<MiniGameManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<InfoBoxManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<SocialManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<NickNameManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<SFSManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<PlazaRoomManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ChestManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<RobotManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<CDMinigamePanelManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<EnterMinigamePanelManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<PlazaroomMemberPanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<FriendPanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<AddFriendPanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<MessagePanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<FashionShowEditPage>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<FashionShowCommentPanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<CommentRewardManager>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ChangeMousePanel>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<ChangeMouseBubble>();
+
+        InitScriptProgress = index++.ToString();
+        gameObject.AddScript<FashionShowHomePage>();
+
+        InitScriptProgress = index++.ToString();
+
+        StartCoroutine(WaitToInit());
+    }
+
+
+    public static void InitEntrance()
+    {
+        if (Instance.CatchException)
+        {
+            DebugManager.TryCatch(InitGame, EnableDebugLab);
+        }
+        else
+        {
+            InitGame();
+        }
+    }
+
+    public static void InstantiatePrefabs()
+    {
+        DebugText.text = "Error code : 1";
+
+        TutorialManager.NewplayerTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.NewplayerTutorial);
+        DebugText.text = "Error code : 1-1";
+
+        TutorialManager.memoryMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.MemoryMinigameTutorial);
+        DebugText.text = "Error code : 1-2";
+
+        TutorialManager.visitTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.VisitTutorial);
+        DebugText.text = "Error code : 1-3";
+
+        TutorialManager.dressroomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.DressroomTutorial);
+        DebugText.text = "Error code : 1-4";
+
+        TutorialManager.fashionShowTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FashionShowTutorial);
+        DebugText.text = "Error code : 1-4-1";
+
+        TutorialManager.changeMouseTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.ChangeMouseTutorial);
+        DebugText.text = "Error code : 1-4-2";
+
+        TutorialManager.findSoloMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindSoloMinigameTutorial);
+        DebugText.text = "Error code : 1-5";
+
+        TutorialManager.findMissingMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindMissingMinigameTutorial);
+        DebugText.text = "Error code : 1-5-0";
+
+        TutorialManager.plazaRoomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.TutorialPlazaRoom);
+        DebugText.text = "Error code : 1-5-1";
+
+        TutorialManager.NewplayerTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.NewplayerTutorialIndex);
+        DebugText.text = "Error code : 1-6";
+
+        TutorialManager.MemoryMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.MemoryMinigameTutorialIndex);
+        DebugText.text = "Error code : 1-7";
+
+        TutorialManager.VisitTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.VisitTutorialIndex);
+        DebugText.text = "Error code : 1-8";
+
+        TutorialManager.DressroomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.DressroomIndex);
+        DebugText.text = "Error code : 1-9";
+
+        TutorialManager.FindSoloMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindSoloMinigameTutorialIndex);
+        DebugText.text = "Error code : 1-10";
+
+        TutorialManager.FindMissingMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindMissingMinigameTutorialIndex);
+        DebugText.text = "Error code : 1-10-0";
+
+        TutorialManager.PlazaRoomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.TutorialIndexPlazaRoom);
+        DebugText.text = "Error code : 1-10-1";
+
+        TutorialManager.FashionShowTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FashionShowTutorialIndex);
+        DebugText.text = "Error code : 1-10-1";
+
+        Bundle.LoadAtlasSprites();
+
+        DebugText.text = "Error code : 7";
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetDressRoomConfig();
+        attributeList.RemoveAt(0);
+        //attributeList.AddRange(Bundle.NewDressroomConfigs);
+        PlayerManager.CreateCloseItems(attributeList);
+
+        DebugText.text = "Error code : 1-11";
+        //Bundle.LoadAllDressBundleAssetsIntoDragonbone();
+        DebugText.text = "Error code : 1-11-1";
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 1-12-" + i;
+            //Debug.Log(i + " " + RegistList[i].GetType());
+            RegistList[i].InstantiatePrefabs();
+        }
+
+        DebugText.text = "Error code : 2";
+    }
+
+    public static void InitGame()
+    {
+        InstantiatePrefabs();
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 2-" + i;
+            RegistList[i].RegistReference();
+        }
+
+        DebugText.text = "Error code : 3";
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 3-" + i;
+            RegistList[i].FirstInit();
+        }
+
+        DebugText.text = "Error code : 4";
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 4-" + i;
+            RegistList[i].SecondInit();
+        }
+
+        DebugText.text = "Error code : 5";
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            DebugText.text = "Error code : 5-" + i;
+            RegistList[i].ThirdInit();
+
+            RegistList[i].enabled = true;
+        }
+
+        DebugText.text = "Error code : 6";
+
+        Inited = true;
+
+        if (HttpManager.IsAnnounceReady)
+        {
+            ResourceManager.SetActive(CanvasLabel.C_NotifyParent, true);
+            ResourceManager.Get(CanvasLabel.C_Notify).TweenForCG();
+        }
+
+        LeftSidePanel.Init();
+
+        DebugText.text = "Error code : 7-1";
+        PlayerManager.InitDressRoom();
+
+        DebugText.text = "Error code : 8";
+        Manager.FirstTimeLoginCallback(new JsonData());
+
+        //debugLab.text = "Error code : 9";
+        //SFSManager.GardenSmartFox.Connector.Connect();
+
+        DebugText.text = "Error code : 10";
+        StringFilter.Init();
+
+        DebugText.text = "Error code : 11";
+        IAPManager.Init();
+
+        DebugText.text = "Error code : 12";
+        VisitManager.Init();
+
+        DebugText.text = "Error code : 13";
+        SocialManager.InitRankPanel();
+
+        if (Instance.DebugMode)
+        {
+            ActivateGame();
+        }
+        else
+        {
+            ShowLoadingPanel();
+        }
+    }
+
+    public IEnumerator WaitToInit()
+    {
+        while (!Logo.Complete)
+        {
+            yield return null;
+        }
+
+        while (!Bundle.Complete)
+        {
+            yield return null;
+        }
+
+        //EnableDebugLab();
+        DebugText = GameObject.Find(CanvasLabel.U_DebugLab).GetComponent<Text>();
+        //DebugText.text = "W3";
+
+        Bundle.CopyAssetBundles();
+        while (!Bundle.CopyComplete)
+        {
+            yield return null;
+        }
+
+        ResourceManager.Get(CanvasLabel.AJ_UpdatePanel).AddComponent<UpdatePanel>().Init();
+        bool haveError = Bundle.UpdateAssetBundles();
+
+        while (haveError)
+        {
+            yield return null;
+        }
+
+        //DebugText.text = "W4";
+        while (!Bundle.UpdateComplete)
+        {
+            //DebugText.text = "W5";
+            yield return null;
+        }
+
+        //UpdatePanel.Show();
+        //while (true)
+        //{
+        //    yield return null;
+        //}
+
+        //DebugText.text = "W5-2";
+        SetWarningTitle();
+
+        //DebugText.text = "W6";
+        while (ConfigManager.PlayerDocumentDamageFlag)
+        {
+            //DebugText.text = "W7";
+            yield return null;
+        }
+
+        Language.Initialize();
+        UIManager.Init(Instance.DebugMode);
+        AudioManager.Init();
+        InitEntrance();
+    }
+
+
+    private static float LoadingDelayTime = 3f;
+    private static void ShowLoadingPanel()
+    {
+        DelayCall.Call(1, () =>
+        {
+            Canvas canvas = ResourceManager.Get(CanvasLabel.U_Parent).AddComponent<Canvas>();
+            ResourceManager.Get(CanvasLabel.U_Parent).AddComponent<GraphicRaycaster>();
+            canvas.overrideSorting = true;
+            canvas.sortingOrder = 5;
+        });
+
+        ResourceManager.Get(CanvasLabel.U_Group).TweenForCG();
+        ResourceManager.Get<CanvasGroup>(CanvasLabel.C_Main).alpha = 0;
+
+        ResourceManager.SetText(CanvasLabel.U_Lab, Language.GetStr(LanguageLabel.UI__U_Lab, Application.systemLanguage));
+
+        //SetWarningTitleAndText();
+
+        Auxiliary.Instance.DelayCall(ActivateGame, LoadingDelayTime);
+    }
+
+    public static void SetWarningTitle()
+    {
+        SystemLanguage language = Application.systemLanguage;
+
+        if (Instance.AuditEdition)
+        {
+            language = SystemLanguage.ChineseSimplified;
+        }
+
+        ResourceManager.SetText(CanvasLabel.U_WarningTitle, Language.GetStr(LanguageLabel.UI__U_WarningTitle, language));
+    }
+
+    public static void SetWarningText()
+    {
+        SystemLanguage language = Application.systemLanguage;
+
+        if (Instance.AuditEdition)
+        {
+            language = SystemLanguage.ChineseSimplified;
+        }
+
+        if (language == SystemLanguage.ChineseSimplified)
+        {
+            ResourceManager.SetActive(CanvasLabel.U_WarningTitle, false);
+            ResourceManager.SetText(CanvasLabel.U_WarningText, Language.GetStr(LanguageLabel.UI__U_WarningText, language));
+        }
+        else if (language == SystemLanguage.ChineseTraditional)
+        {
+            ResourceManager.SetActive(CanvasLabel.U_WarningTitle, false);
+            ResourceManager.SetText(CanvasLabel.U_WarningText, Language.GetStr(LanguageLabel.UI__U_WarningText, language));
+        }
+        else
+        {
+            ResourceManager.SetActive(CanvasLabel.U_WarningText, false);
+        }
+    }
+
+
+    private static void ActivateGame()
+    {
+        ResourceManager.Get<CanvasGroup>(CanvasLabel.C_Main).alpha = 1;
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.U_LoadingPanel).TweenForCG();
+        tweenRoot.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () => ResourceManager.Get(CanvasLabel.U_Icon).GetTweenEuler().Pause()
+        );
+
+        AudioManager.GardenThemeAudio.TweenForAudio();
+        IsGameActivated = true;
+    }
+
+    public static void EnableDebugLab()
+    {
+        ResourceManager.Get<CanvasGroup>(CanvasLabel.U_Group).alpha = 0;
+        ResourceManager.Get<Text>(CanvasLabel.U_DebugLab).enabled = true;
+    }
 }

+ 1547 - 1538
Assets/Script/Manage/Manager.cs

@@ -1,1539 +1,1548 @@
-using LitJson;
-
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.Events;
-using UnityEngine.Analytics;
-using UnityEngine.EventSystems;
-
-using System;
-using System.Xml;
-using System.Collections;
-using System.Collections.Generic;
-
-public class Manager : Regist 
-{
-    #region Config
-
-    #region 成就
-
-    public static double PlayADsAmt
-    {
-        get { return playADsAmt; }
-        set
-        {
-            playADsAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.PlayADsAmt, playADsAmt);
-        }
-    }
-    private static double playADsAmt;
-
-    public static double UseSkillAmt
-    {
-        get { return useSkillAmt; }
-        set
-        {
-            useSkillAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.UseSkillAmt, useSkillAmt);
-        }
-    }
-    private static double useSkillAmt;
-
-    public static double SignAmt
-    {
-        get { return signAmt; }
-        set
-        {
-            signAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.SignAmt, signAmt);
-        }
-    }
-    private static double signAmt;
-
-    public static double CloseAmt
-    {
-        get { return closeAmt; }
-        set
-        {
-            closeAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CloseAmt, closeAmt);
-        }
-    }
-    private static double closeAmt;
-
-    public static double ShareAmt
-    {
-        get { return shareAmt; }
-        set
-        {
-            shareAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.ShareAmt, shareAmt);
-        }
-    }
-    private static double shareAmt;
-
-    public static double PlayMinigameAmt
-    {
-        get { return playMinigameAmt; }
-        set
-        {
-            playMinigameAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.PlayMinigameAmt, playMinigameAmt);
-        }
-    }
-    private static double playMinigameAmt;
-
-    public static double AllElfLevel
-    {
-        get { return allElfLevel; }
-        set
-        {
-            allElfLevel = value;
-
-            AchieveManager.UpdateStatus(AchieveType.AllElfLevel, allElfLevel);
-        }
-    }
-    private static double allElfLevel;
-
-    public static double TotalCoin
-    {
-        get { return totalCoin; }
-        set
-        {
-            totalCoin = value;
-
-            AchieveManager.UpdateStatus(AchieveType.TotalCoin, totalCoin);
-        }
-    }
-    private static double totalCoin;
-
-    public static double TotalFlowerAwardCoin
-    {
-        get { return totalFlowerAwardCoin; }
-        set
-        {
-            totalFlowerAwardCoin = value;
-            
-            AchieveManager.UpdateStatus(AchieveType.TotalFlowerAwardCoin, totalFlowerAwardCoin);
-        }
-    }
-    private static double totalFlowerAwardCoin;
-
-    public static double TotalVisitPerson
-    {
-        get { return totalVisitPerson; }
-        set
-        {
-            totalVisitPerson = value;
-
-            AchieveManager.UpdateStatus(AchieveType.TotalVisitPerson, totalVisitPerson);
-        }
-    }
-    private static double totalVisitPerson;
-
-    public static double TotalSpendDiamond
-    {
-        get { return totalSpendDiamond; }
-        set
-        {
-            totalSpendDiamond = value;
-
-            AchieveManager.UpdateStatus(AchieveType.TotalSpendDiamond, totalSpendDiamond);
-        }
-    }
-    private static double totalSpendDiamond;
-
-    public static double CreateRoomAmt
-    {
-        get { return createRoomAmt; }
-        set
-        {
-            createRoomAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateRoomAmt, createRoomAmt);
-        }
-    }
-    private static double createRoomAmt;
-
-    public static double CreateChestAmt
-    {
-        get { return createChestAmt; }
-        set
-        {
-            createChestAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateChestAmt, createChestAmt);
-        }
-    }
-    private static double createChestAmt;
-
-    public static double CreateLuckyChestAmt
-    {
-        get { return createLuckyChestAmt; }
-        set
-        {
-            createLuckyChestAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateLuckyChestAmt, createLuckyChestAmt);
-        }
-    }
-    private static double createLuckyChestAmt;
-
-    public static double CreateGuessColorChestAmt
-    {
-        get { return createGuessColorChestAmt; }
-        set
-        {
-            createGuessColorChestAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateGuessColorChestAmt, createGuessColorChestAmt);
-        }
-    }
-    private static double createGuessColorChestAmt;
-
-    public static double CreateGuessNumberChestAmt
-    {
-        get { return createGuessNumberChestAmt; }
-        set
-        {
-            createGuessNumberChestAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.CreateGuessNumberChestAmt, createGuessNumberChestAmt);
-        }
-    }
-    private static double createGuessNumberChestAmt;
-
-    public static double GetChestAwardAmt
-    {
-        get { return getChestAwardAmt; }
-        set
-        {
-            getChestAwardAmt = value;
-
-            AchieveManager.UpdateStatus(AchieveType.GetChestAwardAmt, getChestAwardAmt);
-        }
-    }
-    private static double getChestAwardAmt;
-
-    #endregion
-
-    public static Action<int> OnLevelChange;
-    public static Action<double> OnCoinChange;
-    public static Action<double> OnDiamondChange;
-
-    public static int GardenLevel
-    {
-        get { return gardenLevel; }
-        set
-        {
-            gardenLevel = value;
-
-            if (!Inited)
-            {
-                return;
-            }
-
-            LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_LevelText), new MulLanStr(LanguageLabel.UI__C_Level), gardenLevel.ToString());
-
-            VisitManager.UpdateVisitCost();
-
-            AchieveManager.UpdateStatus(AchieveType.GardenLevel, gardenLevel);
-            
-            for (int i = 0; i < SkillList.Count; i++)
-            {
-                SkillList[i].UpdateStatus();
-            }
-
-            foreach (var kv in PlayerManager.CloseItemDictionary)
-            {
-                kv.Value.OnLevelChange();
-            }
-
-            if (OnLevelChange != null)
-            {
-                OnLevelChange.Invoke(gardenLevel);
-            }
-
-            if (gardenLevel >= TutorialManager.MemoryMinigameTutorialLevel)
-            {
-                if (TutorialManager.memoryMinigameTutorial)
-                {
-                    TutorialManager.MemoryMinigameTutorial = true;
-                }
-            }
-
-            if (GardenLevel < TutorialManager.DressroomTutorialLevel)
-            {
-                ResourceManager.Get<Image>(CanvasLabel.C_DressRoom).material = Lib.GrayMat;
-            }
-            else
-            {
-                ResourceManager.Get<Image>(CanvasLabel.C_DressRoom).material = null;
-            }
-
-            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindSoloGame && gardenLevel >= TutorialManager.FindSoloMinigameTutorialLevel)
-            {
-                if (TutorialManager.findSoloMinigameTutorial)
-                {
-                    TutorialManager.PlayFindSoloGame();
-                }
-            }
-
-            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindMissingGame && gardenLevel >= TutorialManager.FindMissingMinigameTutorialLevel)
-            {
-                if (TutorialManager.findMissingMinigameTutorial)
-                {
-                    TutorialManager.PlayFindMissingGame();
-                }
-            }
-
-            if (gardenLevel >= TutorialManager.CommentTutorialLevel)
-            {
-                ResourceManager.Get(CanvasLabel.C_CommentParent).TweenForCG();
-            }
-
-            if (gardenLevel >= TutorialManager.VisitTutorialLevel)
-            {
-                if (TutorialManager.visitTutorial)
-                {
-                    TutorialManager.ClickVisitBtn();
-                    return;
-                }
-                else
-                {
-                    ResourceManager.SetActive(CanvasLabel.C_Visit, true);
-                }
-            }
-
-            if (gardenLevel >= TutorialManager.DressroomTutorialLevel)
-            {
-                if (TutorialManager.dressroomTutorial)
-                {
-                    TutorialManager.ClickDressroomButton();
-                    return;
-                }
-            }
-
-            if (gardenLevel >= TutorialManager.PlazaRoomTutorialLevel)
-            {
-                if (TutorialManager.plazaRoomTutorial)
-                {
-                    TutorialManager.ClickPlazaRoomBtn();
-                    return;
-                }
-                else
-                {
-                    ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom, true);
-                    ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
-                }
-            }
-
-            if (gardenLevel >= TutorialManager.FashionShowTutorialLevel)
-            {
-                if (TutorialManager.fashionShowTutorial)
-                {
-                    TutorialManager.BeginFashionShowTutorial();
-                    return;
-                }
-            }
-        }
-    }
-    private static int gardenLevel;
-
-    public static float Person
-    {
-        get { return person; }
-        set
-        {
-            person = value;
-            ResourceManager.SetText(CanvasLabel.F_PersonLab,  Auxiliary.ShrinkBigNumberStr(CurrentPerson*60));
-        }
-    }
-    private static float person;
-    public static List<string> ExtraPersonSourceSpritesName = new List<string>();
-
-    public static float CoinPerson
-    {
-        get { return coinPerson; }
-        set
-        {
-            coinPerson = value;
-
-            ResourceManager.SetText(CanvasLabel.F_CoinPersonLab, Auxiliary.ShrinkBigNumberStr(CurrentCoinPerson));
-        }
-    }
-    private static float coinPerson;
-    public static List<string> ExtraCoinPersonSourceSpritesName = new List<string>();
-
-    public static float SkillPerson
-    {
-        get { return skillPerson; }
-        set
-        {
-            skillPerson = value;
-
-            //TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
-
-            //if (skillPerson.Equal(0))
-            //{
-            //    tween.Pause();
-
-            //    tween.Target.enabled = false;
-            //}
-            //else
-            //{
-            //    if (tween.InPause)
-            //    {
-            //        tween.Resume();
-
-            //        tween.Target.enabled = true;
-            //    }
-            //    else
-            //    {
-            //        tween.StartForward();
-            //    }
-            //}
-
-            Person = Person;
-        }
-    }
-    public static float skillPerson;
-
-    public static float TempSkillPerson
-    {
-        get { return tempSkillPerson; }
-        set
-        {
-            tempSkillPerson = value;
-
-            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
-            
-            if (tempSkillPerson.Equal(0) && tempSkillPersonBuff.Equal(0))
-            {
-                tween.Pause();
-
-                tween.Target.enabled = false;
-            }
-            else
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-            }
-
-            Person = Person;
-        }
-    }
-    public static float tempSkillPerson;
-
-    public static float SkillPersonBuff
-    {
-        get { return skillPersonBuff; }
-        set
-        {
-            skillPersonBuff = value;
-
-            Person = Person;
-        }
-    }
-    public static float skillPersonBuff;
-
-    public static float TempSkillPersonBuff
-    {
-        get { return tempSkillPersonBuff; }
-        set
-        {
-            tempSkillPersonBuff = value;
-
-            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
-
-            if (tempSkillPerson.Equal(0) && tempSkillPersonBuff.Equal(0))
-            {
-                tween.Pause();
-
-                tween.Target.enabled = false;
-            }
-            else
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-            }
-
-            Person = Person;
-        }
-    }
-    public static float tempSkillPersonBuff;
-
-    public static float SkillCoinPerson
-    {
-        get { return skillCoinPerson; }
-        set
-        {
-            skillCoinPerson = value;
-
-            CoinPerson = CoinPerson;
-        }
-    }
-    public static float skillCoinPerson;
-
-    public static float TempSkillCoinPerson
-    {
-        get { return tempSkillCoinPerson; }
-        set
-        {
-            tempSkillCoinPerson = value;
-
-            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_CoinPersonLab).GetTweenOutline();
-
-            if (tempSkillCoinPerson.Equal(0) && tempSkillCoinPersonBuff.Equal(0))
-            {
-                tween.Pause();
-
-                tween.Target.enabled = false;
-            }
-            else
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-            }
-
-            CoinPerson = CoinPerson;
-        }
-    }
-    public static float tempSkillCoinPerson;
-
-    public static float SkillCoinPersonBuff
-    {
-        get { return skillCoinPersonBuff; }
-        set
-        {
-            skillCoinPersonBuff = value;
-
-            CoinPerson = CoinPerson;
-        }
-    }
-    public static float skillCoinPersonBuff;
-
-    public static float TempSkillCoinPersonBuff
-    {
-        get { return tempSkillCoinPersonBuff; }
-        set
-        {
-            tempSkillCoinPersonBuff = value;
-
-            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_CoinPersonLab).GetTweenOutline();
-
-            if (tempSkillCoinPersonBuff.Equal(0) && tempSkillCoinPerson.Equal(0))
-            {
-                tween.Pause();
-
-                tween.Target.enabled = false;
-            }
-            else
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-            }
-
-            CoinPerson = CoinPerson;
-        }
-    }
-    public static float tempSkillCoinPersonBuff;
-
-    public static float IncomeBuff
-    {
-        get { return SkillCoinPersonBuff + FlowerPlus; }
-    }
-
-    public static float FlowerPlus
-    {
-        get { return flowerPlus; }
-        set
-        {
-            flowerPlus = value;
-        }
-    }
-    public static float flowerPlus;
-
-    public static float CurrentPerson
-    {
-        get
-        {
-            //Debug.Log(Person * (1 + SkillPersonBuff + TempSkillPersonBuff) + SkillPerson + TempSkillPerson);
-            return Person*(1 + SkillPersonBuff + TempSkillPersonBuff) + SkillPerson + TempSkillPerson;
-        }
-    }
-    public static float CurrentCoinPerson
-    {
-        get
-        {
-            //Debug.Log(CoinPerson * (1 + SkillCoinPersonBuff + TempSkillCoinPersonBuff) + SkillCoinPerson + TempSkillCoinPerson);
-            return CoinPerson*(1 + SkillCoinPersonBuff + TempSkillCoinPersonBuff) + SkillCoinPerson + TempSkillCoinPerson;
-        }
-    }
-
-    public static double Coin
-    {
-        get { return coin; }
-        set
-        {
-            coin = value;
-            
-            ResourceManager.SetText(CanvasLabel.F_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
-            ResourceManager.SetText(CanvasLabel.C_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
-            ResourceManager.SetText(CanvasLabel.P_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
-
-            AchieveManager.UpdateStatus(AchieveType.CurrentCoin, coin);
-
-            OnCoinChange.SafeInvoke(coin);
-        }
-    }
-    public static double coin;
-
-    public static double Diamond
-    {
-        get { return diamond; }
-        set
-        {
-            diamond = value;
-
-            ResourceManager.SetText(CanvasLabel.F_DiamondLab, Auxiliary.ShrinkBigNumberStr(diamond));
-            ResourceManager.SetText(CanvasLabel.P_DiamondLab, Auxiliary.ShrinkBigNumberStr(diamond));
-
-            OnDiamondChange.SafeInvoke(diamond);
-        }
-    }
-    public static double diamond;
-
-    public static bool MinigameFlag;
-    public static bool UploadConfigFlag;
-    public static bool LoginFlag;
-    public static bool ReactiveFlag;
-    public static bool DownloadConfigFlag;
-    public static bool SceneSwitchFlag;
-
-    public static bool Inited;
-    public static bool IsFirstFrame = true;
-    public static bool InBackground;
-
-    public static float IncomeDisplayTime = 60f;
-    public static float IncomeCircleTime = 10;
-    public static float IncomeCircleTimer;
-    public static float CircleIncome
-    {
-        get
-        {
-            return CurrentPerson * IncomeCircleTime * CurrentCoinPerson * (1 + FlowerPlus);
-        }
-    }
-
-    public static float GameBeginTime;
-    public static bool AlreadyGetOfflineIncome;
-    public static bool OfflineFlag;
-    public static float OfflineTime;
-    public static string OfflineIncomeFml;
-    public static double OfflineMaxCoin;
-    public static double OfflineMaxTime;
-    public static double OfflineMinTime = 120;
-
-    public static float InputDetectTime = 45;
-    public static float InputDetectTimer;
-
-    public static float LoginTime = 10f;
-    public static float LoginTimer;
-
-    public static float MinigameCDTimer;
-
-    public static float UploadConfigTime = 60f;
-    public static float UploadConfigTimer;
-
-    public static Manager Instance;
-    public static DateTime LastQuitTime;
-
-    public static List<Skill> UsingSkillList = new List<Skill>();
-    public static List<Skill> CoolSkillList = new List<Skill>();
-    public static List<Skill> OfflineCoolSkillList = new List<Skill>();
-    public static List<List<Skill>> OfflineUsingSkillList = new List<List<Skill>>();
-
-    public static List<SkillRoot> SkillList = new List<SkillRoot>();
-    public static Dictionary<string, SkillRoot> SkillDictionary = new Dictionary<string, SkillRoot>();
-
-    #endregion
-    
-    private void Update()
-    {
-        LoginThread();
-        
-        if (TutorialManager.NewplayerTutorial)
-        {
-            return;
-        }
-
-        InputDetectThread();
-
-        ProcessSkillThread();
-
-        MinigameCDThread();
-
-        UploadConfigThread();
-
-        IncomeCircleThread();
-    }
-
-    private void InputDetectThread()
-    {
-        //if (VisitManager.InVisit)
-        //{
-        //    return;
-        //}
-
-        if (Auxiliary.AnyKeyUp)
-        {
-            InputDetectTimer = 0;
-
-            ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
-        }
-        else
-        {
-            InputDetectTimer += Time.deltaTime;
-
-            if (InputDetectTimer >= InputDetectTime)
-            {
-                InputDetectTimer = 0;
-
-                ResourceManager.Get(CanvasLabel.C_Group).TweenBacCG();
-            }
-        }
-    }
-
-    private void ProcessSkillThread()
-    {
-        for (int i = 0; i < UsingSkillList.Count; i++)
-        {
-            if (UsingSkillList[i].DoUpdate())
-            {
-                UsingSkillList.RemoveAt(i--);
-            }
-        }
-
-        for (int i = 0; i < CoolSkillList.Count; i++)
-        {
-            if (CoolSkillList[i].DoCD())
-            {
-                CoolSkillList.RemoveAt(i--);
-            }
-        }
-    }
-
-    private void MinigameCDThread()
-    {
-        if (!MinigameFlag)
-        {
-            MinigameCDTimer -= Time.deltaTime;
-
-            ResourceManager.SetText(CanvasLabel.C_MiniGameLab, Mathf.CeilToInt(MinigameCDTimer).ToString());
-
-            if (MinigameCDTimer < 0)
-            {
-                MinigameFlag = true;
-
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacRect();
-
-                CDMinigamePanelManager.EnableCDButton();
-
-                ResourceManager.SetText(CanvasLabel.C_MiniGameLab, "");
-
-                StaticsManager.GetInstance().RewardItem(StaticsManager.ItemID.获得小游戏, StaticsManager.ItemType.小游戏, "1", StaticsManager.ConsumeModule.None);
-            }
-        }
-    }
-
-    private void UploadConfigThread()
-    {
-        if (DownloadConfigFlag)
-        {
-            return;
-        }
-
-        UploadConfigTimer += Time.deltaTime;
-
-        if (UploadConfigTimer >= UploadConfigTime)
-        {
-            UploadConfigTimer = 0;
-
-            if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
-            {
-                HttpManager.GetSelfConfig();
-            }
-            else
-            {
-                HttpManager.UploadConfig();
-            }
-        }
-    }
-
-    private void LoginThread()
-    {
-        LoginTimer += Time.deltaTime;
-
-        if (LoginTimer >= LoginTime)
-        {
-            LoginTimer = 0;
-
-            HttpManager.Login();
-
-            StaticsManager.GetInstance().Online();
-        }
-    }
-
-    private void IncomeCircleThread()
-    {
-        IncomeCircleTimer -= Time.deltaTime;
-
-        if (IncomeCircleTimer < 0)
-        {
-            IncomeCircleTimer = IncomeCircleTime;
-
-            TotalVisitPerson += CurrentPerson * IncomeCircleTime;
-            
-            float circleIncome = CircleIncome;
-
-            AddCoin(circleIncome, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Income);
-
-            ResourceManager.Get(CanvasLabel.C_IncomeLab).TweenReForGra();
-            ResourceManager.Get(CanvasLabel.C_IncomeLab).TweenReForVec();
-            ResourceManager.SetText(CanvasLabel.C_IncomeLab, "+" + Auxiliary.ShrinkBigNumberStr(circleIncome, 0));
-        }
-    }
-
-
-    public static void AddCoin(double amt, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule)
-    {
-        Coin += amt;
-
-        if (amt > 0)
-        {
-            TotalCoin += amt;
-
-            StaticsManager.GetInstance().RewardItem(itemId, StaticsManager.ItemType.金币, amt.ToString("0"), consumeModule);
-        }
-    }
-
-    public static void AddDiamond(double amt, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule)
-    {
-        Diamond += amt;
-
-        if (amt > 0)
-        {
-            StaticsManager.GetInstance().RewardItem(itemId, StaticsManager.ItemType.钻石, amt.ToString("0"), consumeModule);
-        }
-    }
-
-
-    public override void Reactive()
-    {
-        foreach (var kv in SkillDictionary)
-        {
-            kv.Value.Reactive();
-        }
-
-        InitAllSkill(false);
-        GetOfflineIncome();
-
-        SignManager.ShowPanels();
-    }
-
-    public override void InstantiatePrefabs()
-    {
-        #region 生成技能条
-
-        #region 读技能配置
-
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillConfig();
-
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            SkillRoot skillRoot;
-
-            #region MyRegion
-
-            if (attributeList[i].Count == 18)
-            {
-                skillRoot = new Pack(attributeList[i]);
-            }
-            else if (attributeList[i].Count == 24)
-            {
-                skillRoot = new Ability(attributeList[i]);
-            }
-            else if (attributeList[i].Count == 34)
-            {
-                if (string.IsNullOrEmpty(attributeList[i][4].Value))
-                {
-                    skillRoot = new Skill(attributeList[i]);
-                }
-                else
-                {
-                    skillRoot = new BigSkill(attributeList[i]);
-                }
-            }
-            else
-            {
-                throw new Exception(attributeList[i].Count.ToString());
-            }
-
-            #endregion
-
-            SkillDictionary.Add(skillRoot.FullID, skillRoot);
-            SkillList.Add(skillRoot);
-        }
-
-        SkillList.Sort(SkillRoot.Sort);
-
-        #endregion
-
-        for (int i = 0; i < SkillList.Count; i++)
-        {
-            if (SkillList[i].SkillTab != SkillTab.Null)
-            {
-                ResourceManager.GetSkillItem(SkillList[i]);
-            }
-        }
-
-        #endregion
-    }
-
-    public override void FirstInit()
-    {
-        ResourceManager.Get<Graphic>(CanvasLabel.F_Elf).material = Lib.GrayMat;
-        ResourceManager.Get<Graphic>(CanvasLabel.F_Store).material = Lib.GrayMat;
-        ResourceManager.Get<Graphic>(CanvasLabel.F_Magic).material = Lib.GrayMat;
-
-        ResourceManager.Get<Graphic>(CanvasLabel.F_ElfLab).material = Lib.GrayMat;
-        ResourceManager.Get<Graphic>(CanvasLabel.F_StoreLab).material = Lib.GrayMat;
-        ResourceManager.Get<Graphic>(CanvasLabel.F_MagicLab).material = Lib.GrayMat;
-
-        ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = false;
-        ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = false;
-        ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = false;
-
-
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList();
-
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            SkillRoot skillRoot = SkillDictionary[attributeList[i][0].Value];
-
-            if (!(skillRoot is Skill))
-            {
-                skillRoot.RegistReference();
-
-                skillRoot.Init(true, OfflineTime, OfflineUsingSkillList, attributeList[i]);
-            }
-        }
-    }
-
-    public override void SecondInit()
-    {
-        Instance = this;
-
-        Coin = ConfigManager.GetDoubleFormConfig(PlayerConfigLabel.Coin);
-        Diamond = ConfigManager.GetDoubleFormConfig(PlayerConfigLabel.Diamond);
-        MinigameCDTimer = ConfigManager.GetFloatFormConfig(PlayerConfigLabel.MiniTimer);
-        IncomeCircleTimer = ConfigManager.GetFloatFormConfig(PlayerConfigLabel.CircleTimer);
-
-        if (MinigameCDTimer > 0)
-        {
-            ResourceManager.Get(CanvasLabel.C_MiniGame).TweenForRect();
-            if (ConfigManager.GetBoolFormConfig(PlayerConfigLabel.MinigameCoolFlag))
-            {
-                CDMinigamePanelManager.DisableCDButton();
-            }
-        }
-        else
-        {
-            MinigameFlag = true;
-        }
-
-        HttpManager.ID = ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID);
-        HttpManager.SerialNumber = ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber);
-
-        List<string> offlineList = ConfigManager.GetOfflineConfig();
-
-        OfflineMaxCoin = Auxiliary.StringToLong(offlineList[1], 999999999999999999);
-        OfflineMaxTime = Auxiliary.StringToLong(offlineList[2], 999999999999999999);
-        OfflineIncomeFml = offlineList[0];
-
-
-        List<double> dataList = ConfigManager.GetAchieveValues();
-
-        PlayADsAmt = dataList[0];
-        AllElfLevel = dataList[4];
-        UseSkillAmt = dataList[1];
-        SignAmt = dataList[2];
-        ShareAmt = dataList[3];
-        TotalFlowerAwardCoin = dataList[6];
-        TotalVisitPerson = dataList[7];
-        TotalSpendDiamond = dataList[8];
-        PlayMinigameAmt = dataList[5];
-        CreateRoomAmt = dataList[9];
-        CreateChestAmt = dataList[10];
-        CreateLuckyChestAmt = dataList[11];
-        CreateGuessColorChestAmt = dataList[12];
-        CreateGuessNumberChestAmt = dataList[13];
-        GetChestAwardAmt = dataList[14];
-    }
-
-
-    public static void InitAllSkill(bool firstRegist)
-    {
-        OfflineFlag = false;
-        float realOfflineTime = 0;
-
-        ResourceManager.SetActive(CanvasLabel.Ba_Lab2, false);
-
-        if (HttpManager.IsConnect && ConfigManager.GetBoolFormConfig(PlayerConfigLabel.QuitFlag))
-        {
-            AlreadyGetOfflineIncome = true;
-            LastQuitTime = DateTime.Parse(ConfigManager.GetStringFormConfig(PlayerConfigLabel.QuitTime));
-
-            OfflineTime = (float)HttpManager.CurrentDateTime.Subtract(LastQuitTime).TotalSeconds;
-
-            MinigameCDTimer -= OfflineTime;
-
-            if (OfflineTime <= OfflineMinTime)
-            {
-                realOfflineTime = OfflineTime;
-                OfflineTime = 0;
-            }
-            else
-            {
-                OfflineFlag = true;
-            }
-
-            if (OfflineTime > OfflineMaxTime)
-            {
-                OfflineTime = (long)OfflineMaxTime;
-
-                ResourceManager.SetText(CanvasLabel.Ba_Lab2, Language.GetStr(LanguageLabel.UI__Ba_Lab2));
-                ResourceManager.SetActive(CanvasLabel.Ba_Lab2, true);
-            }
-        }
-        else
-        {
-            if (ConfigManager.GetBoolFormConfig(PlayerConfigLabel.QuitFlag))
-            {
-                AlreadyGetOfflineIncome = false;
-                LastQuitTime = DateTime.Parse(ConfigManager.GetStringFormConfig(PlayerConfigLabel.QuitTime));
-                GameBeginTime = Time.time;
-            }
-        }
-
-
-        OfflineUsingSkillList = new List<List<Skill>>();
-        OfflineCoolSkillList = new List<Skill>();
-
-        if (OfflineTime > IncomeCircleTimer)
-        {
-            int circle = 1 + Mathf.FloorToInt((OfflineTime - IncomeCircleTimer) / IncomeCircleTime);
-
-            for (int i = 0; i < circle; i++)
-            {
-                OfflineUsingSkillList.Add(new List<Skill>());
-            }
-        }
-
-
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList();
-
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            SkillRoot skillRoot = SkillDictionary[attributeList[i][0].Value];
-
-            if (skillRoot is Skill)
-            {
-                skillRoot.RegistReference();
-
-                skillRoot.Init(firstRegist, OfflineTime, OfflineUsingSkillList, attributeList[i]);
-            }
-        }
-
-        if (OfflineFlag == false)
-        {
-            foreach (var skill in CoolSkillList)
-            {
-                skill.CoolTimer -= realOfflineTime;
-            }
-        }
-    }
-    
-    public static void GetOfflineIncome()
-    {
-        double coin = 0;
-
-        for (int i = 0; i < OfflineUsingSkillList.Count; i++)
-        {
-            for (int j = 0; j < OfflineCoolSkillList.Count; j++)
-            {
-                OfflineCoolSkillList[j].CoolTimer -= IncomeCircleTime;
-            }
-
-            for (int j = 0; j < OfflineUsingSkillList[i].Count; j++)
-            {
-                OfflineUsingSkillList[i][j].AnnulEffect();
-
-                OfflineCoolSkillList.Add(OfflineUsingSkillList[i][j]);
-            }
-
-            TotalVisitPerson += CurrentPerson*IncomeCircleTime;
-
-            coin += CircleIncome;
-        }
-
-        IncomeCircleTimer = (OfflineTime - IncomeCircleTimer)%IncomeCircleTime;
-
-        for (int j = 0; j < OfflineCoolSkillList.Count; j++)
-        {
-            OfflineCoolSkillList[j].CoolTimer -= IncomeCircleTime - IncomeCircleTimer;
-        }
-
-
-        coin = (long) AdjustOfflineIncome(coin);
-
-        AddCoin(coin, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Income);
-
-        ResourceManager.SetText(CanvasLabel.Ba_IconLab, Auxiliary.ShrinkBigNumberStr(coin));
-    }
-
-    public static double AdjustOfflineIncome(double offlineIncome)
-    {
-        offlineIncome = (long)Auxiliary.FmlParse(OfflineIncomeFml, "c", offlineIncome.ToString());
-
-        if (offlineIncome > OfflineMaxCoin)
-        {
-            offlineIncome = OfflineMaxCoin;
-
-            ResourceManager.SetText(CanvasLabel.Ba_Lab2, Language.GetStr(LanguageLabel.UI__Ba_Lab2));
-            ResourceManager.SetActive(CanvasLabel.Ba_Lab2, true);
-        }
-
-        return offlineIncome;
-    }
-
-    public new static void SwitchLanguage()
-    {
-        Coin = Coin;
-        AddDiamond(0, StaticsManager.ItemID.None, StaticsManager.ConsumeModule.None);
-    }
-
-    public static void Pay(string id, double amt, Current current, UnityAction succeedCallback, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule, bool navigate = true, bool useBubbleTweenNavigate = true, UnityAction navigateCall = null, int buyAmount = 1)
-    {
-        if (TutorialManager.PayExempt)
-        {
-            succeedCallback.Invoke();
-
-            return;
-        }
-
-        amt = Auxiliary.ShrinkNumber(amt);
-
-        if (current == Current.Free)
-        {
-            succeedCallback.Invoke();
-        }
-        else if (current == Current.AD)
-        {
-            IAPManager.PlayAD(succeedCallback);
-        }
-        else if (current == Current.Cash)
-        {
-            IAPManager.TryPurchase(id);
-        }
-        else if (current == Current.Coin)
-        {
-            #region MyRegion
-
-            if (Coin >= amt)
-            {
-                Coin -= amt;
-
-                succeedCallback.Invoke();
-
-                StaticsManager.GetInstance().UseItem(itemId, StaticsManager.ItemType.金币, buyAmount.ToString(), consumeModule);
-            }
-            else
-            {
-                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-                if (navigate)
-                {
-                    Bubble.Show
-                    (
-                        Language.GetStr(LanguageLabel.Common__ShortCoin),
-                        "",
-                        null,
-                        Lib.GoldSprite,
-                        () =>
-                        {
-                            navigateCall.SafeInvoke();
-
-                            if (useBubbleTweenNavigate)
-                            {
-                                TweenRoot tween = ResourceManager.Get(CanvasLabel.K_Bubble0).GetTweenScale();
-
-                                tween.AddEventOnetime
-                                (
-                                    EventType.BackwardFinish,
-                                    () =>
-                                    {
-                                        UIManager.NavigateToBuyCoin();
-                                    }
-                                );
-                            }
-                            else
-                            {
-                                TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                                tween.AddEventOnetime
-                                (
-                                    EventType.ForwardFinish,
-                                    () =>
-                                    {
-                                        UIManager.NavigateToBuyCoin();
-                                    }
-                                );
-                            }
-                        }
-                    );
-                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__NavigateCoin);
-                    Bubble.Lab3.SetActive(true);
-                    Bubble.Lab.SetActive(false);
-                }
-                else
-                {
-                    Bubble.Show
-                    (
-                        null,
-                        null,
-                        null,
-                        Lib.GoldSprite
-                    );
-                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortCoin);
-                    Bubble.Lab3.SetActive(true);
-                }
-            }
-
-            #endregion
-        }
-        else if (current == Current.Diamond)
-        {
-            #region MyRegion
-
-            if (Diamond >= amt)
-            {
-                Diamond -= amt;
-
-                TotalSpendDiamond += amt;
-
-                succeedCallback.Invoke();
-
-                StaticsManager.GetInstance().PurchaseItem(itemId, StaticsManager.ItemType.钻石, buyAmount.ToString(), amt.ToString("0"), consumeModule);
-            }
-            else
-            {
-                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-                if (navigate)
-                {
-                    Bubble.Show
-                    (
-                        Language.GetStr(LanguageLabel.Common__ShortDiamond),
-                        "",
-                        null,
-                        Lib.DiamondSprite,
-                        () =>
-                        {
-                            navigateCall.SafeInvoke();
-
-                            if (useBubbleTweenNavigate)
-                            {
-                                TweenRoot tween = ResourceManager.Get(CanvasLabel.K_Bubble0).GetTweenScale();
-
-                                tween.AddEventOnetime
-                                (
-                                    EventType.BackwardFinish,
-                                    () =>
-                                    {
-                                        UIManager.NavigateToBuyDiamond();
-                                    }
-                                );
-                            }
-                            else
-                            {
-                                TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                                tween.AddEventOnetime
-                                    (
-                                        EventType.ForwardFinish,
-                                        () =>
-                                        {
-                                            UIManager.NavigateToBuyDiamond();
-                                        }
-                                    );
-                            }
-                        }
-                    );
-                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__NavigateDiamond);
-                    Bubble.Lab3.SetActive(true);
-                    Bubble.Lab.SetActive(false);
-                }
-                else
-                {
-                    Bubble.Show
-                    (
-                        null,
-                        null,
-                        null,
-                        Lib.DiamondSprite
-                    );
-                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortDiamond);
-                    Bubble.Lab3.SetActive(true);
-                }
-            }
-
-            #endregion
-        }
-        else
-        {
-            throw new Exception(current.ToString());
-        }
-    }
-
-
-    public static void FirstTimeLoginCallback(JsonData jsonData)
-    {
-        if (!Initializer.Inited || !HttpManager.Inited || Inited)
-        {
-            return;
-        }
-
-        HttpManager.GetBuyPackLimitFlag();
-
-        if (HttpManager.IsConnect)
-        {
-            if (ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID) == PlayerConfigLabel.DefaultID)
-            {
-                HttpManager.ID = HttpManager.LoginCallbackData["o"].ToString();
-
-                ResourceManager.SetText(CanvasLabel.L_UserLab, HttpManager.ID);
-            }
-
-            if (ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber) == PlayerConfigLabel.DefaultSerialNumber)
-            {
-                HttpManager.SerialNumber = HttpManager.LoginCallbackData["i"].ToString();
-            }
-        }
-
-        InitAllSkill(true);
-        GetOfflineIncome();
-
-        SignManager.ShowPanels();
-
-        Analytics.SetUserId(HttpManager.ID);
-
-        Inited = true;
-        
-        GardenLevel = GardenLevel;
-
-        if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
-        {
-            HttpManager.GetSelfConfig();
-        }
-        else
-        {
-            HttpManager.UploadConfig();
-        }
-
-        ConfigManager.SaveConfigDocument();
-        ConfigManager.SaveConfigDocumentToDisk();
-    }
-
-    public static void ReactiveLoginCallback(JsonData jsonData)
-    {
-        LoginFlag = false;
-
-        for (int i = 0; i < Initializer.RegistList.Count; i++)
-        {
-            Initializer.RegistList[i].Reactive();
-        }
-    }
-
-
-    public static void SwitchConfig(string id)
-    {
-        ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__L_Downloading));
-
-        ResourceManager.SetActive(CanvasLabel.La_Lab, true);
-        ResourceManager.SetActive(CanvasLabel.La_Mask, true);
-
-
-        HttpManager.GetConfigByID(id, SwitchConfigCallback);
-    }
-    
-    public static void SwitchConfigCallback(JsonData jsonData)
-    {
-        if (jsonData.Inst_Object.Keys.Contains("l"))
-        {
-            ResourceManager.Get(CanvasLabel.La_Info).TweenBacCG();
-
-            ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__La_Lab0));
-
-
-            ConfigManager.ConfigDocument.LoadXml(jsonData["l"].ToString());
-
-            ConfigManager.ConfigRootNode = ConfigManager.ConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
-
-
-            ResourceManager.SetText(CanvasLabel.L_UserLab, ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID));
-
-            HttpManager.ID = ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID);
-            HttpManager.SerialNumber = ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber);
-            Debug.Log(HttpManager.ID);
-            Debug.Log(HttpManager.SerialNumber);
-            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__La_Lab0), null, null, () => { Application.Quit(); }, null, false);
-
-
-            UploadConfigFlag = true;
-
-            DownloadConfigFlag = true;
-
-            ConfigManager.SaveConfigDocumentToDisk();
-            PlayerPrefs.SetString(Lib.ConfigPrefs, "");
-        }
-        else
-        {
-            ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__La_Lab1));
-
-            ResourceManager.SetActive(CanvasLabel.La_Mask, false);
-        }
-    }
-
-
-    public void OnApplicationQuit()
-    {
-        if (!UploadConfigFlag)
-        {
-            VisitManager.ReverseConfigData();
-
-            ConfigManager.SaveConfigDocument();
-            ConfigManager.SaveConfigDocumentToDisk();
-        }
-    }
-
-    public void OnApplicationPause(bool pause)
-    {
-        if (pause)
-        {
-            InBackground = true;
-            AlreadyGetOfflineIncome = true;
-
-            if (DownloadConfigFlag)
-            {
-                return;
-            }
-
-            VisitManager.ReverseConfigData();
-
-            ConfigManager.SaveConfigDocument();
-            ConfigManager.SaveConfigDocumentToDisk();
-        }
-        else
-        {
-            StaticsManager.GetInstance().StartSession();
-
-            InBackground = false;
-
-            if (IsFirstFrame)
-            {
-                IsFirstFrame = false;
-            }
-            else
-            {
-                if (TutorialManager.NewplayerTutorial)
-                {
-                    return;
-                }
-
-                if (!Initializer.Inited)
-                {
-                    return;
-                }
-
-                if (!Initializer.IsGameActivated)
-                {
-                    return;
-                }
-
-                if (DownloadConfigFlag)
-                {
-                    return;
-                }
-
-                VisitManager.RecoverConfigData();
-
-                if (LoginFlag)
-                {
-                    return;
-                }
-
-                if (ReactiveFlag)
-                {
-                    ReactiveFlag = false;
-
-                    return;
-                }
-
-                LoginFlag = true;
-
-                HttpManager.Login(ReactiveLoginCallback);
-                HttpManager.GetMailAwardData();
-            }
-        }
-    }
+using LitJson;
+
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.Events;
+using UnityEngine.Analytics;
+using UnityEngine.EventSystems;
+
+using System;
+using System.Xml;
+using System.Collections;
+using System.Collections.Generic;
+
+public class Manager : Regist 
+{
+    #region Config
+
+    #region 成就
+
+    public static double PlayADsAmt
+    {
+        get { return playADsAmt; }
+        set
+        {
+            playADsAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.PlayADsAmt, playADsAmt);
+        }
+    }
+    private static double playADsAmt;
+
+    public static double UseSkillAmt
+    {
+        get { return useSkillAmt; }
+        set
+        {
+            useSkillAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.UseSkillAmt, useSkillAmt);
+        }
+    }
+    private static double useSkillAmt;
+
+    public static double SignAmt
+    {
+        get { return signAmt; }
+        set
+        {
+            signAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.SignAmt, signAmt);
+        }
+    }
+    private static double signAmt;
+
+    public static double CloseAmt
+    {
+        get { return closeAmt; }
+        set
+        {
+            closeAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CloseAmt, closeAmt);
+        }
+    }
+    private static double closeAmt;
+
+    public static double ShareAmt
+    {
+        get { return shareAmt; }
+        set
+        {
+            shareAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.ShareAmt, shareAmt);
+        }
+    }
+    private static double shareAmt;
+
+    public static double PlayMinigameAmt
+    {
+        get { return playMinigameAmt; }
+        set
+        {
+            playMinigameAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.PlayMinigameAmt, playMinigameAmt);
+        }
+    }
+    private static double playMinigameAmt;
+
+    public static double AllElfLevel
+    {
+        get { return allElfLevel; }
+        set
+        {
+            allElfLevel = value;
+
+            AchieveManager.UpdateStatus(AchieveType.AllElfLevel, allElfLevel);
+        }
+    }
+    private static double allElfLevel;
+
+    public static double TotalCoin
+    {
+        get { return totalCoin; }
+        set
+        {
+            totalCoin = value;
+
+            AchieveManager.UpdateStatus(AchieveType.TotalCoin, totalCoin);
+        }
+    }
+    private static double totalCoin;
+
+    public static double TotalFlowerAwardCoin
+    {
+        get { return totalFlowerAwardCoin; }
+        set
+        {
+            totalFlowerAwardCoin = value;
+            
+            AchieveManager.UpdateStatus(AchieveType.TotalFlowerAwardCoin, totalFlowerAwardCoin);
+        }
+    }
+    private static double totalFlowerAwardCoin;
+
+    public static double TotalVisitPerson
+    {
+        get { return totalVisitPerson; }
+        set
+        {
+            totalVisitPerson = value;
+
+            AchieveManager.UpdateStatus(AchieveType.TotalVisitPerson, totalVisitPerson);
+        }
+    }
+    private static double totalVisitPerson;
+
+    public static double TotalSpendDiamond
+    {
+        get { return totalSpendDiamond; }
+        set
+        {
+            totalSpendDiamond = value;
+
+            AchieveManager.UpdateStatus(AchieveType.TotalSpendDiamond, totalSpendDiamond);
+        }
+    }
+    private static double totalSpendDiamond;
+
+    public static double CreateRoomAmt
+    {
+        get { return createRoomAmt; }
+        set
+        {
+            createRoomAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateRoomAmt, createRoomAmt);
+        }
+    }
+    private static double createRoomAmt;
+
+    public static double CreateChestAmt
+    {
+        get { return createChestAmt; }
+        set
+        {
+            createChestAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateChestAmt, createChestAmt);
+        }
+    }
+    private static double createChestAmt;
+
+    public static double CreateLuckyChestAmt
+    {
+        get { return createLuckyChestAmt; }
+        set
+        {
+            createLuckyChestAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateLuckyChestAmt, createLuckyChestAmt);
+        }
+    }
+    private static double createLuckyChestAmt;
+
+    public static double CreateGuessColorChestAmt
+    {
+        get { return createGuessColorChestAmt; }
+        set
+        {
+            createGuessColorChestAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateGuessColorChestAmt, createGuessColorChestAmt);
+        }
+    }
+    private static double createGuessColorChestAmt;
+
+    public static double CreateGuessNumberChestAmt
+    {
+        get { return createGuessNumberChestAmt; }
+        set
+        {
+            createGuessNumberChestAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.CreateGuessNumberChestAmt, createGuessNumberChestAmt);
+        }
+    }
+    private static double createGuessNumberChestAmt;
+
+    public static double GetChestAwardAmt
+    {
+        get { return getChestAwardAmt; }
+        set
+        {
+            getChestAwardAmt = value;
+
+            AchieveManager.UpdateStatus(AchieveType.GetChestAwardAmt, getChestAwardAmt);
+        }
+    }
+    private static double getChestAwardAmt;
+
+    #endregion
+
+    public static Action<int> OnLevelChange;
+    public static Action<double> OnCoinChange;
+    public static Action<double> OnDiamondChange;
+
+    public static int GardenLevel
+    {
+        get { return gardenLevel; }
+        set
+        {
+            gardenLevel = value;
+
+            if (!Inited)
+            {
+                return;
+            }
+
+            LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_LevelText), new MulLanStr(LanguageLabel.UI__C_Level), gardenLevel.ToString());
+
+            VisitManager.UpdateVisitCost();
+
+            AchieveManager.UpdateStatus(AchieveType.GardenLevel, gardenLevel);
+            
+            for (int i = 0; i < SkillList.Count; i++)
+            {
+                SkillList[i].UpdateStatus();
+            }
+
+            foreach (var kv in PlayerManager.CloseItemDictionary)
+            {
+                kv.Value.OnLevelChange();
+            }
+
+            if (OnLevelChange != null)
+            {
+                OnLevelChange.Invoke(gardenLevel);
+            }
+
+            if (gardenLevel >= TutorialManager.MemoryMinigameTutorialLevel)
+            {
+                if (TutorialManager.memoryMinigameTutorial)
+                {
+                    TutorialManager.MemoryMinigameTutorial = true;
+                }
+            }
+
+            if (GardenLevel < TutorialManager.DressroomTutorialLevel)
+            {
+                ResourceManager.Get<Image>(CanvasLabel.C_DressRoom).material = Lib.GrayMat;
+            }
+            else
+            {
+                ResourceManager.Get<Image>(CanvasLabel.C_DressRoom).material = null;
+            }
+
+            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindSoloGame && gardenLevel >= TutorialManager.FindSoloMinigameTutorialLevel)
+            {
+                if (TutorialManager.findSoloMinigameTutorial)
+                {
+                    TutorialManager.PlayFindSoloGame();
+                }
+            }
+
+            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindMissingGame && gardenLevel >= TutorialManager.FindMissingMinigameTutorialLevel)
+            {
+                if (TutorialManager.findMissingMinigameTutorial)
+                {
+                    TutorialManager.PlayFindMissingGame();
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.CommentTutorialLevel)
+            {
+                ResourceManager.Get(CanvasLabel.C_CommentParent).TweenForCG();
+            }
+
+            if (gardenLevel >= TutorialManager.VisitTutorialLevel)
+            {
+                if (TutorialManager.visitTutorial)
+                {
+                    TutorialManager.ClickVisitBtn();
+                    return;
+                }
+                else
+                {
+                    ResourceManager.SetActive(CanvasLabel.C_Visit, true);
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.DressroomTutorialLevel)
+            {
+                if (TutorialManager.dressroomTutorial)
+                {
+                    TutorialManager.ClickDressroomButton();
+                    return;
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.PlazaRoomTutorialLevel)
+            {
+                if (TutorialManager.plazaRoomTutorial)
+                {
+                    TutorialManager.ClickPlazaRoomBtn();
+                    return;
+                }
+                else
+                {
+                    ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom, true);
+                    ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.FashionShowTutorialLevel)
+            {
+                if (TutorialManager.fashionShowTutorial)
+                {
+                    TutorialManager.BeginFashionShowTutorial();
+                    return;
+                }
+            }
+
+            if (gardenLevel >= TutorialManager.ChangeMouseTutorialLevel)
+            {
+                if (TutorialManager.changeMouseTutorial)
+                {
+                    TutorialManager.BeginChangeMouseTutorial();
+                    return;
+                }
+            }
+        }
+    }
+    private static int gardenLevel;
+
+    public static float Person
+    {
+        get { return person; }
+        set
+        {
+            person = value;
+            ResourceManager.SetText(CanvasLabel.F_PersonLab,  Auxiliary.ShrinkBigNumberStr(CurrentPerson*60));
+        }
+    }
+    private static float person;
+    public static List<string> ExtraPersonSourceSpritesName = new List<string>();
+
+    public static float CoinPerson
+    {
+        get { return coinPerson; }
+        set
+        {
+            coinPerson = value;
+
+            ResourceManager.SetText(CanvasLabel.F_CoinPersonLab, Auxiliary.ShrinkBigNumberStr(CurrentCoinPerson));
+        }
+    }
+    private static float coinPerson;
+    public static List<string> ExtraCoinPersonSourceSpritesName = new List<string>();
+
+    public static float SkillPerson
+    {
+        get { return skillPerson; }
+        set
+        {
+            skillPerson = value;
+
+            //TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
+
+            //if (skillPerson.Equal(0))
+            //{
+            //    tween.Pause();
+
+            //    tween.Target.enabled = false;
+            //}
+            //else
+            //{
+            //    if (tween.InPause)
+            //    {
+            //        tween.Resume();
+
+            //        tween.Target.enabled = true;
+            //    }
+            //    else
+            //    {
+            //        tween.StartForward();
+            //    }
+            //}
+
+            Person = Person;
+        }
+    }
+    public static float skillPerson;
+
+    public static float TempSkillPerson
+    {
+        get { return tempSkillPerson; }
+        set
+        {
+            tempSkillPerson = value;
+
+            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
+            
+            if (tempSkillPerson.Equal(0) && tempSkillPersonBuff.Equal(0))
+            {
+                tween.Pause();
+
+                tween.Target.enabled = false;
+            }
+            else
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+            }
+
+            Person = Person;
+        }
+    }
+    public static float tempSkillPerson;
+
+    public static float SkillPersonBuff
+    {
+        get { return skillPersonBuff; }
+        set
+        {
+            skillPersonBuff = value;
+
+            Person = Person;
+        }
+    }
+    public static float skillPersonBuff;
+
+    public static float TempSkillPersonBuff
+    {
+        get { return tempSkillPersonBuff; }
+        set
+        {
+            tempSkillPersonBuff = value;
+
+            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_PersonLab).GetTweenOutline();
+
+            if (tempSkillPerson.Equal(0) && tempSkillPersonBuff.Equal(0))
+            {
+                tween.Pause();
+
+                tween.Target.enabled = false;
+            }
+            else
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+            }
+
+            Person = Person;
+        }
+    }
+    public static float tempSkillPersonBuff;
+
+    public static float SkillCoinPerson
+    {
+        get { return skillCoinPerson; }
+        set
+        {
+            skillCoinPerson = value;
+
+            CoinPerson = CoinPerson;
+        }
+    }
+    public static float skillCoinPerson;
+
+    public static float TempSkillCoinPerson
+    {
+        get { return tempSkillCoinPerson; }
+        set
+        {
+            tempSkillCoinPerson = value;
+
+            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_CoinPersonLab).GetTweenOutline();
+
+            if (tempSkillCoinPerson.Equal(0) && tempSkillCoinPersonBuff.Equal(0))
+            {
+                tween.Pause();
+
+                tween.Target.enabled = false;
+            }
+            else
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+            }
+
+            CoinPerson = CoinPerson;
+        }
+    }
+    public static float tempSkillCoinPerson;
+
+    public static float SkillCoinPersonBuff
+    {
+        get { return skillCoinPersonBuff; }
+        set
+        {
+            skillCoinPersonBuff = value;
+
+            CoinPerson = CoinPerson;
+        }
+    }
+    public static float skillCoinPersonBuff;
+
+    public static float TempSkillCoinPersonBuff
+    {
+        get { return tempSkillCoinPersonBuff; }
+        set
+        {
+            tempSkillCoinPersonBuff = value;
+
+            TweenOutline tween = ResourceManager.Get(CanvasLabel.F_CoinPersonLab).GetTweenOutline();
+
+            if (tempSkillCoinPersonBuff.Equal(0) && tempSkillCoinPerson.Equal(0))
+            {
+                tween.Pause();
+
+                tween.Target.enabled = false;
+            }
+            else
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+            }
+
+            CoinPerson = CoinPerson;
+        }
+    }
+    public static float tempSkillCoinPersonBuff;
+
+    public static float IncomeBuff
+    {
+        get { return SkillCoinPersonBuff + FlowerPlus; }
+    }
+
+    public static float FlowerPlus
+    {
+        get { return flowerPlus; }
+        set
+        {
+            flowerPlus = value;
+        }
+    }
+    public static float flowerPlus;
+
+    public static float CurrentPerson
+    {
+        get
+        {
+            //Debug.Log(Person * (1 + SkillPersonBuff + TempSkillPersonBuff) + SkillPerson + TempSkillPerson);
+            return Person*(1 + SkillPersonBuff + TempSkillPersonBuff) + SkillPerson + TempSkillPerson;
+        }
+    }
+    public static float CurrentCoinPerson
+    {
+        get
+        {
+            //Debug.Log(CoinPerson * (1 + SkillCoinPersonBuff + TempSkillCoinPersonBuff) + SkillCoinPerson + TempSkillCoinPerson);
+            return CoinPerson*(1 + SkillCoinPersonBuff + TempSkillCoinPersonBuff) + SkillCoinPerson + TempSkillCoinPerson;
+        }
+    }
+
+    public static double Coin
+    {
+        get { return coin; }
+        set
+        {
+            coin = value;
+            
+            ResourceManager.SetText(CanvasLabel.F_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
+            ResourceManager.SetText(CanvasLabel.C_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
+            ResourceManager.SetText(CanvasLabel.P_CoinLab, Auxiliary.ShrinkBigNumberStr(coin));
+
+            AchieveManager.UpdateStatus(AchieveType.CurrentCoin, coin);
+
+            OnCoinChange.SafeInvoke(coin);
+        }
+    }
+    public static double coin;
+
+    public static double Diamond
+    {
+        get { return diamond; }
+        set
+        {
+            diamond = value;
+
+            ResourceManager.SetText(CanvasLabel.F_DiamondLab, Auxiliary.ShrinkBigNumberStr(diamond));
+            ResourceManager.SetText(CanvasLabel.P_DiamondLab, Auxiliary.ShrinkBigNumberStr(diamond));
+
+            OnDiamondChange.SafeInvoke(diamond);
+        }
+    }
+    public static double diamond;
+
+    public static bool MinigameFlag;
+    public static bool UploadConfigFlag;
+    public static bool LoginFlag;
+    public static bool ReactiveFlag;
+    public static bool DownloadConfigFlag;
+    public static bool SceneSwitchFlag;
+
+    public static bool Inited;
+    public static bool IsFirstFrame = true;
+    public static bool InBackground;
+
+    public static float IncomeDisplayTime = 60f;
+    public static float IncomeCircleTime = 10;
+    public static float IncomeCircleTimer;
+    public static float CircleIncome
+    {
+        get
+        {
+            return CurrentPerson * IncomeCircleTime * CurrentCoinPerson * (1 + FlowerPlus);
+        }
+    }
+
+    public static float GameBeginTime;
+    public static bool AlreadyGetOfflineIncome;
+    public static bool OfflineFlag;
+    public static float OfflineTime;
+    public static string OfflineIncomeFml;
+    public static double OfflineMaxCoin;
+    public static double OfflineMaxTime;
+    public static double OfflineMinTime = 120;
+
+    public static float InputDetectTime = 45;
+    public static float InputDetectTimer;
+
+    public static float LoginTime = 10f;
+    public static float LoginTimer;
+
+    public static float MinigameCDTimer;
+
+    public static float UploadConfigTime = 60f;
+    public static float UploadConfigTimer;
+
+    public static Manager Instance;
+    public static DateTime LastQuitTime;
+
+    public static List<Skill> UsingSkillList = new List<Skill>();
+    public static List<Skill> CoolSkillList = new List<Skill>();
+    public static List<Skill> OfflineCoolSkillList = new List<Skill>();
+    public static List<List<Skill>> OfflineUsingSkillList = new List<List<Skill>>();
+
+    public static List<SkillRoot> SkillList = new List<SkillRoot>();
+    public static Dictionary<string, SkillRoot> SkillDictionary = new Dictionary<string, SkillRoot>();
+
+    #endregion
+    
+    private void Update()
+    {
+        LoginThread();
+        
+        if (TutorialManager.NewplayerTutorial)
+        {
+            return;
+        }
+
+        InputDetectThread();
+
+        ProcessSkillThread();
+
+        MinigameCDThread();
+
+        UploadConfigThread();
+
+        IncomeCircleThread();
+    }
+
+    private void InputDetectThread()
+    {
+        //if (VisitManager.InVisit)
+        //{
+        //    return;
+        //}
+
+        if (Auxiliary.AnyKeyUp)
+        {
+            InputDetectTimer = 0;
+
+            ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
+        }
+        else
+        {
+            InputDetectTimer += Time.deltaTime;
+
+            if (InputDetectTimer >= InputDetectTime)
+            {
+                InputDetectTimer = 0;
+
+                ResourceManager.Get(CanvasLabel.C_Group).TweenBacCG();
+            }
+        }
+    }
+
+    private void ProcessSkillThread()
+    {
+        for (int i = 0; i < UsingSkillList.Count; i++)
+        {
+            if (UsingSkillList[i].DoUpdate())
+            {
+                UsingSkillList.RemoveAt(i--);
+            }
+        }
+
+        for (int i = 0; i < CoolSkillList.Count; i++)
+        {
+            if (CoolSkillList[i].DoCD())
+            {
+                CoolSkillList.RemoveAt(i--);
+            }
+        }
+    }
+
+    private void MinigameCDThread()
+    {
+        if (!MinigameFlag)
+        {
+            MinigameCDTimer -= Time.deltaTime;
+
+            ResourceManager.SetText(CanvasLabel.C_MiniGameLab, Mathf.CeilToInt(MinigameCDTimer).ToString());
+
+            if (MinigameCDTimer < 0)
+            {
+                MinigameFlag = true;
+
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacRect();
+
+                CDMinigamePanelManager.EnableCDButton();
+
+                ResourceManager.SetText(CanvasLabel.C_MiniGameLab, "");
+
+                StaticsManager.GetInstance().RewardItem(StaticsManager.ItemID.获得小游戏, StaticsManager.ItemType.小游戏, "1", StaticsManager.ConsumeModule.None);
+            }
+        }
+    }
+
+    private void UploadConfigThread()
+    {
+        if (DownloadConfigFlag)
+        {
+            return;
+        }
+
+        UploadConfigTimer += Time.deltaTime;
+
+        if (UploadConfigTimer >= UploadConfigTime)
+        {
+            UploadConfigTimer = 0;
+
+            if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
+            {
+                HttpManager.GetSelfConfig();
+            }
+            else
+            {
+                HttpManager.UploadConfig();
+            }
+        }
+    }
+
+    private void LoginThread()
+    {
+        LoginTimer += Time.deltaTime;
+
+        if (LoginTimer >= LoginTime)
+        {
+            LoginTimer = 0;
+
+            HttpManager.Login();
+
+            StaticsManager.GetInstance().Online();
+        }
+    }
+
+    private void IncomeCircleThread()
+    {
+        IncomeCircleTimer -= Time.deltaTime;
+
+        if (IncomeCircleTimer < 0)
+        {
+            IncomeCircleTimer = IncomeCircleTime;
+
+            TotalVisitPerson += CurrentPerson * IncomeCircleTime;
+            
+            float circleIncome = CircleIncome;
+
+            AddCoin(circleIncome, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Income);
+
+            ResourceManager.Get(CanvasLabel.C_IncomeLab).TweenReForGra();
+            ResourceManager.Get(CanvasLabel.C_IncomeLab).TweenReForVec();
+            ResourceManager.SetText(CanvasLabel.C_IncomeLab, "+" + Auxiliary.ShrinkBigNumberStr(circleIncome, 0));
+        }
+    }
+
+
+    public static void AddCoin(double amt, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule)
+    {
+        Coin += amt;
+
+        if (amt > 0)
+        {
+            TotalCoin += amt;
+
+            StaticsManager.GetInstance().RewardItem(itemId, StaticsManager.ItemType.金币, amt.ToString("0"), consumeModule);
+        }
+    }
+
+    public static void AddDiamond(double amt, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule)
+    {
+        Diamond += amt;
+
+        if (amt > 0)
+        {
+            StaticsManager.GetInstance().RewardItem(itemId, StaticsManager.ItemType.钻石, amt.ToString("0"), consumeModule);
+        }
+    }
+
+
+    public override void Reactive()
+    {
+        foreach (var kv in SkillDictionary)
+        {
+            kv.Value.Reactive();
+        }
+
+        InitAllSkill(false);
+        GetOfflineIncome();
+
+        SignManager.ShowPanels();
+    }
+
+    public override void InstantiatePrefabs()
+    {
+        #region 生成技能条
+
+        #region 读技能配置
+
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillConfig();
+
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            SkillRoot skillRoot;
+
+            #region MyRegion
+
+            if (attributeList[i].Count == 18)
+            {
+                skillRoot = new Pack(attributeList[i]);
+            }
+            else if (attributeList[i].Count == 24)
+            {
+                skillRoot = new Ability(attributeList[i]);
+            }
+            else if (attributeList[i].Count == 34)
+            {
+                if (string.IsNullOrEmpty(attributeList[i][4].Value))
+                {
+                    skillRoot = new Skill(attributeList[i]);
+                }
+                else
+                {
+                    skillRoot = new BigSkill(attributeList[i]);
+                }
+            }
+            else
+            {
+                throw new Exception(attributeList[i].Count.ToString());
+            }
+
+            #endregion
+
+            SkillDictionary.Add(skillRoot.FullID, skillRoot);
+            SkillList.Add(skillRoot);
+        }
+
+        SkillList.Sort(SkillRoot.Sort);
+
+        #endregion
+
+        for (int i = 0; i < SkillList.Count; i++)
+        {
+            if (SkillList[i].SkillTab != SkillTab.Null)
+            {
+                ResourceManager.GetSkillItem(SkillList[i]);
+            }
+        }
+
+        #endregion
+    }
+
+    public override void FirstInit()
+    {
+        ResourceManager.Get<Graphic>(CanvasLabel.F_Elf).material = Lib.GrayMat;
+        ResourceManager.Get<Graphic>(CanvasLabel.F_Store).material = Lib.GrayMat;
+        ResourceManager.Get<Graphic>(CanvasLabel.F_Magic).material = Lib.GrayMat;
+
+        ResourceManager.Get<Graphic>(CanvasLabel.F_ElfLab).material = Lib.GrayMat;
+        ResourceManager.Get<Graphic>(CanvasLabel.F_StoreLab).material = Lib.GrayMat;
+        ResourceManager.Get<Graphic>(CanvasLabel.F_MagicLab).material = Lib.GrayMat;
+
+        ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = false;
+        ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = false;
+        ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = false;
+
+
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList();
+
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            SkillRoot skillRoot = SkillDictionary[attributeList[i][0].Value];
+
+            if (!(skillRoot is Skill))
+            {
+                skillRoot.RegistReference();
+
+                skillRoot.Init(true, OfflineTime, OfflineUsingSkillList, attributeList[i]);
+            }
+        }
+    }
+
+    public override void SecondInit()
+    {
+        Instance = this;
+
+        Coin = ConfigManager.GetDoubleFormConfig(PlayerConfigLabel.Coin);
+        Diamond = ConfigManager.GetDoubleFormConfig(PlayerConfigLabel.Diamond);
+        MinigameCDTimer = ConfigManager.GetFloatFormConfig(PlayerConfigLabel.MiniTimer);
+        IncomeCircleTimer = ConfigManager.GetFloatFormConfig(PlayerConfigLabel.CircleTimer);
+
+        if (MinigameCDTimer > 0)
+        {
+            ResourceManager.Get(CanvasLabel.C_MiniGame).TweenForRect();
+            if (ConfigManager.GetBoolFormConfig(PlayerConfigLabel.MinigameCoolFlag))
+            {
+                CDMinigamePanelManager.DisableCDButton();
+            }
+        }
+        else
+        {
+            MinigameFlag = true;
+        }
+
+        HttpManager.ID = ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID);
+        HttpManager.SerialNumber = ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber);
+
+        List<string> offlineList = ConfigManager.GetOfflineConfig();
+
+        OfflineMaxCoin = Auxiliary.StringToLong(offlineList[1], 999999999999999999);
+        OfflineMaxTime = Auxiliary.StringToLong(offlineList[2], 999999999999999999);
+        OfflineIncomeFml = offlineList[0];
+
+
+        List<double> dataList = ConfigManager.GetAchieveValues();
+
+        PlayADsAmt = dataList[0];
+        AllElfLevel = dataList[4];
+        UseSkillAmt = dataList[1];
+        SignAmt = dataList[2];
+        ShareAmt = dataList[3];
+        TotalFlowerAwardCoin = dataList[6];
+        TotalVisitPerson = dataList[7];
+        TotalSpendDiamond = dataList[8];
+        PlayMinigameAmt = dataList[5];
+        CreateRoomAmt = dataList[9];
+        CreateChestAmt = dataList[10];
+        CreateLuckyChestAmt = dataList[11];
+        CreateGuessColorChestAmt = dataList[12];
+        CreateGuessNumberChestAmt = dataList[13];
+        GetChestAwardAmt = dataList[14];
+    }
+
+
+    public static void InitAllSkill(bool firstRegist)
+    {
+        OfflineFlag = false;
+        float realOfflineTime = 0;
+
+        ResourceManager.SetActive(CanvasLabel.Ba_Lab2, false);
+
+        if (HttpManager.IsConnect && ConfigManager.GetBoolFormConfig(PlayerConfigLabel.QuitFlag))
+        {
+            AlreadyGetOfflineIncome = true;
+            LastQuitTime = DateTime.Parse(ConfigManager.GetStringFormConfig(PlayerConfigLabel.QuitTime));
+
+            OfflineTime = (float)HttpManager.CurrentDateTime.Subtract(LastQuitTime).TotalSeconds;
+
+            MinigameCDTimer -= OfflineTime;
+
+            if (OfflineTime <= OfflineMinTime)
+            {
+                realOfflineTime = OfflineTime;
+                OfflineTime = 0;
+            }
+            else
+            {
+                OfflineFlag = true;
+            }
+
+            if (OfflineTime > OfflineMaxTime)
+            {
+                OfflineTime = (long)OfflineMaxTime;
+
+                ResourceManager.SetText(CanvasLabel.Ba_Lab2, Language.GetStr(LanguageLabel.UI__Ba_Lab2));
+                ResourceManager.SetActive(CanvasLabel.Ba_Lab2, true);
+            }
+        }
+        else
+        {
+            if (ConfigManager.GetBoolFormConfig(PlayerConfigLabel.QuitFlag))
+            {
+                AlreadyGetOfflineIncome = false;
+                LastQuitTime = DateTime.Parse(ConfigManager.GetStringFormConfig(PlayerConfigLabel.QuitTime));
+                GameBeginTime = Time.time;
+            }
+        }
+
+
+        OfflineUsingSkillList = new List<List<Skill>>();
+        OfflineCoolSkillList = new List<Skill>();
+
+        if (OfflineTime > IncomeCircleTimer)
+        {
+            int circle = 1 + Mathf.FloorToInt((OfflineTime - IncomeCircleTimer) / IncomeCircleTime);
+
+            for (int i = 0; i < circle; i++)
+            {
+                OfflineUsingSkillList.Add(new List<Skill>());
+            }
+        }
+
+
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList();
+
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            SkillRoot skillRoot = SkillDictionary[attributeList[i][0].Value];
+
+            if (skillRoot is Skill)
+            {
+                skillRoot.RegistReference();
+
+                skillRoot.Init(firstRegist, OfflineTime, OfflineUsingSkillList, attributeList[i]);
+            }
+        }
+
+        if (OfflineFlag == false)
+        {
+            foreach (var skill in CoolSkillList)
+            {
+                skill.CoolTimer -= realOfflineTime;
+            }
+        }
+    }
+    
+    public static void GetOfflineIncome()
+    {
+        double coin = 0;
+
+        for (int i = 0; i < OfflineUsingSkillList.Count; i++)
+        {
+            for (int j = 0; j < OfflineCoolSkillList.Count; j++)
+            {
+                OfflineCoolSkillList[j].CoolTimer -= IncomeCircleTime;
+            }
+
+            for (int j = 0; j < OfflineUsingSkillList[i].Count; j++)
+            {
+                OfflineUsingSkillList[i][j].AnnulEffect();
+
+                OfflineCoolSkillList.Add(OfflineUsingSkillList[i][j]);
+            }
+
+            TotalVisitPerson += CurrentPerson*IncomeCircleTime;
+
+            coin += CircleIncome;
+        }
+
+        IncomeCircleTimer = (OfflineTime - IncomeCircleTimer)%IncomeCircleTime;
+
+        for (int j = 0; j < OfflineCoolSkillList.Count; j++)
+        {
+            OfflineCoolSkillList[j].CoolTimer -= IncomeCircleTime - IncomeCircleTimer;
+        }
+
+
+        coin = (long) AdjustOfflineIncome(coin);
+
+        AddCoin(coin, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Income);
+
+        ResourceManager.SetText(CanvasLabel.Ba_IconLab, Auxiliary.ShrinkBigNumberStr(coin));
+    }
+
+    public static double AdjustOfflineIncome(double offlineIncome)
+    {
+        offlineIncome = (long)Auxiliary.FmlParse(OfflineIncomeFml, "c", offlineIncome.ToString());
+
+        if (offlineIncome > OfflineMaxCoin)
+        {
+            offlineIncome = OfflineMaxCoin;
+
+            ResourceManager.SetText(CanvasLabel.Ba_Lab2, Language.GetStr(LanguageLabel.UI__Ba_Lab2));
+            ResourceManager.SetActive(CanvasLabel.Ba_Lab2, true);
+        }
+
+        return offlineIncome;
+    }
+
+    public new static void SwitchLanguage()
+    {
+        Coin = Coin;
+        AddDiamond(0, StaticsManager.ItemID.None, StaticsManager.ConsumeModule.None);
+    }
+
+    public static void Pay(string id, double amt, Current current, UnityAction succeedCallback, StaticsManager.ItemID itemId, StaticsManager.ConsumeModule consumeModule, bool navigate = true, bool useBubbleTweenNavigate = true, UnityAction navigateCall = null, int buyAmount = 1)
+    {
+        if (TutorialManager.PayExempt)
+        {
+            succeedCallback.Invoke();
+
+            return;
+        }
+
+        amt = Auxiliary.ShrinkNumber(amt);
+
+        if (current == Current.Free)
+        {
+            succeedCallback.Invoke();
+        }
+        else if (current == Current.AD)
+        {
+            IAPManager.PlayAD(succeedCallback);
+        }
+        else if (current == Current.Cash)
+        {
+            IAPManager.TryPurchase(id);
+        }
+        else if (current == Current.Coin)
+        {
+            #region MyRegion
+
+            if (Coin >= amt)
+            {
+                Coin -= amt;
+
+                succeedCallback.SafeInvoke();
+
+                StaticsManager.GetInstance().UseItem(itemId, StaticsManager.ItemType.金币, buyAmount.ToString(), consumeModule);
+            }
+            else
+            {
+                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+                if (navigate)
+                {
+                    Bubble.Show
+                    (
+                        Language.GetStr(LanguageLabel.Common__ShortCoin),
+                        "",
+                        null,
+                        Lib.GoldSprite,
+                        () =>
+                        {
+                            navigateCall.SafeInvoke();
+
+                            if (useBubbleTweenNavigate)
+                            {
+                                TweenRoot tween = ResourceManager.Get(CanvasLabel.K_Bubble0).GetTweenScale();
+
+                                tween.AddEventOnetime
+                                (
+                                    EventType.BackwardFinish,
+                                    () =>
+                                    {
+                                        UIManager.NavigateToBuyCoin();
+                                    }
+                                );
+                            }
+                            else
+                            {
+                                TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                                tween.AddEventOnetime
+                                (
+                                    EventType.ForwardFinish,
+                                    () =>
+                                    {
+                                        UIManager.NavigateToBuyCoin();
+                                    }
+                                );
+                            }
+                        }
+                    );
+                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__NavigateCoin);
+                    Bubble.Lab3.SetActive(true);
+                    Bubble.Lab.SetActive(false);
+                }
+                else
+                {
+                    Bubble.Show
+                    (
+                        null,
+                        null,
+                        null,
+                        Lib.GoldSprite
+                    );
+                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortCoin);
+                    Bubble.Lab3.SetActive(true);
+                }
+            }
+
+            #endregion
+        }
+        else if (current == Current.Diamond)
+        {
+            #region MyRegion
+
+            if (Diamond >= amt)
+            {
+                Diamond -= amt;
+
+                TotalSpendDiamond += amt;
+
+                succeedCallback.SafeInvoke();
+
+                StaticsManager.GetInstance().PurchaseItem(itemId, StaticsManager.ItemType.钻石, buyAmount.ToString(), amt.ToString("0"), consumeModule);
+            }
+            else
+            {
+                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+                if (navigate)
+                {
+                    Bubble.Show
+                    (
+                        Language.GetStr(LanguageLabel.Common__ShortDiamond),
+                        "",
+                        null,
+                        Lib.DiamondSprite,
+                        () =>
+                        {
+                            navigateCall.SafeInvoke();
+
+                            if (useBubbleTweenNavigate)
+                            {
+                                TweenRoot tween = ResourceManager.Get(CanvasLabel.K_Bubble0).GetTweenScale();
+
+                                tween.AddEventOnetime
+                                (
+                                    EventType.BackwardFinish,
+                                    () =>
+                                    {
+                                        UIManager.NavigateToBuyDiamond();
+                                    }
+                                );
+                            }
+                            else
+                            {
+                                TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                                tween.AddEventOnetime
+                                    (
+                                        EventType.ForwardFinish,
+                                        () =>
+                                        {
+                                            UIManager.NavigateToBuyDiamond();
+                                        }
+                                    );
+                            }
+                        }
+                    );
+                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__NavigateDiamond);
+                    Bubble.Lab3.SetActive(true);
+                    Bubble.Lab.SetActive(false);
+                }
+                else
+                {
+                    Bubble.Show
+                    (
+                        null,
+                        null,
+                        null,
+                        Lib.DiamondSprite
+                    );
+                    Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortDiamond);
+                    Bubble.Lab3.SetActive(true);
+                }
+            }
+
+            #endregion
+        }
+        else
+        {
+            throw new Exception(current.ToString());
+        }
+    }
+
+
+    public static void FirstTimeLoginCallback(JsonData jsonData)
+    {
+        if (!Initializer.Inited || !HttpManager.Inited || Inited)
+        {
+            return;
+        }
+
+        HttpManager.GetBuyPackLimitFlag();
+
+        if (HttpManager.IsConnect)
+        {
+            if (ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID) == PlayerConfigLabel.DefaultID)
+            {
+                HttpManager.ID = HttpManager.LoginCallbackData["o"].ToString();
+
+                ResourceManager.SetText(CanvasLabel.L_UserLab, HttpManager.ID);
+            }
+
+            if (ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber) == PlayerConfigLabel.DefaultSerialNumber)
+            {
+                HttpManager.SerialNumber = HttpManager.LoginCallbackData["i"].ToString();
+            }
+        }
+
+        InitAllSkill(true);
+        GetOfflineIncome();
+
+        SignManager.ShowPanels();
+
+        Analytics.SetUserId(HttpManager.ID);
+
+        Inited = true;
+        
+        GardenLevel = GardenLevel;
+
+        if (!PlayerPrefManager.GetBool(PlayerPrefManager.INTERACT_CONFIG, false))
+        {
+            HttpManager.GetSelfConfig();
+        }
+        else
+        {
+            HttpManager.UploadConfig();
+        }
+
+        ConfigManager.SaveConfigDocument();
+        ConfigManager.SaveConfigDocumentToDisk();
+    }
+
+    public static void ReactiveLoginCallback(JsonData jsonData)
+    {
+        LoginFlag = false;
+
+        for (int i = 0; i < Initializer.RegistList.Count; i++)
+        {
+            Initializer.RegistList[i].Reactive();
+        }
+    }
+
+
+    public static void SwitchConfig(string id)
+    {
+        ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__L_Downloading));
+
+        ResourceManager.SetActive(CanvasLabel.La_Lab, true);
+        ResourceManager.SetActive(CanvasLabel.La_Mask, true);
+
+
+        HttpManager.GetConfigByID(id, SwitchConfigCallback);
+    }
+    
+    public static void SwitchConfigCallback(JsonData jsonData)
+    {
+        if (jsonData.Inst_Object.Keys.Contains("l"))
+        {
+            ResourceManager.Get(CanvasLabel.La_Info).TweenBacCG();
+
+            ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__La_Lab0));
+
+
+            ConfigManager.ConfigDocument.LoadXml(jsonData["l"].ToString());
+
+            ConfigManager.ConfigRootNode = ConfigManager.ConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
+
+
+            ResourceManager.SetText(CanvasLabel.L_UserLab, ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID));
+
+            HttpManager.ID = ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID);
+            HttpManager.SerialNumber = ConfigManager.GetStringFormConfig(PlayerConfigLabel.SerialNumber);
+            Debug.Log(HttpManager.ID);
+            Debug.Log(HttpManager.SerialNumber);
+            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__La_Lab0), null, null, () => { Application.Quit(); }, null, false);
+
+
+            UploadConfigFlag = true;
+
+            DownloadConfigFlag = true;
+
+            ConfigManager.SaveConfigDocumentToDisk();
+            PlayerPrefs.SetString(Lib.ConfigPrefs, "");
+        }
+        else
+        {
+            ResourceManager.SetText(CanvasLabel.La_Lab, Language.GetStr(LanguageLabel.UI__La_Lab1));
+
+            ResourceManager.SetActive(CanvasLabel.La_Mask, false);
+        }
+    }
+
+
+    public void OnApplicationQuit()
+    {
+        if (!UploadConfigFlag)
+        {
+            VisitManager.ReverseConfigData();
+
+            ConfigManager.SaveConfigDocument();
+            ConfigManager.SaveConfigDocumentToDisk();
+        }
+    }
+
+    public void OnApplicationPause(bool pause)
+    {
+        if (pause)
+        {
+            InBackground = true;
+            AlreadyGetOfflineIncome = true;
+
+            if (DownloadConfigFlag)
+            {
+                return;
+            }
+
+            VisitManager.ReverseConfigData();
+
+            ConfigManager.SaveConfigDocument();
+            ConfigManager.SaveConfigDocumentToDisk();
+        }
+        else
+        {
+            StaticsManager.GetInstance().StartSession();
+
+            InBackground = false;
+
+            if (IsFirstFrame)
+            {
+                IsFirstFrame = false;
+            }
+            else
+            {
+                if (TutorialManager.NewplayerTutorial)
+                {
+                    return;
+                }
+
+                if (!Initializer.Inited)
+                {
+                    return;
+                }
+
+                if (!Initializer.IsGameActivated)
+                {
+                    return;
+                }
+
+                if (DownloadConfigFlag)
+                {
+                    return;
+                }
+
+                VisitManager.RecoverConfigData();
+
+                if (LoginFlag)
+                {
+                    return;
+                }
+
+                if (ReactiveFlag)
+                {
+                    ReactiveFlag = false;
+
+                    return;
+                }
+
+                LoginFlag = true;
+
+                HttpManager.Login(ReactiveLoginCallback);
+                HttpManager.GetMailAwardData();
+            }
+        }
+    }
 }

+ 10 - 0
Assets/Script/Manage/Panel.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c02fa3e2428900e4f8257b0bee9fe0e2
+folderAsset: yes
+timeCreated: 1525664646
+licenseType: Pro
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 83 - 0
Assets/Script/Manage/Panel/ChangeMouseBubble.cs

@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class ChangeMouseBubble : Regist
+{
+    public static Text titleTxt;
+    public static Text coinTxt;
+    public static Text diamondTxt;
+    public static Text confirmTxt;
+    public static Text cancelTxt;
+    public static Button confirmBtn;
+    public static Button cancelBtn;
+    public static Transform panel;
+    public static Transform subPanel;
+
+    public static Action confirmCallback;
+    public static Action cancelCallback;
+
+    public override void RegistReference()
+    {
+        titleTxt = ResourceManager.Get<Text>(CanvasLabel.AM_Title);
+        coinTxt = ResourceManager.Get<Text>(CanvasLabel.AM_CoinLab);
+        diamondTxt = ResourceManager.Get<Text>(CanvasLabel.AM_DiamondLab);
+        confirmTxt = ResourceManager.Get<Text>(CanvasLabel.AM_ConfirmLab);
+        cancelTxt = ResourceManager.Get<Text>(CanvasLabel.AM_CancelLab);
+        confirmBtn = ResourceManager.Get<Button>(CanvasLabel.AM_Confirm);
+        cancelBtn = ResourceManager.Get<Button>(CanvasLabel.AM_Cancel);
+        panel = ResourceManager.Get(CanvasLabel.AM_Bubble);
+        subPanel = ResourceManager.Get(CanvasLabel.AM_Bubble0);
+    }
+
+    public override void ThirdInit()
+    {
+        LanguageManager.Add(titleTxt, new MulLanStr(LanguageLabel.UI__AL_Tip));
+        LanguageManager.Add(confirmTxt, new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(cancelTxt, new MulLanStr(LanguageLabel.Common__Cancel));
+
+        panel.CreateTweenCG(1f, 0.25f, false, true, Curve.EaseOutQuad);
+        subPanel.CreateTweenScale(Vector3.one, 0.25f, true, true, Curve.EaseOutQuad);
+
+        confirmBtn.onClick.AddListener(OnConfirmClick);
+        cancelBtn.onClick.AddListener(OnCancelClick);
+    }
+
+    public static void Open(Action confirm, Action cancel)
+    {
+        AudioManager.PlayClip(ResourceLabel.BubbleClip);
+
+        panel.TweenForCG();
+        subPanel.TweenForScale();
+
+        coinTxt.text = Auxiliary.ShrinkAllNumberStr(ChangeMousePanel.goldCost, 0);
+        diamondTxt.text = Auxiliary.ShrinkAllNumberStr(ChangeMousePanel.diamondCost, 0);
+
+        confirmCallback = confirm;
+        cancelCallback = cancel;
+    }
+
+    public static void Close()
+    {
+        panel.TweenBacCG();
+        subPanel.TweenBacScale();
+    }
+
+    public static void OnConfirmClick()
+    {
+        Close();
+        confirmCallback.SafeInvoke();
+        AudioManager.PlayClip(ResourceLabel.CurrentClip);
+    }
+
+    public static void OnCancelClick()
+    {
+        Close();
+        cancelCallback.SafeInvoke();
+        AudioManager.PlayClip(ResourceLabel.CloseClip);
+    }
+}

+ 13 - 0
Assets/Script/Manage/Panel/ChangeMouseBubble.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: d7b9cdf26d33ea54cbab37189d5eac53
+timeCreated: 1525677704
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 239 - 0
Assets/Script/Manage/Panel/ChangeMousePanel.cs

@@ -0,0 +1,239 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class ChangeMousePanel : Regist
+{
+    public static Text titleTxt;
+    public static Text closeTxt;
+    public static TextPlus costTxt;
+    public static Button resetBtn;
+    public static Button saveBtn;
+    public static Button closeBtn;
+    public static Button eyeBtn;
+    public static Button mouseBtn;
+    public static Image eyeIcon;
+    public static Image mouseIcon;
+    public static Text eyeTxt;
+    public static Text mouseTxt;
+    public static Transform playerPos;
+    public static Transform eyeTab;
+    public static Transform mouseTab;
+    public static Transform panel;
+
+    public static string goldCostFml;
+    public static string diamondCostFml;
+    public static double goldCost;
+    public static double diamondCost;
+    public static Player player;
+    public static List<int> originDressIds = new List<int>();
+    public static List<int> currentDressIds = new List<int>();
+
+    public static Dictionary<int, EyeCloseItem> eyeCloseItemDict = new Dictionary<int, EyeCloseItem>();
+    public static Dictionary<int, MouseCloseItem> mouseCloseItemDict = new Dictionary<int, MouseCloseItem>();
+
+    public override void RegistReference()
+    {
+        titleTxt = ResourceManager.Get<Text>(CanvasLabel.AL_Tit);
+        closeTxt = ResourceManager.Get<Text>(CanvasLabel.AL_CloseLab);
+        costTxt = ResourceManager.Get<TextPlus>(CanvasLabel.AL_CostLab);
+        resetBtn = ResourceManager.Get<Button>(CanvasLabel.AL_Reset);
+        saveBtn = ResourceManager.Get<Button>(CanvasLabel.AL_Save);
+        closeBtn = ResourceManager.Get<Button>(CanvasLabel.AL_Close);
+        eyeBtn = ResourceManager.Get<Button>(CanvasLabel.AL_HairBtn);
+        mouseBtn = ResourceManager.Get<Button>(CanvasLabel.AL_DressBtn);
+        eyeIcon = ResourceManager.Get<Image>(CanvasLabel.AL_HairIcon);
+        mouseIcon = ResourceManager.Get<Image>(CanvasLabel.AL_DressIcon);
+        eyeTxt = ResourceManager.Get<Text>(CanvasLabel.AL_HairLab);
+        mouseTxt = ResourceManager.Get<Text>(CanvasLabel.AL_DressLab);
+        playerPos = ResourceManager.Get(CanvasLabel.AL_PlayerPos);
+        eyeTab = ResourceManager.Get(CanvasLabel.AL_EyeTab);
+        mouseTab = ResourceManager.Get(CanvasLabel.AL_MouseTab);
+        panel = ResourceManager.Get(CanvasLabel.AL_ChangeMousePanel);
+    }
+
+    public override void ThirdInit()
+    {
+        XmlDocument document = ConfigManager.GetXmlDocument(ResourceLabel.CostConfig);
+        XmlNodeList nodes = document.SelectSingleNode(ConfigLabel.RootNode).ChildNodes;
+        goldCostFml = nodes[1].Attributes[1].Value;
+        diamondCostFml = nodes[2].Attributes[1].Value;
+
+        LanguageManager.Add(titleTxt, new MulLanStr(LanguageLabel.UI__AL_Title));
+        LanguageManager.Add(closeTxt, new MulLanStr(LanguageLabel.UI__AL_Close));
+        LanguageManager.Add(eyeTxt, new MulLanStr(LanguageLabel.UI__AL_Eye));
+        LanguageManager.Add(mouseTxt, new MulLanStr(LanguageLabel.UI__AL_Mouse));
+
+        foreach (var kv in PlayerManager.CloseItemDictionary)
+        {
+            if (kv.Value.BodyPart == BodyPart.Eye)
+            {
+                EyeCloseItem eyeCloseItem = new EyeCloseItem(kv.Value);
+                eyeCloseItemDict.Add(kv.Key, eyeCloseItem);
+            }
+            else if (kv.Value.BodyPart == BodyPart.Mouse)
+            {
+                MouseCloseItem mouseCloseItem = new MouseCloseItem(kv.Value);
+                mouseCloseItemDict.Add(kv.Key, mouseCloseItem);
+            }
+        }
+
+        panel.CreateTweenCG(1f, 0.25f, false, true, Curve.EaseOutQuad);
+        eyeBtn.CreateTweenScale(eyeBtn.transform.localScale + Vector3.one*0.1f, 0.25f, true, true, Curve.EaseOutQuad);
+        mouseBtn.CreateTweenScale(mouseBtn.transform.localScale + Vector3.one * 0.1f, 0.25f, true, true, Curve.EaseOutQuad);
+
+        saveBtn.onClick.AddListener(OnSaveClick);
+        resetBtn.onClick.AddListener(OnResetClick);
+        eyeBtn.onClick.AddListener(OnEyeTabClick);
+        mouseBtn.onClick.AddListener(OnMouseTabClick);
+        closeBtn.onClick.AddListener(OnCloseClick);
+    }
+
+    public static void Open()
+    {
+        panel.TweenForCG();
+
+        if (player != null)
+        {
+            Destroy(player.gameObject);
+        }
+
+        originDressIds = PlayerManager.Player.GetCurrentChangableDressIDs();
+        currentDressIds = new List<int>(originDressIds);
+        BuildPlayer(currentDressIds);
+
+        goldCost = Auxiliary.FmlParse(goldCostFml, "c", (Manager.CircleIncome*6).ToString("0"));
+        diamondCost = Auxiliary.FmlParse(diamondCostFml, "l", Manager.GardenLevel.ToString());
+        costTxt.text = Language.GetStr(LanguageLabel.UI__AL_Cost) + " " + TransferLabel.CoinSprite + Auxiliary.ShrinkAllNumberStr(goldCost, 0) + " " + TransferLabel.DiamondSprite + Auxiliary.ShrinkAllNumberStr(diamondCost, 0);
+
+        OnEyeTabClick();
+    }
+
+    public static void BuildPlayer(List<int> dressIds)
+    {
+        player = PlayerManager.Instance.GetRawPlayer();
+        player.transform.SetParent(playerPos);
+        player.transform.localPosition = Vector3.zero;
+        foreach (var closeID in dressIds)
+        {
+            CloseItem closeItem = PlayerManager.CloseItemDictionary[closeID];
+            closeItem.ChangeDress(player, false);
+        }
+        DelayCall.Call(1, () => { player.DisplayInUI(30f, true); });
+    }
+
+    public static void Close()
+    {
+        AudioManager.PlayClip(ResourceLabel.CloseClip);
+
+        panel.TweenBacCG();
+    }
+
+    public static void OnMouseTabClick()
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+
+        eyeTab.SetActive(false);
+        eyeIcon.SetActive(false);
+        eyeBtn.TweenBacScale();
+
+        mouseTab.SetActive(true);
+        mouseIcon.SetActive(true);
+        mouseBtn.TweenForScale();
+    }
+
+    public static void OnEyeTabClick()
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+
+        eyeTab.SetActive(true);
+        eyeIcon.SetActive(true);
+        eyeBtn.TweenForScale();
+
+        mouseTab.SetActive(false);
+        mouseIcon.SetActive(false);
+        mouseBtn.TweenBacScale();
+    }
+
+    public static void OnCloseClick()
+    {
+        if (HasCloseChanged())
+        {
+            if (Manager.coin < goldCost)
+            {
+                Close();
+                return;
+            }
+
+            if (Manager.diamond < diamondCost)
+            {
+                Close();
+                return;
+            }
+
+            ChangeMouseBubble.Open(SaveDressIds, Close);
+        }
+        else
+        {
+            Close();
+        }
+    }
+
+    public static void OnResetClick()
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+
+        currentDressIds = new List<int>(originDressIds);
+        Destroy(player.gameObject);
+        BuildPlayer(originDressIds);
+    }
+
+    public static void OnSaveClick()
+    {
+        if (HasCloseChanged())
+        {
+            if (Manager.coin < goldCost)
+            {
+                Bubble.Show(null, Language.GetStr(LanguageLabel.Common__ShortCoin));
+                return;
+            }
+
+            if (Manager.diamond < diamondCost)
+            {
+                Bubble.Show(null, Language.GetStr(LanguageLabel.Common__ShortDiamond));
+                return;
+            }
+
+            ChangeMouseBubble.Open(SaveDressIds, null);
+        }
+    }
+
+    public static void SaveDressIds()
+    {
+        PlayerManager.Player.ChangeClose(BodyPart.Eye, PlayerManager.CloseItemDictionary[currentDressIds[5]].ArmatureName);
+        PlayerManager.Player.ChangeClose(BodyPart.Mouse, PlayerManager.CloseItemDictionary[currentDressIds[6]].ArmatureName);
+        PlayerManager.DressDatas[5] = PlayerManager.Player.Eye;
+        PlayerManager.DressDatas[6] = PlayerManager.Player.Mouse;
+        originDressIds[5] = currentDressIds[5];
+        originDressIds[6] = currentDressIds[6];
+
+        Manager.Pay("", goldCost, Current.Coin, null, StaticsManager.ItemID.解锁服装, StaticsManager.ConsumeModule.Charge);
+        Manager.Pay("", diamondCost, Current.Diamond, null, StaticsManager.ItemID.解锁服装, StaticsManager.ConsumeModule.Charge);
+    }
+
+    public static bool HasCloseChanged()
+    {
+        for (int i = 0; i < originDressIds.Count; i++)
+        {
+            if (originDressIds[i] != currentDressIds[i])
+            {
+                return true;
+            }
+        }
+        return false;
+    }
+}

+ 13 - 0
Assets/Script/Manage/Panel/ChangeMousePanel.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 8e3ab1514ed5df14f8028575c121f57a
+timeCreated: 1525664646
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 37 - 0
Assets/Script/Manage/Panel/EyeCloseItem.cs

@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UnityEngine;
+using UnityEngine.UI;
+using Object = UnityEngine.Object;
+
+public class EyeCloseItem
+{
+    public Button button;
+    public Image icon;
+    public Transform trans;
+    public Player player;
+    public CloseItem closeItem;
+
+    public EyeCloseItem(CloseItem closeItem)
+    {
+        this.closeItem = closeItem;
+        trans = ResourceManager.Get(ResourceLabel.MouseCloseItem, Folder.UI, false, ResourceManager.Get(CanvasLabel.AL_EyeTab), false);
+        button = trans.GetComponent<Button>();
+        icon = trans.GetChild(0).GetComponent<Image>();
+
+        icon.sprite = closeItem.Sprites[0];
+        icon.SetNativeSize();
+        icon.rectTransform.SetSizeDeltaByRatio(0.25f, 0.25f);
+
+        button.onClick.AddListener(OnButtonClick);
+    }
+
+    public void OnButtonClick()
+    {
+        Object.Destroy(ChangeMousePanel.player.gameObject);
+        ChangeMousePanel.currentDressIds[5] = closeItem.ID;
+        ChangeMousePanel.BuildPlayer(ChangeMousePanel.currentDressIds);
+    }
+}

+ 13 - 0
Assets/Script/Manage/Panel/EyeCloseItem.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: bc4047a21cf404a44b95ada26aa4d872
+timeCreated: 1525674450
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 36 - 0
Assets/Script/Manage/Panel/MouseCloseItem.cs

@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UnityEngine;
+using UnityEngine.UI;
+using Object = UnityEngine.Object;
+
+public class MouseCloseItem
+{
+    public Button button;
+    public Image icon;
+    public Transform trans;
+    public Player player;
+    public CloseItem closeItem;
+
+    public MouseCloseItem(CloseItem closeItem)
+    {
+        this.closeItem = closeItem;
+        trans = ResourceManager.Get(ResourceLabel.MouseCloseItem, Folder.UI, false, ResourceManager.Get(CanvasLabel.AL_MouseTab), false);
+        button = trans.GetComponent<Button>();
+        icon = trans.GetChild(0).GetComponent<Image>();
+
+        icon.sprite = closeItem.Sprites[0];
+        icon.SetNativeSize();
+
+        button.onClick.AddListener(OnButtonClick);
+    }
+
+    public void OnButtonClick()
+    {
+        Object.Destroy(ChangeMousePanel.player.gameObject);
+        ChangeMousePanel.currentDressIds[6] = closeItem.ID;
+        ChangeMousePanel.BuildPlayer(ChangeMousePanel.currentDressIds);
+    }
+}

+ 13 - 0
Assets/Script/Manage/Panel/MouseCloseItem.cs.meta

@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 3b8a15cfcfb1d3645a4ae66f4ca77068
+timeCreated: 1525674450
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 286 - 286
Assets/Script/Manage/PlayerManager.cs

@@ -1,287 +1,287 @@
-using DragonBones;
-
-#if UNITY_EDITOR
-using UnityEditor;
-#endif
-
-using UnityEngine;
-using UnityEngine.UI;
-
-using System;
-using System.Xml;
-using System.Text;
-using System.Linq;
-using System.Collections;
-using System.Diagnostics;
-using System.Collections.Generic;
-using Debug = UnityEngine.Debug;
-using Object = UnityEngine.Object;
-using Transform = UnityEngine.Transform;
-
-public class PlayerManager : Regist 
-{
-    #region Config
-
-    public static bool Inited;
-    public static Player Player;
-    public static Transform DressRoom;
-    public static Transform DefaultPinkPlayer;
-    public static Transform DefaultBlondPlayer;
-    public static Transform DefaultBrownPlayer;
-    public static Transform SelectedPlayer;
-    public static PlayerManager Instance;
-
-    public static List<int>BoughtCloseIDs = new List<int>();
-    public static List<string> DressDatas = new List<string>();  
-    public static Dictionary<int, CloseItem> CloseItemDictionary = new Dictionary<int, CloseItem>();
-    public static Dictionary<string, int> CloseIDDictionary = new Dictionary<string, int>();
-    public static Dictionary<string, Sprite> CloseSpriteDictionary = new Dictionary<string, Sprite>();
-    public static Dictionary<string, Texture2D> CloseTextureDictionary = new Dictionary<string, Texture2D>();
-
-    #endregion
-
-    public override void InstantiatePrefabs()
-    {
-        #region Player
-
-        Initializer.DebugText.text = "error : mp0";
-        if (!Inited)
-        {
-            //Initializer.DebugText.text = "error : mp0-1";
-            //UnityFactory.factory.LoadDragonBonesData(ResourceManager.Load<TextAsset>(ResourceLabel.StandSke, Folder.Config));
-
-            //Initializer.DebugText.text = "error : mp0-2";
-            //UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(ResourceLabel.StandTex0, Folder.Config), ResourceLabel.StandTexture0);
-
-            //Initializer.DebugText.text = "error : mp0-3";
-            //UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(ResourceLabel.StandTex1, Folder.Config), ResourceLabel.StandTexture1);
-
-            Inited = true;
-        }
-
-        Initializer.DebugText.text = "error : mp1";
-        if (!TutorialManager.NewplayerTutorial || TutorialManager.NewplayerTutorialIndex != 1)
-        {
-            GetPlayer();
-
-            DressDatas = ConfigManager.GetDressData();
-        }
-        else
-        {
-            DefaultPinkPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.PinkPlayerPos), false, ObjType.Player);
-            DefaultBlondPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BlondPlayerPos), false, ObjType.Player);
-            DefaultBrownPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BrownPlayerPos), false, ObjType.Player);
-            
-            if (DefaultPinkPlayer.GetComponent<Player>() == null)
-            {
-                DefaultPinkPlayer.AddScript<Player>().BuildPink();
-            }
-
-            if (DefaultBlondPlayer.GetComponent<Player>() == null)
-            {
-                DefaultBlondPlayer.AddScript<Player>().BuildBlond();
-            }
-
-            if (DefaultBrownPlayer.GetComponent<Player>() == null)
-            {
-                DefaultBrownPlayer.AddScript<Player>().BuildBrown();
-            }
-
-            Vector3 tutorialPlayerScale = new Vector3(0.8f, 0.8f, 0.8f);
-            DefaultPinkPlayer.localScale = tutorialPlayerScale;
-            DefaultBlondPlayer.localScale = tutorialPlayerScale;
-            DefaultBrownPlayer.localScale = tutorialPlayerScale;
-
-            SelectedPlayer = DefaultBlondPlayer;
-        }
-
-        #endregion
-
-        #region DressRoom
-
-        Initializer.DebugText.text = "error : mp2";
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetDressRoomConfig();
-
-        Player.InDressRoomJumpFrequency = float.Parse(attributeList[0][1].Value);
-
-
-        Initializer.DebugText.text = "error : mp3";
-        DressRoom = ResourceManager.Get(ResourceLabel.DressRoom, Folder.UI, true, null, true, ObjType.DressRoom);
-        DressRoom.SetActive(false);
-        DontDestroyOnLoad(DressRoom);
-
-        Initializer.DebugText.text = "error : mp4";
-        List<int> dressList = ConfigManager.GetDressList();
-
-        Initializer.DebugText.text = "error : mp5";
-        for (int i = 0; i < dressList.Count; i++)
-        {
-            BoughtCloseIDs.Add(dressList[i]);
-        }
-
-        #endregion
-    }
-
-    public override void FirstInit()
-    {
-        Instance = this;
-
-        ResourceManager.Get(ResourceLabel.DressRoom).CreateTweenSr(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-    }
-
-    public Player GetPlayer(XmlNode xmlNode = null)
-    {
-        List<string> DressData = new List<string>();
-
-        if (xmlNode == null)
-        {
-            DressData = ConfigManager.GetDressData();
-        }
-        else
-        {
-            DressData = ConfigManager.GetDressData(xmlNode);
-        }
-
-
-        Transform tra = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, transform, false, ObjType.Player);
-        tra.SetParent(ResourceManager.Get(GardenLabel.GardenPivot));
-
-        Player = tra.GetComponent<Player>();
-
-        if (Player == null)
-        {
-            Player = tra.AddScript<Player>();
-
-            Player.Build();
-        }
-
-        for (int i = 0; i < 8; i++)
-        {
-            if (i == 7 && DressData[i] == "Empty")
-            {
-                continue;
-            }
-            string armatureName = DressData[i];
-            if (!CloseItemDictionary.Values.ToList().MyContains(item => item.ArmatureName == armatureName))
-            {
-                Debug.Log(armatureName);
-                if (i == 0)
-                {
-                    DressData[0] = "脑壳-缺失";
-                }
-                else if (i == 1)
-                {
-                    DressData[1] = "裙子-缺失";
-                }
-                else if (i == 2)
-                {
-                    DressData[2] = "鞋子-缺失";
-                }
-                else if (i == 3)
-                {
-                    DressData[3] = "头饰-缺失";
-                }
-                else if (i == 4)
-                {
-                    DressData[4] = "上衣-缺失";
-                }
-                else if (i == 7)
-                {
-                    DressData[7] = "翅膀-缺失";
-                }
-                //DressData = ConfigManager.GetDefaultDressDatas();
-            }
-        }
-        BuildPlayer(DressData);
-
-
-        Player.SetAllCollider(true);
-        Player.Flip(PlayerDirection.Left);
-        Player.transform.position = ResourceManager.Get(GardenLabel.GardenPlayerPos).position;
-
-        tra.localScale = new Vector3(0.5f, 0.5f, 0.5f);
-
-        ResourceManager.TransformDictionary.Add(tra.name, tra);
-
-        return Player;
-    }
-
-    public Player GetRawPlayer()
-    {
-        Transform trans = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, null, false, ObjType.Player);
-        var player = trans.GetComponent<Player>();
-        if (player == null)
-        {
-            player = trans.AddScript<Player>();
-            player.BuildBlond();
-        }
-        //BuildPlayer(dressData, player, false);
-        return player;
-    }
-
-    public static void BuildPlayer(List<string> dressData, Player player = null, bool resetDepth = true)
-    {
-        if (player == null)
-        {
-            player = Player;
-        }
-
-        player.ChangeClose(BodyPart.Head, dressData[0], resetDepth);
-        player.ChangeClose(BodyPart.Dress, dressData[1], resetDepth);
-        player.ChangeClose(BodyPart.Shoe, dressData[2], resetDepth);
-        player.ChangeClose(BodyPart.Headwear, dressData[3], resetDepth);
-        player.ChangeClose(BodyPart.Top, dressData[4], resetDepth);
-        player.ChangeClose(BodyPart.Eye, dressData[5], resetDepth);
-        player.ChangeClose(BodyPart.Mouse, dressData[6], resetDepth);
-        player.ChangeClose(BodyPart.Wing, dressData[7], resetDepth);
-
-        player.ChangeClose(BodyPart.LeftLongSleeve, dressData[8], resetDepth);
-        player.ChangeClose(BodyPart.LeftShortSleeve, dressData[9], resetDepth);
-        player.ChangeClose(BodyPart.RightLongSleeve, dressData[10], resetDepth);
-        player.ChangeClose(BodyPart.RightShortSleeve, dressData[11], resetDepth);
-    }
-
-
-    public static void CreateCloseItems(List<XmlAttributeCollection> attributeList)
-    {
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            new CloseItem(attributeList[i]);
-        }
-    }
-
-    public static void InitDressRoom()
-    {
-        //foreach (var kv in CloseItemDictionary)
-        //{
-        //    Debug.Log(kv.Value.ArmatureName);
-        //}
-        for (int i = 0; i < BoughtCloseIDs.Count; i++)
-        {
-            CloseItemDictionary[BoughtCloseIDs[i]].Unlock();
-        }
-    }
-
-
-    public static Texture2D GetCloseTexture(string closeName)
-    {
-        if (CloseTextureDictionary.ContainsKey(closeName))
-        {
-            return CloseTextureDictionary[closeName];
-        }
-        else
-        {
-            if (CloseSpriteDictionary.ContainsKey(closeName))
-            {
-                Texture2D texture = CloseSpriteDictionary[closeName].ToTexture();
-                CloseTextureDictionary.Add(closeName, texture);
-                return texture;
-            }
-            else
-            {
-                Debug.LogError("");
-                return null;
-            }
-        }
-    }
+using DragonBones;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+using UnityEngine;
+using UnityEngine.UI;
+
+using System;
+using System.Xml;
+using System.Text;
+using System.Linq;
+using System.Collections;
+using System.Diagnostics;
+using System.Collections.Generic;
+using Debug = UnityEngine.Debug;
+using Object = UnityEngine.Object;
+using Transform = UnityEngine.Transform;
+
+public class PlayerManager : Regist 
+{
+    #region Config
+
+    public static bool Inited;
+    public static Player Player;
+    public static Transform DressRoom;
+    public static Transform DefaultPinkPlayer;
+    public static Transform DefaultBlondPlayer;
+    public static Transform DefaultBrownPlayer;
+    public static Transform SelectedPlayer;
+    public static PlayerManager Instance;
+
+    public static List<int>BoughtCloseIDs = new List<int>();
+    public static List<string> DressDatas = new List<string>();  
+    public static Dictionary<int, CloseItem> CloseItemDictionary = new Dictionary<int, CloseItem>();
+    public static Dictionary<string, int> CloseIDDictionary = new Dictionary<string, int>();
+    public static Dictionary<string, Sprite> CloseSpriteDictionary = new Dictionary<string, Sprite>();
+    public static Dictionary<string, Texture2D> CloseTextureDictionary = new Dictionary<string, Texture2D>();
+
+    #endregion
+
+    public override void InstantiatePrefabs()
+    {
+        #region Player
+
+        Initializer.DebugText.text = "error : mp0";
+        if (!Inited)
+        {
+            //Initializer.DebugText.text = "error : mp0-1";
+            //UnityFactory.factory.LoadDragonBonesData(ResourceManager.Load<TextAsset>(ResourceLabel.StandSke, Folder.Config));
+
+            //Initializer.DebugText.text = "error : mp0-2";
+            //UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(ResourceLabel.StandTex0, Folder.Config), ResourceLabel.StandTexture0);
+
+            //Initializer.DebugText.text = "error : mp0-3";
+            //UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(ResourceLabel.StandTex1, Folder.Config), ResourceLabel.StandTexture1);
+
+            Inited = true;
+        }
+
+        Initializer.DebugText.text = "error : mp1";
+        if (!TutorialManager.NewplayerTutorial || TutorialManager.NewplayerTutorialIndex != 1)
+        {
+            GetPlayer();
+
+            DressDatas = ConfigManager.GetDressData();
+        }
+        else
+        {
+            DefaultPinkPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.PinkPlayerPos), false, ObjType.Player);
+            DefaultBlondPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BlondPlayerPos), false, ObjType.Player);
+            DefaultBrownPlayer = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, ResourceManager.Get(TutorialLabel.BrownPlayerPos), false, ObjType.Player);
+            
+            if (DefaultPinkPlayer.GetComponent<Player>() == null)
+            {
+                DefaultPinkPlayer.AddScript<Player>().BuildPink();
+            }
+
+            if (DefaultBlondPlayer.GetComponent<Player>() == null)
+            {
+                DefaultBlondPlayer.AddScript<Player>().BuildBlond();
+            }
+
+            if (DefaultBrownPlayer.GetComponent<Player>() == null)
+            {
+                DefaultBrownPlayer.AddScript<Player>().BuildBrown();
+            }
+
+            Vector3 tutorialPlayerScale = new Vector3(0.8f, 0.8f, 0.8f);
+            DefaultPinkPlayer.localScale = tutorialPlayerScale;
+            DefaultBlondPlayer.localScale = tutorialPlayerScale;
+            DefaultBrownPlayer.localScale = tutorialPlayerScale;
+
+            SelectedPlayer = DefaultBlondPlayer;
+        }
+
+        #endregion
+
+        #region DressRoom
+
+        Initializer.DebugText.text = "error : mp2";
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetDressRoomConfig();
+
+        Player.InDressRoomJumpFrequency = float.Parse(attributeList[0][1].Value);
+
+
+        Initializer.DebugText.text = "error : mp3";
+        DressRoom = ResourceManager.Get(ResourceLabel.DressRoom, Folder.UI, true, null, true, ObjType.DressRoom);
+        DressRoom.SetActive(false);
+        DontDestroyOnLoad(DressRoom);
+
+        Initializer.DebugText.text = "error : mp4";
+        List<int> dressList = ConfigManager.GetDressList();
+
+        Initializer.DebugText.text = "error : mp5";
+        for (int i = 0; i < dressList.Count; i++)
+        {
+            BoughtCloseIDs.Add(dressList[i]);
+        }
+
+        #endregion
+    }
+
+    public override void FirstInit()
+    {
+        Instance = this;
+
+        ResourceManager.Get(ResourceLabel.DressRoom).CreateTweenSr(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+    }
+
+    public Player GetPlayer(XmlNode xmlNode = null)
+    {
+        List<string> DressData = new List<string>();
+
+        if (xmlNode == null)
+        {
+            DressData = ConfigManager.GetDressData();
+        }
+        else
+        {
+            DressData = ConfigManager.GetDressData(xmlNode);
+        }
+
+
+        Transform tra = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, transform, false, ObjType.Player);
+        tra.SetParent(ResourceManager.Get(GardenLabel.GardenPivot));
+
+        Player = tra.GetComponent<Player>();
+
+        if (Player == null)
+        {
+            Player = tra.AddScript<Player>();
+
+            Player.Build();
+        }
+
+        for (int i = 0; i < 8; i++)
+        {
+            if (i == 7 && DressData[i] == "Empty")
+            {
+                continue;
+            }
+            string armatureName = DressData[i];
+            if (!CloseItemDictionary.Values.ToList().MyContains(item => item.ArmatureName == armatureName))
+            {
+                Debug.Log(armatureName);
+                if (i == 0)
+                {
+                    DressData[0] = "脑壳-缺失";
+                }
+                else if (i == 1)
+                {
+                    DressData[1] = "裙子-缺失";
+                }
+                else if (i == 2)
+                {
+                    DressData[2] = "鞋子-缺失";
+                }
+                else if (i == 3)
+                {
+                    DressData[3] = "头饰-缺失";
+                }
+                else if (i == 4)
+                {
+                    DressData[4] = "上衣-缺失";
+                }
+                else if (i == 7)
+                {
+                    DressData[7] = "翅膀-缺失";
+                }
+                //DressData = ConfigManager.GetDefaultDressDatas();
+            }
+        }
+        BuildPlayer(DressData);
+
+
+        Player.SetAllCollider(true);
+        Player.Flip(PlayerDirection.Left);
+        Player.transform.position = ResourceManager.Get(GardenLabel.GardenPlayerPos).position;
+
+        tra.localScale = new Vector3(0.5f, 0.5f, 0.5f);
+
+        ResourceManager.TransformDictionary.Add(tra.name, tra);
+
+        return Player;
+    }
+
+    public Player GetRawPlayer()
+    {
+        Transform trans = ResourceManager.Get(ResourceLabel.Player, Folder.Scene, false, null, false, ObjType.Player);
+        var player = trans.GetComponent<Player>();
+        if (player == null)
+        {
+            player = trans.AddScript<Player>();
+            player.BuildBlond();
+        }
+        //BuildPlayer(dressData, player, false);
+        return player;
+    }
+
+    public static void BuildPlayer(List<string> dressData, Player player = null, bool resetDepth = true)
+    {
+        if (player == null)
+        {
+            player = Player;
+        }
+
+        player.ChangeClose(BodyPart.Head, dressData[0], resetDepth);
+        player.ChangeClose(BodyPart.Dress, dressData[1], resetDepth);
+        player.ChangeClose(BodyPart.Shoe, dressData[2], resetDepth);
+        player.ChangeClose(BodyPart.Headwear, dressData[3], resetDepth);
+        player.ChangeClose(BodyPart.Top, dressData[4], resetDepth);
+        player.ChangeClose(BodyPart.Eye, dressData[5], resetDepth);
+        player.ChangeClose(BodyPart.Mouse, dressData[6], resetDepth);
+        player.ChangeClose(BodyPart.Wing, dressData[7], resetDepth);
+
+        player.ChangeClose(BodyPart.LeftLongSleeve, dressData[8], resetDepth);
+        player.ChangeClose(BodyPart.LeftShortSleeve, dressData[9], resetDepth);
+        player.ChangeClose(BodyPart.RightLongSleeve, dressData[10], resetDepth);
+        player.ChangeClose(BodyPart.RightShortSleeve, dressData[11], resetDepth);
+    }
+
+
+    public static void CreateCloseItems(List<XmlAttributeCollection> attributeList)
+    {
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            new CloseItem(attributeList[i]);
+        }
+    }
+
+    public static void InitDressRoom()
+    {
+        //foreach (var kv in CloseItemDictionary)
+        //{
+        //    Debug.Log(kv.Value.ArmatureName);
+        //}
+        for (int i = 0; i < BoughtCloseIDs.Count; i++)
+        {
+            CloseItemDictionary[BoughtCloseIDs[i]].Unlock();
+        }
+    }
+
+
+    public static Texture2D GetCloseTexture(string closeName)
+    {
+        if (CloseTextureDictionary.ContainsKey(closeName))
+        {
+            return CloseTextureDictionary[closeName];
+        }
+        else
+        {
+            if (CloseSpriteDictionary.ContainsKey(closeName))
+            {
+                Texture2D texture = CloseSpriteDictionary[closeName].ToTexture();
+                CloseTextureDictionary.Add(closeName, texture);
+                return texture;
+            }
+            else
+            {
+                Debug.LogError("");
+                return null;
+            }
+        }
+    }
 }

+ 713 - 713
Assets/Script/Manage/SocialManager.cs

@@ -1,714 +1,714 @@
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.EventSystems;
-
-using System;
-using System.Collections;
-using System.Diagnostics;
-using System.Collections.Generic;
-
-using LitJson;
-
-using Debug = UnityEngine.Debug;
-
-public class SocialManager : Regist
-{
-    #region Config
-
-    public static bool OpenRankPanelFlag;
-
-    public static int RecordCommentLastIndex;
-    public static int RecordCommentFirstIndex;
-    public static bool OpenCommentFlag;
-    public static Vector3 RecordCommentPosition;
-
-    public static bool IsPlayer;
-    public static bool IsPanelOpen;
-    public static bool PullCommentDataFlag;
-    public static bool UpdateCommentDataFlag;
-
-    public static int PlayerLastDisplayIndex = -1;
-    public static int PlayerFirstDisplayIndex;
-    public static int VisiteeLastDisplayIndex = -1;
-    public static int VisiteeFirstDisplayIndex;
-    public static int CurrentPlayerCommentPage;
-    public static int CurrentVisiteeCommentPage;
-
-    public static bool IsFriendFilterOn;
-    public static Text PraiseText;
-    public static Button PraiseButton;
-    public static Toggle CommentFriendFilterToggle;
-    public static DateTime CommentTime;
-    public static InputField CommentInputField;
-    public static ScrollRectPlus CommentScrollRect;
-
-    public static float UpdateRankDataTime = 5;
-    public static float UpdateRankDataTimer = 0;
-    public static float UpdatePraiseDataTime = 10;
-    public static float UpdatePraiseDataTimer = 5;
-    public static float CommentTimeSpan = 30f;
-    public static List<CommentData> PlayerCommentDatas = new List<CommentData>();
-    public static List<CommentData> VisiteeCommentDatas = new List<CommentData>();
-    public static List<CommentItem> CommentItems = new List<CommentItem>();
-
-    private static int CommentPanelMaxRevertAmt = 15;
-    private static int CommentPanelMaxChildAmt = 20;
-    private static float CommentItemHeight = 120;
-
-    #endregion
-
-    public void Update()
-    {
-        if (!HttpManager.IsRankDataReady)
-        {
-            UpdateRankDataTimer += Time.deltaTime;
-
-            if (UpdateRankDataTimer >= UpdateRankDataTime)
-            {
-                UpdateRankDataTimer = 0;
-
-                HttpManager.GetRankData();
-            }
-        }
-
-        if (VisitManager.InVisit)
-        {
-            return;
-        }
-
-        UpdatePraiseDataTimer += Time.deltaTime;
-
-        if (UpdatePraiseDataTimer >= UpdatePraiseDataTime)
-        {
-            UpdatePraiseDataTimer = 0;
-
-            PraiseText.text = HttpManager.PraiseAmt.ToString();
-        }
-    }
-
-
-    public override void FirstInit()
-    {
-        PraiseText = ResourceManager.Get<Text>(CanvasLabel.C_PraiseText);
-        PraiseButton = ResourceManager.Get<Button>(CanvasLabel.C_Praise);
-        CommentInputField = ResourceManager.Get<InputField>(CanvasLabel.Q_InputField);
-        CommentScrollRect = ResourceManager.Get<ScrollRectPlus>(CanvasLabel.Q_ScrollRect);
-        CommentFriendFilterToggle = ResourceManager.Get<Toggle>(CanvasLabel.Q_FriendFilterButton);
-
-        CommentFriendFilterToggle.onValueChanged.AddListener(OnCommentFriendFilterToggleClick);
-
-        CommentScrollRect.onValueChanged.AddListener(OnScroll);
-
-        FriendPanel.OnFriendListRefresh += OnFriendListRefresh;
-        VisitManager.OnEnterVisteeGarden += OnEnterVisiteeGarden;
-        VisitManager.OnExitVisteeGarden += OnExitVisiteeGarden;
-    }
-
-
-    public static void Praise()
-    {
-        if (VisitManager.InVisit)
-        {
-            PraiseText.text = (int.Parse(PraiseText.text) + 1).ToString();
-
-            HttpManager.Praise(HttpManager.SerialNumber, VisitManager.VisiteeSerialNumber);
-
-            DisablePraise();
-        }
-        else
-        {
-            throw new Exception();
-        }
-    }
-
-    public static void EnablePraise()
-    {
-        PraiseText.color = Lib.PraiseTextBlue;
-        PraiseButton.image.color = Color.white;
-        PraiseButton.interactable = true;
-    }
-
-    public static void DisablePraise()
-    {
-        PraiseText.color = Lib.PraiseTextWhite;
-        PraiseButton.image.color = Lib.Pink;
-        PraiseButton.interactable = false;
-    }
-
-
-    public static void Comment()
-    {
-        if (string.IsNullOrEmpty(CommentInputField.text))
-        {
-            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Lb_Send2));
-
-            return;
-        }
-
-        if ((DateTime.Now - CommentTime).TotalSeconds > CommentTimeSpan)
-        {
-            CommentTime = DateTime.Now;
-
-            string content = StringFilter.GetFilteredString(CommentInputField.text);
-
-            HttpManager.AddComment(HttpManager.SerialNumber, VisitManager.VisiteeSerialNumber, content, CommentType.Garden);
-
-            CommentInputField.text = "";
-        }
-        else
-        {
-            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Q_CommentTip));
-        }
-    }
-
-    public static void OpenCommentPanel()
-    {
-        IsPlayer = !VisitManager.InVisit;
-
-        if (IsPlayer)
-        {
-            UpdateCommentPage(IsPlayer);
-        }
-        else
-        {
-            if (string.IsNullOrEmpty(VisitManager.VisiteeSerialNumber))
-            {
-                Bubble.Show(null, Language.GetStr(LanguageLabel.UI__C_CannotComment));
-                return;
-            }
-            else
-            {
-                UpdateCommentPage(IsPlayer);
-            }
-        }
-
-        IsPanelOpen = true;
-        ResourceManager.Get(CanvasLabel.Q_CommentBK).TweenForCG();
-
-        if (VisitManager.InVisit)
-        {
-            ResourceManager.SetActive(CanvasLabel.Q_InputBK, true);
-            RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.Q_ScrollRect);
-            rectTransform.sizeDelta = new Vector2(rectTransform.rect.size.x, 206.1f);
-        }
-        else
-        {
-            ResourceManager.SetActive(CanvasLabel.Q_InputBK, false);
-            RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.Q_ScrollRect);
-            rectTransform.sizeDelta = new Vector2(rectTransform.rect.size.x, 278.3f);
-        }
-    }
-
-    public static void CloseCommentPanel()
-    {
-        ResourceManager.Get(CanvasLabel.Q_CommentBK).TweenBacCG();
-        IsPanelOpen = false;
-    }
-
-    public static void RecordCommentPanel()
-    {
-        if (IsPlayer)
-        {
-            OpenCommentFlag = true;
-            RecordCommentLastIndex = PlayerLastDisplayIndex;
-            RecordCommentFirstIndex = PlayerFirstDisplayIndex;
-            RecordCommentPosition = CommentScrollRect.content.transform.position;
-        }
-    }
-
-    public static void RecoverCommentPanel()
-    {
-        if (OpenCommentFlag)
-        {
-            OpenCommentFlag = false;
-
-            ClearCommentPanel();
-
-            PlayerLastDisplayIndex = -1;
-            PlayerFirstDisplayIndex = 0;
-
-            int antiCrush = 0;
-
-            while (PlayerFirstDisplayIndex != RecordCommentFirstIndex || PlayerLastDisplayIndex != RecordCommentLastIndex)
-            {
-                if (antiCrush > 10000)
-                {
-                    throw new Exception("Crush");
-                }
-
-                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
-                {
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    PlayerFirstDisplayIndex++;
-                }
-
-                PlayerLastDisplayIndex++;
-                CommentData commentData = PlayerCommentDatas[PlayerLastDisplayIndex];
-                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                CommentItems.Add(newCommentItem);
-            }
-
-            CommentScrollRect.content.transform.position = RecordCommentPosition;
-
-            OpenCommentPanel();
-        }
-    }
-
-
-    public static void PullCommentPage(bool isPlayer)
-    {
-        PullCommentDataFlag = true;
-        UpdateCommentDataFlag = false;
-        //Debug.Log("PullPage");
-
-        if (isPlayer)
-        {
-            HttpManager.GetComment
-            (
-                HttpManager.SerialNumber,
-                (CurrentPlayerCommentPage + 1).ToString(),
-                CommentType.Garden,
-                data =>
-                {
-                    if (!UpdateCommentDataFlag)
-                    {
-                        ReceiveCommentDatas(IsPlayer, data);
-                        NextCommentPage(IsPlayer, true);
-                    }
-                    else
-                    {
-                        PullCommentDataFlag = false;
-                    }
-                }
-            );
-        }
-        else
-        {
-            HttpManager.GetComment
-            (
-                HttpManager.SerialNumber,
-                (CurrentVisiteeCommentPage + 1).ToString(),
-                CommentType.Garden,
-                data =>
-                {
-                    if (!UpdateCommentDataFlag)
-                    {
-                        ReceiveCommentDatas(IsPlayer, data);
-                        NextCommentPage(IsPlayer, true);
-                    }
-                    else
-                    {
-                        PullCommentDataFlag = false;
-                    }
-                }
-            );
-        }
-    }
-
-    public static void UpdateCommentPage(bool isPlayer)
-    {
-        UpdateCommentDataFlag = true;
-
-        ClearCommentPanel();
-
-        ResourceManager.Get(CanvasLabel.Q_Tip).TweenForCG();
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__Loading));
-
-        if (isPlayer)
-        {
-            //Debug.Log("UpdatePlayer");
-
-            PlayerFirstDisplayIndex = 0;
-            PlayerLastDisplayIndex = -1;
-            CurrentPlayerCommentPage = 0;
-            PlayerCommentDatas = new List<CommentData>();
-
-            HttpManager.GetComment
-            (
-                HttpManager.SerialNumber,
-                "1",
-                CommentType.Garden,
-                data =>
-                {
-                    if (!VisitManager.InVisit)
-                    {
-                        DelayCall.Call(0.5f, () => ResourceManager.Get(CanvasLabel.Q_Tip).TweenBacCG());
-                        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__LoadSucceed));
-
-                        ReceiveCommentDatas(true, data);
-                        NextCommentPage(true, true);
-
-                        ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = false;
-                        DelayCall.Call(1, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = true);
-                    }
-                }
-            );
-        }
-        else
-        {
-            //Debug.Log("UpdateVisitee");
-
-            VisiteeFirstDisplayIndex = 0;
-            VisiteeLastDisplayIndex = -1;
-            CurrentVisiteeCommentPage = 0;
-            VisiteeCommentDatas = new List<CommentData>();
-
-            HttpManager.GetComment
-            (
-                VisitManager.VisiteeSerialNumber,
-                "1",
-                CommentType.Garden,
-                data =>
-                {
-                    if (VisitManager.InVisit)
-                    {
-                        DelayCall.Call(0.5f, () => ResourceManager.Get(CanvasLabel.Q_Tip).TweenBacCG());
-                        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__LoadSucceed));
-
-                        ReceiveCommentDatas(false, data);
-                        NextCommentPage(false, true);
-
-                        ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = false;
-                        DelayCall.Call(1, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = true);
-                    }
-                }
-            );
-        }
-    }
-
-    public static void ReceiveCommentDatas(bool isPlayer, JsonData jsonData)
-    {
-        Auxiliary.Instance.DelayCall
-        (
-            () =>
-            {
-                PullCommentDataFlag = false;
-            },
-            1
-        );
-
-        if (!jsonData.Inst_Object.ContainsKey("l"))
-        {
-            return;
-        }
-
-        if (jsonData["l"].Count == 0)
-        {
-            return;
-        }
-
-        if (isPlayer)
-        {
-            CurrentPlayerCommentPage++;
-
-            foreach (JsonData commentData in jsonData["l"])
-            {
-                PlayerCommentDatas.UniqueAdd(new CommentData(commentData));
-            }
-        }
-        else
-        {
-            CurrentVisiteeCommentPage++;
-
-            foreach (JsonData commentData in jsonData["l"])
-            {
-                VisiteeCommentDatas.UniqueAdd(new CommentData(commentData));
-            }
-        }
-    }
-
-    public static void NextCommentPage(bool isPlayer, bool isDownload)
-    {
-        //Debug.Log("NextPage");
-        if (isPlayer)
-        {
-            int saveAmt = 0;
-            int updateAmt = Mathf.Min(15, PlayerCommentDatas.Count - PlayerLastDisplayIndex - 1);
-
-            for (int i = 0; i < updateAmt; i++)
-            {
-                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
-                {
-                    saveAmt++;
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    PlayerFirstDisplayIndex++;
-                }
-
-                PlayerLastDisplayIndex++;
-
-                CommentData commentData = PlayerCommentDatas[PlayerLastDisplayIndex];
-                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                CommentItems.Add(newCommentItem);
-            }
-
-            int offset = isDownload ? 1 : 0;
-            float scaleFactor = isDownload ? CommentScrollRect.GetComponent<Image>().canvas.scaleFactor : 1;
-
-            if (saveAmt > 0)
-            {
-                CommentScrollRect.content.position += new Vector3(0, -(saveAmt - offset)*CommentItemHeight*scaleFactor, 0);
-                CommentScrollRect.AddContentOffset(new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0));
-            }
-        }
-        else
-        {
-            int saveAmt = 0;
-            int updateAmt = Mathf.Min(15, VisiteeCommentDatas.Count - VisiteeLastDisplayIndex - 1);
-
-            for (int i = 0; i < updateAmt; i++)
-            {
-                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
-                {
-                    saveAmt++;
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    VisiteeFirstDisplayIndex++;
-                }
-
-                VisiteeLastDisplayIndex++;
-
-                CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
-                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                CommentItems.Add(newCommentItem);
-            }
-
-            int offset = isDownload ? 1 : 0;
-            float scaleFactor = isDownload ? CommentScrollRect.GetComponent<Image>().canvas.scaleFactor : 1;
-
-            if (saveAmt > 0)
-            {
-                CommentScrollRect.content.position += new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0);
-                CommentScrollRect.AddContentOffset(new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0));
-            }
-        }
-    }
-
-    public static void PreviousCommentPage(bool isPlayer)
-    {
-        if (CommentScrollRect.content.childCount == 0)
-        {
-            return;
-        }
-
-        //Debug.Log("PreviousPage");
-
-        if (isPlayer)
-        {
-            if (PlayerCommentDatas.Count > CommentPanelMaxChildAmt && PlayerFirstDisplayIndex > 0)
-            {
-                int revertAmt = Mathf.Min(CommentPanelMaxRevertAmt, PlayerFirstDisplayIndex);
-
-                for (int i = 0; i < revertAmt; i++)
-                {
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(CommentScrollRect.content.childCount - 1).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
-
-                    commentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                    CommentItems.Add(commentItem);
-                    commentItem.transform.SetAsFirstSibling();
-
-                    PlayerLastDisplayIndex--;
-                    PlayerFirstDisplayIndex--;
-                }
-
-                if (revertAmt > 0)
-                {
-                    CommentScrollRect.content.position += new Vector3(0, revertAmt* CommentItemHeight, 0);
-                    CommentScrollRect.AddContentOffset(new Vector3(0, revertAmt* CommentItemHeight, 0));
-                }
-            }
-        }
-        else
-        {
-            if (VisiteeCommentDatas.Count > CommentPanelMaxChildAmt && VisiteeFirstDisplayIndex > 0)
-            {
-                int revertAmt = Mathf.Min(CommentPanelMaxRevertAmt, VisiteeFirstDisplayIndex);
-
-                for (int i = 0; i < revertAmt; i++)
-                {
-                    CommentItem commentItem = CommentScrollRect.content.GetChild(CommentScrollRect.content.childCount - 1).GetComponent<CommentItem>();
-                    ResourceManager.Save(commentItem);
-                    CommentItems.Remove(commentItem);
-                    CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
-
-                    commentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
-                    CommentItems.Add(commentItem);
-                    commentItem.transform.SetAsFirstSibling();
-
-                    VisiteeLastDisplayIndex--;
-                    VisiteeFirstDisplayIndex--;
-                }
-
-                if (revertAmt > 0)
-                {
-                    CommentScrollRect.content.position += new Vector3(0, revertAmt* CommentItemHeight, 0);
-                    CommentScrollRect.AddContentOffset(new Vector3(0, revertAmt* CommentItemHeight, 0));
-                }
-            }
-        }
-    }
-
-    public static void ClearCommentPanel()
-    {
-        int childAmt = CommentScrollRect.content.childCount;
-
-        for (int i = 0; i < childAmt; i++)
-        {
-            CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
-            ResourceManager.Save(commentItem);
-            CommentItems.Remove(commentItem);
-        }
-
-        CommentScrollRect.verticalNormalizedPosition = 1;
-    }
-
-    public static void OnScroll(Vector2 position)
-    {
-        if (PullCommentDataFlag)
-        {
-            return;
-        }
-
-        if (CommentScrollRect.content.childCount == 0)
-        {
-            return;
-        }
-
-        if (position.y >= 1)
-        {
-            PreviousCommentPage(IsPlayer);
-        }
-
-        if (position.y <= 0)
-        {
-            if (IsPlayer)
-            {
-                if (PlayerLastDisplayIndex == PlayerCommentDatas.Count - 1)
-                {
-                    PullCommentPage(true);
-                }
-                else if (PlayerLastDisplayIndex < PlayerCommentDatas.Count - 1)
-                {
-                    NextCommentPage(true, false);
-                }
-            }
-            else
-            {
-                if (VisiteeLastDisplayIndex == VisiteeCommentDatas.Count - 1)
-                {
-                    PullCommentPage(false);
-                }
-                else if (VisiteeLastDisplayIndex < VisiteeCommentDatas.Count - 1)
-                {
-                    NextCommentPage(false, false);
-                }
-            }
-        }
-    }
-
-
-    public static void OpenRankPanel()
-    {
-        AudioManager.PlayClip(AudioLabel.Bubble);
-
-        ResourceManager.Get(CanvasLabel.S_RankBK).TweenForCG();
-    }
-
-    public static void CloseRankPanel()
-    {
-        AudioManager.PlayClip(AudioLabel.ClickButton);
-
-        ResourceManager.Get(CanvasLabel.S_RankBK).TweenBacCG();
-    }
-
-    public static void RecordRankPanel()
-    {
-        OpenRankPanelFlag = true;
-    }
-
-    public static void RecoverRankPanel()
-    {
-        if (OpenRankPanelFlag)
-        {
-            OpenRankPanelFlag = false;
-
-            OpenRankPanel();
-        }
-    }
-
-    public static void InitRankPanel()
-    {
-        if (Initializer.Inited && HttpManager.IsRankDataReady)
-        {
-            for (int i = 0; i < HttpManager.RankDatas.Count; i++)
-            {
-                ResourceManager.GetRanktem((i + 1).ToString(), HttpManager.RankDatas[i][1].ToString(), HttpManager.RankDatas[i][0].ToString());
-            }
-        }
-    }
-
-
-    public static void OnCommentFriendFilterToggleClick(bool value)
-    {
-        AudioManager.PlayClip(ResourceLabel.BtnClip);
-        if (value)
-        {
-            EnableCommentFriendFilter();
-        }
-        else
-        {
-            DisableCommentFriendFilter();
-        }
-    }
-
-    public static void EnableCommentFriendFilter()
-    {
-        IsFriendFilterOn = true;
-        foreach (var commentItem in CommentItems)
-        {
-            if (!commentItem.IsFriend(FriendPanel.FriendAccountDatas))
-            {
-                commentItem.SetActive(false);
-            }
-        }
-    }
-
-    public static void DisableCommentFriendFilter()
-    {
-        IsFriendFilterOn = false;
-        foreach (var commentItem in CommentItems)
-        {
-            commentItem.SetActive(true);
-        }
-    }
-
-
-    private static void OnFriendListRefresh(List<AccountData> accountDatas)
-    {
-        if (IsFriendFilterOn)
-        {
-            EnableCommentFriendFilter();
-        }
-    }
-
-
-    public static void OnEnterVisiteeGarden()
-    {
-        ResourceManager.SetActive(CanvasLabel.C_NotifyParent, false);
-    }
-
-    public static void OnExitVisiteeGarden()
-    {
-        if (ResourceManager.Get(CanvasLabel.C_Notify).gameObject.activeSelf)
-        {
-            ResourceManager.SetActive(CanvasLabel.C_NotifyParent, true);
-        }
-    }
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.EventSystems;
+
+using System;
+using System.Collections;
+using System.Diagnostics;
+using System.Collections.Generic;
+
+using LitJson;
+
+using Debug = UnityEngine.Debug;
+
+public class SocialManager : Regist
+{
+    #region Config
+
+    public static bool OpenRankPanelFlag;
+
+    public static int RecordCommentLastIndex;
+    public static int RecordCommentFirstIndex;
+    public static bool OpenCommentFlag;
+    public static Vector3 RecordCommentPosition;
+
+    public static bool IsPlayer;
+    public static bool IsPanelOpen;
+    public static bool PullCommentDataFlag;
+    public static bool UpdateCommentDataFlag;
+
+    public static int PlayerLastDisplayIndex = -1;
+    public static int PlayerFirstDisplayIndex;
+    public static int VisiteeLastDisplayIndex = -1;
+    public static int VisiteeFirstDisplayIndex;
+    public static int CurrentPlayerCommentPage;
+    public static int CurrentVisiteeCommentPage;
+
+    public static bool IsFriendFilterOn;
+    public static Text PraiseText;
+    public static Button PraiseButton;
+    public static Toggle CommentFriendFilterToggle;
+    public static DateTime CommentTime;
+    public static InputField CommentInputField;
+    public static ScrollRectPlus CommentScrollRect;
+
+    public static float UpdateRankDataTime = 5;
+    public static float UpdateRankDataTimer = 0;
+    public static float UpdatePraiseDataTime = 10;
+    public static float UpdatePraiseDataTimer = 5;
+    public static float CommentTimeSpan = 30f;
+    public static List<CommentData> PlayerCommentDatas = new List<CommentData>();
+    public static List<CommentData> VisiteeCommentDatas = new List<CommentData>();
+    public static List<CommentItem> CommentItems = new List<CommentItem>();
+
+    private static int CommentPanelMaxRevertAmt = 15;
+    private static int CommentPanelMaxChildAmt = 20;
+    private static float CommentItemHeight = 120;
+
+    #endregion
+
+    public void Update()
+    {
+        if (!HttpManager.IsRankDataReady)
+        {
+            UpdateRankDataTimer += Time.deltaTime;
+
+            if (UpdateRankDataTimer >= UpdateRankDataTime)
+            {
+                UpdateRankDataTimer = 0;
+
+                HttpManager.GetRankData();
+            }
+        }
+
+        if (VisitManager.InVisit)
+        {
+            return;
+        }
+
+        UpdatePraiseDataTimer += Time.deltaTime;
+
+        if (UpdatePraiseDataTimer >= UpdatePraiseDataTime)
+        {
+            UpdatePraiseDataTimer = 0;
+
+            PraiseText.text = HttpManager.PraiseAmt.ToString();
+        }
+    }
+
+
+    public override void FirstInit()
+    {
+        PraiseText = ResourceManager.Get<Text>(CanvasLabel.C_PraiseText);
+        PraiseButton = ResourceManager.Get<Button>(CanvasLabel.C_Praise);
+        CommentInputField = ResourceManager.Get<InputField>(CanvasLabel.Q_InputField);
+        CommentScrollRect = ResourceManager.Get<ScrollRectPlus>(CanvasLabel.Q_ScrollRect);
+        CommentFriendFilterToggle = ResourceManager.Get<Toggle>(CanvasLabel.Q_FriendFilterButton);
+
+        CommentFriendFilterToggle.onValueChanged.AddListener(OnCommentFriendFilterToggleClick);
+
+        CommentScrollRect.onValueChanged.AddListener(OnScroll);
+
+        FriendPanel.OnFriendListRefresh += OnFriendListRefresh;
+        VisitManager.OnEnterVisteeGarden += OnEnterVisiteeGarden;
+        VisitManager.OnExitVisteeGarden += OnExitVisiteeGarden;
+    }
+
+
+    public static void Praise()
+    {
+        if (VisitManager.InVisit)
+        {
+            PraiseText.text = (int.Parse(PraiseText.text) + 1).ToString();
+
+            HttpManager.Praise(HttpManager.SerialNumber, VisitManager.VisiteeSerialNumber);
+
+            DisablePraise();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void EnablePraise()
+    {
+        PraiseText.color = Lib.PraiseTextBlue;
+        PraiseButton.image.color = Color.white;
+        PraiseButton.interactable = true;
+    }
+
+    public static void DisablePraise()
+    {
+        PraiseText.color = Lib.PraiseTextWhite;
+        PraiseButton.image.color = Lib.Pink;
+        PraiseButton.interactable = false;
+    }
+
+
+    public static void Comment()
+    {
+        if (string.IsNullOrEmpty(CommentInputField.text))
+        {
+            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Lb_Send2));
+
+            return;
+        }
+
+        if ((DateTime.Now - CommentTime).TotalSeconds > CommentTimeSpan)
+        {
+            CommentTime = DateTime.Now;
+
+            string content = StringFilter.GetFilteredString(CommentInputField.text);
+
+            HttpManager.AddComment(HttpManager.SerialNumber, VisitManager.VisiteeSerialNumber, content, CommentType.Garden);
+
+            CommentInputField.text = "";
+        }
+        else
+        {
+            Bubble.Show(null, Language.GetStr(LanguageLabel.UI__Q_CommentTip));
+        }
+    }
+
+    public static void OpenCommentPanel()
+    {
+        IsPlayer = !VisitManager.InVisit;
+
+        if (IsPlayer)
+        {
+            UpdateCommentPage(IsPlayer);
+        }
+        else
+        {
+            if (string.IsNullOrEmpty(VisitManager.VisiteeSerialNumber))
+            {
+                Bubble.Show(null, Language.GetStr(LanguageLabel.UI__C_CannotComment));
+                return;
+            }
+            else
+            {
+                UpdateCommentPage(IsPlayer);
+            }
+        }
+
+        IsPanelOpen = true;
+        ResourceManager.Get(CanvasLabel.Q_CommentBK).TweenForCG();
+
+        if (VisitManager.InVisit)
+        {
+            ResourceManager.SetActive(CanvasLabel.Q_InputBK, true);
+            RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.Q_ScrollRect);
+            rectTransform.sizeDelta = new Vector2(rectTransform.rect.size.x, 206.1f);
+        }
+        else
+        {
+            ResourceManager.SetActive(CanvasLabel.Q_InputBK, false);
+            RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.Q_ScrollRect);
+            rectTransform.sizeDelta = new Vector2(rectTransform.rect.size.x, 278.3f);
+        }
+    }
+
+    public static void CloseCommentPanel()
+    {
+        ResourceManager.Get(CanvasLabel.Q_CommentBK).TweenBacCG();
+        IsPanelOpen = false;
+    }
+
+    public static void RecordCommentPanel()
+    {
+        if (IsPlayer)
+        {
+            OpenCommentFlag = true;
+            RecordCommentLastIndex = PlayerLastDisplayIndex;
+            RecordCommentFirstIndex = PlayerFirstDisplayIndex;
+            RecordCommentPosition = CommentScrollRect.content.transform.position;
+        }
+    }
+
+    public static void RecoverCommentPanel()
+    {
+        if (OpenCommentFlag)
+        {
+            OpenCommentFlag = false;
+
+            ClearCommentPanel();
+
+            PlayerLastDisplayIndex = -1;
+            PlayerFirstDisplayIndex = 0;
+
+            int antiCrush = 0;
+
+            while (PlayerFirstDisplayIndex != RecordCommentFirstIndex || PlayerLastDisplayIndex != RecordCommentLastIndex)
+            {
+                if (antiCrush > 10000)
+                {
+                    throw new Exception("Crush");
+                }
+
+                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
+                {
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    PlayerFirstDisplayIndex++;
+                }
+
+                PlayerLastDisplayIndex++;
+                CommentData commentData = PlayerCommentDatas[PlayerLastDisplayIndex];
+                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                CommentItems.Add(newCommentItem);
+            }
+
+            CommentScrollRect.content.transform.position = RecordCommentPosition;
+
+            OpenCommentPanel();
+        }
+    }
+
+
+    public static void PullCommentPage(bool isPlayer)
+    {
+        PullCommentDataFlag = true;
+        UpdateCommentDataFlag = false;
+        //Debug.Log("PullPage");
+
+        if (isPlayer)
+        {
+            HttpManager.GetComment
+            (
+                HttpManager.SerialNumber,
+                (CurrentPlayerCommentPage + 1).ToString(),
+                CommentType.Garden,
+                data =>
+                {
+                    if (!UpdateCommentDataFlag)
+                    {
+                        ReceiveCommentDatas(IsPlayer, data);
+                        NextCommentPage(IsPlayer, true);
+                    }
+                    else
+                    {
+                        PullCommentDataFlag = false;
+                    }
+                }
+            );
+        }
+        else
+        {
+            HttpManager.GetComment
+            (
+                HttpManager.SerialNumber,
+                (CurrentVisiteeCommentPage + 1).ToString(),
+                CommentType.Garden,
+                data =>
+                {
+                    if (!UpdateCommentDataFlag)
+                    {
+                        ReceiveCommentDatas(IsPlayer, data);
+                        NextCommentPage(IsPlayer, true);
+                    }
+                    else
+                    {
+                        PullCommentDataFlag = false;
+                    }
+                }
+            );
+        }
+    }
+
+    public static void UpdateCommentPage(bool isPlayer)
+    {
+        UpdateCommentDataFlag = true;
+
+        ClearCommentPanel();
+
+        ResourceManager.Get(CanvasLabel.Q_Tip).TweenForCG();
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__Loading));
+
+        if (isPlayer)
+        {
+            //Debug.Log("UpdatePlayer");
+
+            PlayerFirstDisplayIndex = 0;
+            PlayerLastDisplayIndex = -1;
+            CurrentPlayerCommentPage = 0;
+            PlayerCommentDatas = new List<CommentData>();
+
+            HttpManager.GetComment
+            (
+                HttpManager.SerialNumber,
+                "1",
+                CommentType.Garden,
+                data =>
+                {
+                    if (!VisitManager.InVisit)
+                    {
+                        DelayCall.Call(0.5f, () => ResourceManager.Get(CanvasLabel.Q_Tip).TweenBacCG());
+                        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__LoadSucceed));
+
+                        ReceiveCommentDatas(true, data);
+                        NextCommentPage(true, true);
+
+                        ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = false;
+                        DelayCall.Call(1, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = true);
+                    }
+                }
+            );
+        }
+        else
+        {
+            //Debug.Log("UpdateVisitee");
+
+            VisiteeFirstDisplayIndex = 0;
+            VisiteeLastDisplayIndex = -1;
+            CurrentVisiteeCommentPage = 0;
+            VisiteeCommentDatas = new List<CommentData>();
+
+            HttpManager.GetComment
+            (
+                VisitManager.VisiteeSerialNumber,
+                "1",
+                CommentType.Garden,
+                data =>
+                {
+                    if (VisitManager.InVisit)
+                    {
+                        DelayCall.Call(0.5f, () => ResourceManager.Get(CanvasLabel.Q_Tip).TweenBacCG());
+                        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tip), Language.GetStr(LanguageLabel.UI__LoadSucceed));
+
+                        ReceiveCommentDatas(false, data);
+                        NextCommentPage(false, true);
+
+                        ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = false;
+                        DelayCall.Call(1, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.Q_CommentBK).interactable = true);
+                    }
+                }
+            );
+        }
+    }
+
+    public static void ReceiveCommentDatas(bool isPlayer, JsonData jsonData)
+    {
+        Auxiliary.Instance.DelayCall
+        (
+            () =>
+            {
+                PullCommentDataFlag = false;
+            },
+            1
+        );
+
+        if (!jsonData.Inst_Object.ContainsKey("l"))
+        {
+            return;
+        }
+
+        if (jsonData["l"].Count == 0)
+        {
+            return;
+        }
+
+        if (isPlayer)
+        {
+            CurrentPlayerCommentPage++;
+
+            foreach (JsonData commentData in jsonData["l"])
+            {
+                PlayerCommentDatas.UniqueAdd(new CommentData(commentData));
+            }
+        }
+        else
+        {
+            CurrentVisiteeCommentPage++;
+
+            foreach (JsonData commentData in jsonData["l"])
+            {
+                VisiteeCommentDatas.UniqueAdd(new CommentData(commentData));
+            }
+        }
+    }
+
+    public static void NextCommentPage(bool isPlayer, bool isDownload)
+    {
+        //Debug.Log("NextPage");
+        if (isPlayer)
+        {
+            int saveAmt = 0;
+            int updateAmt = Mathf.Min(15, PlayerCommentDatas.Count - PlayerLastDisplayIndex - 1);
+
+            for (int i = 0; i < updateAmt; i++)
+            {
+                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
+                {
+                    saveAmt++;
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    PlayerFirstDisplayIndex++;
+                }
+
+                PlayerLastDisplayIndex++;
+
+                CommentData commentData = PlayerCommentDatas[PlayerLastDisplayIndex];
+                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                CommentItems.Add(newCommentItem);
+            }
+
+            int offset = isDownload ? 1 : 0;
+            float scaleFactor = isDownload ? CommentScrollRect.GetComponent<Image>().canvas.scaleFactor : 1;
+
+            if (saveAmt > 0)
+            {
+                CommentScrollRect.content.position += new Vector3(0, -(saveAmt - offset)*CommentItemHeight*scaleFactor, 0);
+                CommentScrollRect.AddContentOffset(new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0));
+            }
+        }
+        else
+        {
+            int saveAmt = 0;
+            int updateAmt = Mathf.Min(15, VisiteeCommentDatas.Count - VisiteeLastDisplayIndex - 1);
+
+            for (int i = 0; i < updateAmt; i++)
+            {
+                if (CommentScrollRect.content.childCount >= CommentPanelMaxChildAmt)
+                {
+                    saveAmt++;
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    VisiteeFirstDisplayIndex++;
+                }
+
+                VisiteeLastDisplayIndex++;
+
+                CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
+                CommentItem newCommentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                CommentItems.Add(newCommentItem);
+            }
+
+            int offset = isDownload ? 1 : 0;
+            float scaleFactor = isDownload ? CommentScrollRect.GetComponent<Image>().canvas.scaleFactor : 1;
+
+            if (saveAmt > 0)
+            {
+                CommentScrollRect.content.position += new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0);
+                CommentScrollRect.AddContentOffset(new Vector3(0, -(saveAmt - offset)* CommentItemHeight * scaleFactor, 0));
+            }
+        }
+    }
+
+    public static void PreviousCommentPage(bool isPlayer)
+    {
+        if (CommentScrollRect.content.childCount == 0)
+        {
+            return;
+        }
+
+        //Debug.Log("PreviousPage");
+
+        if (isPlayer)
+        {
+            if (PlayerCommentDatas.Count > CommentPanelMaxChildAmt && PlayerFirstDisplayIndex > 0)
+            {
+                int revertAmt = Mathf.Min(CommentPanelMaxRevertAmt, PlayerFirstDisplayIndex);
+
+                for (int i = 0; i < revertAmt; i++)
+                {
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(CommentScrollRect.content.childCount - 1).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
+
+                    commentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                    CommentItems.Add(commentItem);
+                    commentItem.transform.SetAsFirstSibling();
+
+                    PlayerLastDisplayIndex--;
+                    PlayerFirstDisplayIndex--;
+                }
+
+                if (revertAmt > 0)
+                {
+                    CommentScrollRect.content.position += new Vector3(0, revertAmt* CommentItemHeight, 0);
+                    CommentScrollRect.AddContentOffset(new Vector3(0, revertAmt* CommentItemHeight, 0));
+                }
+            }
+        }
+        else
+        {
+            if (VisiteeCommentDatas.Count > CommentPanelMaxChildAmt && VisiteeFirstDisplayIndex > 0)
+            {
+                int revertAmt = Mathf.Min(CommentPanelMaxRevertAmt, VisiteeFirstDisplayIndex);
+
+                for (int i = 0; i < revertAmt; i++)
+                {
+                    CommentItem commentItem = CommentScrollRect.content.GetChild(CommentScrollRect.content.childCount - 1).GetComponent<CommentItem>();
+                    ResourceManager.Save(commentItem);
+                    CommentItems.Remove(commentItem);
+                    CommentData commentData = VisiteeCommentDatas[VisiteeLastDisplayIndex];
+
+                    commentItem = ResourceManager.GetCommentItem(commentData.NickName, commentData.SerialNumber, commentData.Content);
+                    CommentItems.Add(commentItem);
+                    commentItem.transform.SetAsFirstSibling();
+
+                    VisiteeLastDisplayIndex--;
+                    VisiteeFirstDisplayIndex--;
+                }
+
+                if (revertAmt > 0)
+                {
+                    CommentScrollRect.content.position += new Vector3(0, revertAmt* CommentItemHeight, 0);
+                    CommentScrollRect.AddContentOffset(new Vector3(0, revertAmt* CommentItemHeight, 0));
+                }
+            }
+        }
+    }
+
+    public static void ClearCommentPanel()
+    {
+        int childAmt = CommentScrollRect.content.childCount;
+
+        for (int i = 0; i < childAmt; i++)
+        {
+            CommentItem commentItem = CommentScrollRect.content.GetChild(0).GetComponent<CommentItem>();
+            ResourceManager.Save(commentItem);
+            CommentItems.Remove(commentItem);
+        }
+
+        CommentScrollRect.verticalNormalizedPosition = 1;
+    }
+
+    public static void OnScroll(Vector2 position)
+    {
+        if (PullCommentDataFlag)
+        {
+            return;
+        }
+
+        if (CommentScrollRect.content.childCount == 0)
+        {
+            return;
+        }
+
+        if (position.y >= 1)
+        {
+            PreviousCommentPage(IsPlayer);
+        }
+
+        if (position.y <= 0)
+        {
+            if (IsPlayer)
+            {
+                if (PlayerLastDisplayIndex == PlayerCommentDatas.Count - 1)
+                {
+                    PullCommentPage(true);
+                }
+                else if (PlayerLastDisplayIndex < PlayerCommentDatas.Count - 1)
+                {
+                    NextCommentPage(true, false);
+                }
+            }
+            else
+            {
+                if (VisiteeLastDisplayIndex == VisiteeCommentDatas.Count - 1)
+                {
+                    PullCommentPage(false);
+                }
+                else if (VisiteeLastDisplayIndex < VisiteeCommentDatas.Count - 1)
+                {
+                    NextCommentPage(false, false);
+                }
+            }
+        }
+    }
+
+
+    public static void OpenRankPanel()
+    {
+        AudioManager.PlayClip(AudioLabel.Bubble);
+
+        ResourceManager.Get(CanvasLabel.S_RankBK).TweenForCG();
+    }
+
+    public static void CloseRankPanel()
+    {
+        AudioManager.PlayClip(AudioLabel.ClickButton);
+
+        ResourceManager.Get(CanvasLabel.S_RankBK).TweenBacCG();
+    }
+
+    public static void RecordRankPanel()
+    {
+        OpenRankPanelFlag = true;
+    }
+
+    public static void RecoverRankPanel()
+    {
+        if (OpenRankPanelFlag)
+        {
+            OpenRankPanelFlag = false;
+
+            OpenRankPanel();
+        }
+    }
+
+    public static void InitRankPanel()
+    {
+        if (Initializer.Inited && HttpManager.IsRankDataReady)
+        {
+            for (int i = 0; i < HttpManager.RankDatas.Count; i++)
+            {
+                ResourceManager.GetRanktem((i + 1).ToString(), HttpManager.RankDatas[i][1].ToString(), HttpManager.RankDatas[i][0].ToString());
+            }
+        }
+    }
+
+
+    public static void OnCommentFriendFilterToggleClick(bool value)
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+        if (value)
+        {
+            EnableCommentFriendFilter();
+        }
+        else
+        {
+            DisableCommentFriendFilter();
+        }
+    }
+
+    public static void EnableCommentFriendFilter()
+    {
+        IsFriendFilterOn = true;
+        foreach (var commentItem in CommentItems)
+        {
+            if (!commentItem.IsFriend(FriendPanel.FriendAccountDatas))
+            {
+                commentItem.SetActive(false);
+            }
+        }
+    }
+
+    public static void DisableCommentFriendFilter()
+    {
+        IsFriendFilterOn = false;
+        foreach (var commentItem in CommentItems)
+        {
+            commentItem.SetActive(true);
+        }
+    }
+
+
+    private static void OnFriendListRefresh(List<AccountData> accountDatas)
+    {
+        if (IsFriendFilterOn)
+        {
+            EnableCommentFriendFilter();
+        }
+    }
+
+
+    public static void OnEnterVisiteeGarden()
+    {
+        ResourceManager.SetActive(CanvasLabel.C_NotifyParent, false);
+    }
+
+    public static void OnExitVisiteeGarden()
+    {
+        if (ResourceManager.Get(CanvasLabel.C_Notify).gameObject.activeSelf)
+        {
+            ResourceManager.SetActive(CanvasLabel.C_NotifyParent, true);
+        }
+    }
 }

+ 1702 - 1642
Assets/Script/Manage/TutorialManager.cs

@@ -1,1643 +1,1703 @@
-using System;
-using UnityEngine;
-using UnityEngine.UI;
-
-using System.Collections;
-using System.Collections.Generic;
-
-public class TutorialManager : Regist
-{
-    #region Config
-
-    public static bool PayExempt
-    {
-        get
-        {
-            if (payExempt)
-            {
-                return true;
-            }
-            else
-            {
-                if (PayExemptAmt > 0)
-                {
-                    PayExemptAmt--;
-
-                    return true;
-                }
-                else
-                {
-                    return false;
-                }
-            }
-        }
-        set { payExempt = value; }
-    }
-    public static bool payExempt;
-    public static int PayExemptAmt;
-
-    public static bool ConnectExempt
-    {
-        get
-        {
-            if (connectExempt)
-            {
-                return true;
-            }
-            else
-            {
-                if (ConnectExemptAmt > 0)
-                {
-                    ConnectExemptAmt--;
-
-                    return true;
-                }
-                else
-                {
-                    return false;
-                }
-            }
-        }
-        set { connectExempt = value; }
-    }
-    public static bool connectExempt;
-    public static int ConnectExemptAmt;
-
-    public static int MemoryMinigameTutorialLevel = 18;
-    public static int VisitTutorialLevel = 8;
-    public static int CommentTutorialLevel = 8;
-    public static int DressroomTutorialLevel = 13;
-    public static int FindSoloMinigameTutorialLevel = 22;
-    public static int PlazaRoomTutorialLevel = 28;
-    public static int SetNicknameTutorialIndex = 7;
-    public static int MinFlowerForFindSoloGame = 2;
-    public static int MinFlowerForFindMissingGame = 3;
-    public static int FindMissingMinigameTutorialLevel = 31;
-    public static int FashionShowTutorialLevel = 21;
-
-    public static bool NewplayerTutorial;
-    public static int NewplayerTutorialIndex;
-
-    public static bool MemoryMinigameTutorial;
-    public static bool memoryMinigameTutorial;
-    public static int MemoryMinigameTutorialIndex;
-
-    public static bool FindMissingMinigameTutorial;
-    public static bool findMissingMinigameTutorial;
-    public static int FindMissingMinigameTutorialIndex;
-
-    public static bool VisitTutorial;
-    public static bool visitTutorial;
-    public static int VisitTutorialIndex;
-
-    public static bool DressroomTutorial;
-    public static bool dressroomTutorial;
-    public static int DressroomTutorialIndex;
-
-    public static bool FindSoloMinigameTutorial;
-    public static bool findSoloMinigameTutorial;
-    public static int FindSoloMinigameTutorialIndex;
-
-    public static bool PlazaRoomTutorial;
-    public static bool plazaRoomTutorial;
-    public static int PlazaRoomTutorialIndex;
-
-
-    public static bool FashionShowTutorial;
-    public static bool fashionShowTutorial;
-    public static int FashionShowTutorialIndex;
-
-    #endregion
-
-    public override void InstantiatePrefabs()
-    {
-        if (NewplayerTutorial)
-        {
-            ResourceManager.Get(ResourceLabel.Tutorial, Folder.Scene, true, transform, false, ObjType.Tutorial).AddScript<Tutorial>();
-        }
-    }
-
-    public override void ThirdInit()
-    {
-        ResourceManager.Get<Image>(CanvasLabel.N_Mask).material = Lib.UIMaskMat;
-
-        Tutorial.Arrow = ResourceManager.Get(CanvasLabel.N_Arrow);
-        Tutorial.Material = ResourceManager.Get<Image>(CanvasLabel.N_Mask).material;
-
-        if (NewplayerTutorial)
-        {
-            ResourceManager.Get(TutorialLabel.TutorialMask).AddScript<SceneMask>();
-
-            Vector3 playerDisplayScale = new Vector3(0.75f, 0.75f, 0.75f);
-            Vector3 playerSelectScale = new Vector3(0.9f, 0.9f, 0.9f);
-            ResourceManager.Get(TutorialLabel.Tutorial).CreateTweenSr(0, 1, 1f, true, true, Curve.EaseOutQuad, false, true).AlphaOnly = true;
-            ResourceManager.Get(TutorialLabel.PlayerBk1).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
-            ResourceManager.Get(TutorialLabel.PlayerBk2).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
-            ResourceManager.Get(TutorialLabel.PlayerBk3).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
-            ResourceManager.Get(TutorialLabel.TutorialMask).CreateTweenSr(0, 180 / 255f, 0.25f, true, true, Curve.EaseOutQuad);
-
-
-            if (NewplayerTutorialIndex == 1)
-            {
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
-
-                ChoseCharacter();
-            }
-            else if (NewplayerTutorialIndex == SetNicknameTutorialIndex)
-            {
-                SetNickname();
-            }
-            else if (NewplayerTutorialIndex == 2)
-            {
-                ClickEnterMinigame();
-            }
-            else if (NewplayerTutorialIndex == 4)
-            {
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
-
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-                ResourceManager.SetActive(TutorialLabel.Tutorial, true);
-                ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
-                ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
-
-                Garden.Instance.TutorialToRegular();
-                UIManager.Instance.TutorialToRegular();
-
-                Transform tra = GardenManager.SlotList[0].transform;
-
-                Tutorial.HightScene(0.1f, 0.075f, tra.Find(SlotLabel.SlotArrow), tra);
-            }
-            else if (NewplayerTutorialIndex == 6)
-            {
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
-
-                Garden.Instance.TutorialToRegular();
-                UIManager.Instance.TutorialToRegular();
-
-                ClickManagePanel();
-            }
-        }
-    }
-
-
-    public static void EndChoseCharacter()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndChoseCharacter");
-
-        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk1).gameObject);
-        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk2).gameObject);
-        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk3).gameObject);
-
-        SetNickname();
-    }
-
-    public static void EndSetNickname()
-    {
-        NickNameManager.CloseNickNameSettingPanel();
-
-        NickNameManager.OnSetNickNameSucceed = null;
-
-        StaticsManager.GetInstance().TutoComplete("EndSetNickname");
-
-        ClickEnterMinigame();
-    }
-
-    public static void EndClickEnterMinigame()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickEnterMinigame");
-
-        Tutorial.HightDisable();
-
-        PlayPunchMinigame();
-    }
-
-    public static void EndPlayPunchMinigame()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndPlayPunchMinigame");
-
-        Tutorial.HightDisable();
-
-        ResourceManager.SetActive(CanvasLabel.D_Quit, true);
-
-        ClickSlot();
-    }
-
-    public static void EndClickSlot()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickSlot");
-
-        Tutorial.HightDisable();
-
-        PlantFlower();
-    }
-
-    public static void EndPlantFlower()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndPlantFlower");
-
-        ClickManagePanel();
-    }
-
-    public static void EndClickManagePanel()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickManagePanel");
-
-        Tutorial.HightDisable();
-
-        OpenUnlockPanel();
-    }
-
-    public static void EndOpenUnlockPanel()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndOpenUnlockPanel");
-
-        Tutorial.HightDisable(0, true);
-
-        ClickConfirmButton();
-    }
-
-    public static void EndClickConfirmButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickConfirmButton");
-
-        Tutorial.HightDisable(0, true);
-
-        UseBigSkill();
-    }
-
-    public static void EndUseBigSkill()
-    {
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowTip()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowTip");
-
-        NewplayerTutorial = false;
-
-        AudioManager.PlayClip(AudioLabel.Close);
-
-        AchieveManager.UpdateHint();
-
-        Tutorial.HightDisable();
-        ResourceManager.Get(CanvasLabel.F_TipBK).TweenBacCG();
-        ResourceManager.SetActive(CanvasLabel.F_TipBtn, false);
-
-        ResourceManager.SetActive(TutorialLabel.Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        ResourceManager.Get(CanvasLabel.C_MiniGame).TweenForCG();
-
-        PlayerManager.Player.SetAllCollider(true);
-
-        PayExemptAmt = 0;
-        ConnectExempt = false;
-    }
-
-
-    public static void ChoseCharacter()
-    {
-        NewplayerTutorialIndex = 1;
-
-        PlayerManager.DefaultPinkPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
-        PlayerManager.DefaultBlondPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
-        PlayerManager.DefaultBrownPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.Get(TutorialLabel.PlayerBk2).TweenForScale();
-        PlayerManager.DefaultBlondPlayer.TweenForScale();
-
-        ResourceManager.SetActive(TutorialLabel.PlayerBk1, true);
-        ResourceManager.SetActive(TutorialLabel.PlayerBk2, true);
-        ResourceManager.SetActive(TutorialLabel.PlayerBk3, true);
-        ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
-        ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-        ResourceManager.SetActive(CanvasLabel.N_Confirm, true);
-        ResourceManager.SetActive(CanvasLabel.N_FormerPlayerButton, true);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.N_FormerPlayerButton,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-                ResourceManager.Get(CanvasLabel.La_Info).TweenForCG();
-
-                ResourceManager.Get(CanvasLabel.N_Confirm).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenBacCG();
-
-                ResourceManager.AddButtonEventOnetime
-                (
-                    CanvasLabel.La_Cancel,
-                    () =>
-                    {
-                        ResourceManager.Get(CanvasLabel.N_Confirm).TweenForCG();
-                        ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenForCG();
-                    }
-                );
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.N_Confirm,
-            () =>
-            {
-                if (PlayerManager.SelectedPlayer == PlayerManager.DefaultPinkPlayer)
-                {
-                    PlayerManager.DressDatas.Add("脑壳3");
-                    PlayerManager.DressDatas.Add("裙子3");
-                    PlayerManager.DressDatas.Add("鞋子3");
-                    PlayerManager.DressDatas.Add("头饰品3");
-                    PlayerManager.DressDatas.Add("上衣3");
-                    PlayerManager.DressDatas.Add("眼睛3");
-                    PlayerManager.DressDatas.Add("嘴巴3");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖1左");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖1右");
-                }
-                else if (PlayerManager.SelectedPlayer == PlayerManager.DefaultBlondPlayer)
-                {
-                    PlayerManager.DressDatas.Add("脑壳1");
-                    PlayerManager.DressDatas.Add("裙子1");
-                    PlayerManager.DressDatas.Add("鞋子1");
-                    PlayerManager.DressDatas.Add("头饰品1");
-                    PlayerManager.DressDatas.Add("上衣1");
-                    PlayerManager.DressDatas.Add("眼睛1");
-                    PlayerManager.DressDatas.Add("嘴巴1");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖2左");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖2右");
-                }
-                else if (PlayerManager.SelectedPlayer == PlayerManager.DefaultBrownPlayer)
-                {
-                    PlayerManager.DressDatas.Add("脑壳2");
-                    PlayerManager.DressDatas.Add("裙子2");
-                    PlayerManager.DressDatas.Add("鞋子2");
-                    PlayerManager.DressDatas.Add("头饰品2");
-                    PlayerManager.DressDatas.Add("上衣2");
-                    PlayerManager.DressDatas.Add("眼睛2");
-                    PlayerManager.DressDatas.Add("嘴巴2");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖2左");
-                    PlayerManager.DressDatas.Add("Empty");
-                    PlayerManager.DressDatas.Add("短袖2右");
-                }
-
-                foreach (var str in PlayerManager.DressDatas)
-                {
-                    if (!PlayerManager.CloseIDDictionary.ContainsKey(str))
-                    {
-                        continue;
-                    }
-
-                    int id = PlayerManager.CloseIDDictionary[str];
-
-                    PlayerManager.CloseItemDictionary[id].Unlock();
-
-                    PlayerManager.BoughtCloseIDs.Add(id);
-                }
-
-                ConfigManager.SaveDress();
-
-
-                Transform tra = PlayerManager.SelectedPlayer;
-
-                PlayerManager.Player = tra.GetComponent<Player>();
-
-                tra.parent = null;
-
-                ResourceManager.TransformDictionary.Add(tra.name, tra);
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-
-                if (PlayerManager.DefaultPinkPlayer != PlayerManager.SelectedPlayer)
-                {
-                    PlayerManager.DefaultPinkPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
-                }
-
-                if (PlayerManager.DefaultBlondPlayer != PlayerManager.SelectedPlayer)
-                {
-                    PlayerManager.DefaultBlondPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
-                }
-
-                if (PlayerManager.DefaultBrownPlayer != PlayerManager.SelectedPlayer)
-                {
-                    PlayerManager.DefaultBrownPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
-                }
-
-                ResourceManager.Get(TutorialLabel.PlayerBk1).SetCollider(false);
-                ResourceManager.Get(TutorialLabel.PlayerBk2).SetCollider(false);
-                ResourceManager.Get(TutorialLabel.PlayerBk3).SetCollider(false);
-
-                tra.CreateTweenScale(ResourceManager.Get(GardenLabel.GardenPlayerPos).localScale, 1f, true, true, Curve.EaseOutQuad);
-                tra.CreateTweenVec3D(ResourceManager.Get(GardenLabel.GardenPlayerPos).position, 1f, false, true, true, Curve.EaseOutQuad);
-                tra.SetParent(ResourceManager.Get(GardenLabel.GardenPivot));
-
-                tra.TweenForVec();
-                tra.TweenForScale();
-
-
-                ResourceManager.Get(CanvasLabel.N_Confirm).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenBacCG();
-
-                TweenRoot tween = ResourceManager.Get(TutorialLabel.Tutorial).TweenBacSr();
-
-                tween.AddEventOnetime
-                (
-                    EventType.BackwardFinish,
-                    () =>
-                    {
-                        EndChoseCharacter();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void SetNickname()
-    {
-        NewplayerTutorialIndex = SetNicknameTutorialIndex;
-
-        NickNameManager.ShowNickNameSettingPanelFirstTime();
-
-        NickNameManager.OnSetNickNameSucceed = EndSetNickname;
-    }
-
-    public static void ClickEnterMinigame()
-    {
-        NewplayerTutorialIndex = 2;
-
-        Garden.Instance.TutorialToRegular();
-        UIManager.Instance.TutorialToRegular();
-
-        ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
-        ResourceManager.Get(CanvasLabel.C_MiniGame).TweenReForCG();
-
-        ResourceManager.SetActive(CanvasLabel.C_Coin, false);
-        ResourceManager.SetActive(CanvasLabel.C_Group1, false);
-        ResourceManager.SetActive(CanvasLabel.C_Group3, false);
-        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_MiniArrow0), ResourceManager.Get(CanvasLabel.C_MiniArrow1), ResourceManager.Get(CanvasLabel.C_MiniGame));
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.C_MiniGame,
-            () =>
-            {
-                EndClickEnterMinigame();
-            }
-        );
-    }
-
-    public static void PlayPunchMinigame()
-    {
-        ResourceManager.Get(TutorialLabel.Tutorial).SetCollider(false);
-
-        ResourceManager.SetActive(CanvasLabel.D_Quit, false);
-
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.D_MiniGame).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.D_BeginArrow0), ResourceManager.Get(CanvasLabel.D_BeginArrow1), ResourceManager.Get(CanvasLabel.D_Begin));
-            }
-        );
-
-        ResourceManager.PushButtonEventOnetime
-        (
-            CanvasLabel.D_Begin,
-            () =>
-            {
-                Tutorial.HightDisable();
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.Da_GetAward,
-            () =>
-            {
-                EndPlayPunchMinigame();
-
-                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
-            }
-        );
-    }
-
-    public static void ClickSlot()
-    {
-        NewplayerTutorialIndex = 4;
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.D_MiniGame).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish, 
-            () =>
-            {
-                ResourceManager.Get(TutorialLabel.Tutorial).SetCollider(true);
-
-                ResourceManager.Get<SpriteRenderer>(TutorialLabel.TutorialMask).material.SetAlpha(MaterialLabel.DefaultMatColor, 1);
-
-                ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
-                ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
-
-                Transform tra = GardenManager.SlotList[0].transform;
-
-                Tutorial.HightScene(0.1f, 0.075f, tra.Find(SlotLabel.SlotArrow), tra);
-            }
-        );
-    }
-
-    public static void PlantFlower()
-    {
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.G_Flower).TweenForCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Transform tra = ResourceManager.Get(CanvasLabel.G_RegularGrid).GetChild(0);
-
-                Tutorial.HightScreen(tra.Find(FlowerItemLabel.ArrowPos), tra);
-            }
-        );
-
-        FlowerInfo flowerInfo = GardenManager.GetFlowerInfo(1);
-
-        flowerInfo.Button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                Tutorial.HightDisable(0, true);
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.H_ArrowPos), ResourceManager.Get(CanvasLabel.H_Icon2));
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.H_Icon2,
-            () =>
-            {
-                Tutorial.HightDisable(0, true);
-
-                ResourceManager.Get(CanvasLabel.H_FlowerCard).TweenBacCG();
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.G_Arrow0), ResourceManager.Get(CanvasLabel.G_Close));
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.G_Close,
-            () =>
-            {
-                Tutorial.HightDisable();
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.G_Flower).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                EndPlantFlower();
-            }
-        );
-    }
-
-    public static void ClickManagePanel()
-    {
-        NewplayerTutorialIndex = 6;
-
-        ResourceManager.SetActive(CanvasLabel.C_Coin, true);
-        ResourceManager.SetActive(CanvasLabel.C_Group1, true);
-        ResourceManager.SetActive(CanvasLabel.C_Group3, true);
-        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish, () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_ManageArrow0), ResourceManager.Get(CanvasLabel.C_Manage));
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.C_Manage,
-            () =>
-            {
-                EndClickManagePanel();
-            }
-        );
-    }
-
-    public static void OpenUnlockPanel()
-    {
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish, 
-            () =>
-            {
-                Transform tra = Manager.SkillDictionary["Ability1"].SkillItem;
-
-                Tutorial.HightScreen(tra.Find(SkillItemLabel.ArrowPosition), tra.Find(SkillItemLabel.ArrowDestination), tra.Find(SkillItemLabel.Button));
-            }
-        );
-
-
-        SkillRoot skill = Manager.SkillDictionary["Ability1"];
-
-        skill.button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                Tutorial.HightDisable(0, true);
-
-                PayExemptAmt = 1;
-            }
-        );
-
-
-        tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish, 
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Fe_Arrow0), ResourceManager.Get(CanvasLabel.Fe_Arrow1), ResourceManager.Get(CanvasLabel.Fe_Btn));
-
-                ResourceManager.AddButtonEventOnetime
-                (
-                    CanvasLabel.Fe_Btn,
-
-                    () =>
-                    {
-                        ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-                        EndOpenUnlockPanel();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ClickConfirmButton()
-    {
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                Transform tra = Manager.SkillDictionary["Skill1"].SkillItem;
-
-                Tutorial.HightScreen(tra.Find(SkillItemLabel.ArrowPosition), tra.Find(SkillItemLabel.ArrowDestination), tra.Find(SkillItemLabel.Button));
-            }
-        );
-
-
-        SkillRoot skill = Manager.SkillDictionary["Skill1"];
-
-        skill.button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                Tutorial.HightDisable(0, true);
-
-                PayExemptAmt = 1;
-            }
-        );
-
-
-        tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Fe_Arrow0), ResourceManager.Get(CanvasLabel.Fe_Arrow1), ResourceManager.Get(CanvasLabel.Fe_Btn));
-
-                ResourceManager.AddButtonEventOnetime
-                (
-                    CanvasLabel.Fe_Btn,
-                    () =>
-                    {
-                        ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-                        EndClickConfirmButton();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void UseBigSkill()
-    {
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                ConnectExempt = true;
-
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_Arrow0), ResourceManager.Get(CanvasLabel.F_Skill1));
-            }
-        );
-
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.F_SkillBk11,
-            () =>
-            {
-                EndUseBigSkill();
-                ShowTip();
-            }
-        );
-    }
-
-    public static void ShowTip()
-    {
-        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-        ResourceManager.Get(CanvasLabel.F_TipBK).TweenForCG();
-        ResourceManager.SetText(CanvasLabel.F_Tip, Language.GetStr(LanguageLabel.UI__F_Tip));
-
-        ResourceManager.SetActive(CanvasLabel.F_TipBtn, true);
-        ResourceManager.AddButtonEventOnetime(CanvasLabel.F_TipBtn, () => EndShowTip());
-
-        ResourceManager.Get<ContentSizeFitter>(CanvasLabel.F_TipBK).SetLayoutVertical();
-        ResourceManager.Get<ContentSizeFitter>(CanvasLabel.F_TipBK).SetLayoutHorizontal();
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_TipBtn), 3, false);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_TipBK), 1);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_Tip), 2, false);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_DataB), 1, false);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_CoinLab), 2, false);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_DiamondLab), 2, false);
-    }
-
-
-    public static void EndClickVisitBtn()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickVisitBtn");
-
-        Tutorial.HightDisable();
-
-        VisitTutorial = false;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        PayExemptAmt = 0;
-        ConnectExemptAmt = 0;
-    }
-
-
-    public static void ClickVisitBtn()
-    {
-        VisitTutorial = true;
-        visitTutorial = false;
-
-        UIManager.BlockOfflinePanel();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        if (tweenRoot.InDestination)
-        {
-            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-            tween.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-
-                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                    tween.AddEventOnetime
-                    (
-                        EventType.BackwardFinish,
-                        () =>
-                        {
-                            ShowVisitBtn();
-                        }
-                    );
-                }
-            );
-        }
-        else
-        {
-            ShowVisitBtn();   
-        }
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.C_Return,
-            () =>
-            {
-                TweenRoot tween = ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG();
-                tween.AddEventOnetime
-                (
-                    EventType.BackwardFinish,
-                    () =>
-                    {
-                        UIManager.UnblockOfflinePanel();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ShowVisitBtn()
-    {
-        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-                tween.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        PayExemptAmt = 1;
-
-                        ResourceManager.SetActive(CanvasLabel.C_Visit, true);
-
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
-                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_VisitArrow0), ResourceManager.Get(CanvasLabel.C_Visit));
-
-                        ResourceManager.AddButtonEventOnetime
-                        (
-                            CanvasLabel.C_Visit,
-                            () =>
-                            {
-                                EndClickVisitBtn();
-                            }
-                        );
-                    }
-                );
-            }
-        );
-    }
-
-
-    public static void EndShowFirstCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowFirstCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowSecondCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowSecondCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowThirdCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowThirdCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowFourthCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowFourthCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowFifthCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowFifthCorrectButton");
-
-        Tutorial.HightDisable(0, false);
-    }
-
-    public static void EndShowSixthCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndShowSixthCorrectButton");
-
-        Tutorial.HightDisable();
-
-        MemoryMinigameTutorial = false;
-
-        MiniGameManager.Pause = false;
-    }
-
-
-    public static void PlayMemoryGame()
-    {
-        memoryMinigameTutorial = false;
-
-        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-
-        MiniGameManager.Pause = true;
-
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowFirstCorrectButton();
-                ShowSecondCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowSecondCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowSecondCorrectButton();
-                ShowThirdCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowThirdCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowThirdCorrectButton();
-                ShowFourthCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowFourthCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowFourthCorrectButton();
-                ShowFifthCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowFifthCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowFifthCorrectButton();
-                ShowSixthCorrectButton();
-            }
-        );
-    }
-
-    public static void ShowSixthCorrectButton()
-    {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
-        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
-        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-        button.AddButtonEventOnetime
-        (
-            () =>
-            {
-                EndShowSixthCorrectButton();
-            }
-        );
-    }
-
-
-    public static void EndClickFindMissingCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickFindMissingCorrectButton");
-
-        FindMissingMinigameTutorial = false;
-
-        Tutorial.HightDisable();
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        MiniGameManager.Pause = false;
-    }
-
-    public static void PlayFindMissingGame()
-    {
-        FindMissingMinigameTutorial = true;
-        findMissingMinigameTutorial = false;
-    }
-
-    public static void ShowFindMissingCorrectButton(Transform arrowTra, Transform targetTra)
-    {
-        MiniGameManager.Pause = true;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        Tutorial.HightScreen(arrowTra, targetTra, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-    }
-
-
-    public static void EndClickDressroomButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickDressroomButton");
-
-        DressroomTutorial = false;
-
-        ResourceManager.Get(CanvasLabel.C_Main2).TweenForCG();
-
-        Tutorial.HightDisable();
-
-        ResourceManager.Get(CanvasLabel.N_LabBK).TweenBacCG();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
-
-        tweenRoot.AddEventOnetime
-        (
-            EventType.BackwardFinish,
-            () =>
-            {
-                Tutorial.MaskFlag = true;
-
-                ResourceManager.SetActive(CanvasLabel.N_Button, false);
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.P_Return,
-            () =>
-            {
-                tweenRoot = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
-
-                tweenRoot.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        UIManager.UnblockOfflinePanel();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ClickDressroomButton()
-    {
-        DressroomTutorial = true;
-        dressroomTutorial = false;
-
-        UIManager.BlockOfflinePanel();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        if (tweenRoot.InDestination)
-        {
-            tweenRoot.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    ShowDressroomButton();
-                }
-            );
-
-            tweenRoot = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-            tweenRoot.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-                }
-            );
-        }
-        else
-        {
-            ShowDressroomButton();
-        }
-    }
-
-    public static void ShowDressroomButton()
-    {
-        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_DressRoomArrow), ResourceManager.Get(CanvasLabel.C_DressRoom));
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.C_DressRoom,
-            () =>
-            {
-                EndClickDressroomButton();
-            }
-        );
-
-        ResourceManager.SetText(CanvasLabel.N_Lab, Language.GetStr(LanguageLabel.UI__N_Lab));
-
-        Tutorial.ShowDescriptScreen(ResourceManager.Get(CanvasLabel.C_DressRoomLabPos).position);
-    }
-
-
-    public static void EndClickFindSoloCorrectButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickFindSoloCorrectButton");
-
-        FindSoloMinigameTutorial = false;
-
-        Tutorial.HightDisable();
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        MiniGameManager.Pause = false;
-    }
-
-    public static void PlayFindSoloGame()
-    {
-        FindSoloMinigameTutorial = true;
-        findSoloMinigameTutorial = false;
-    }
-
-    public static void ShowFindSoloCorrectButton(Transform arrowTra, Transform targetTra)
-    {
-        MiniGameManager.Pause = true;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        Tutorial.HightScreen(arrowTra, targetTra, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
-    }
-
-
-    public static void EndClickPlazaRoomBtn()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickPlazaRoomBtn");
-
-        Tutorial.HightDisable();
-
-        PlazaRoomTutorial = false;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        PayExemptAmt = 0;
-        ConnectExemptAmt = 0;
-
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.X_Quit,
-            () =>
-            {
-                TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.V_BlackMask).TweenForCG();
-
-                tweenRoot.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        UIManager.UnblockOfflinePanel();
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ClickPlazaRoomBtn()
-    {
-        PlazaRoomTutorial = true;
-        plazaRoomTutorial = false;
-
-        UIManager.BlockOfflinePanel();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        if (tweenRoot.InDestination)
-        {
-            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-            tween.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-
-                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                    tween.AddEventOnetime
-                    (
-                        EventType.BackwardFinish,
-                        () =>
-                        {
-                            ShowPlazaRoomBtn();
-                        }
-                    );
-                }
-            );
-        }
-        else
-        {
-            ShowPlazaRoomBtn();
-        }
-    }
-
-    public static void ShowPlazaRoomBtn()
-    {
-        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-                tween.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom, true);
-                        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).CalculateLayoutInputHorizontal();
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
-                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_PlazaRoomArrow0), ResourceManager.Get(CanvasLabel.C_EnterPlazaRoom));
-
-                        ResourceManager.AddButtonEventOnetime
-                        (
-                            CanvasLabel.C_EnterPlazaRoom,
-                            () =>
-                            {
-                                EndClickPlazaRoomBtn();
-                            }
-                        );
-                    }
-                );
-            }
-        );
-    }
-
-
-    public static void EndClickFashionShowBtn()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickFashionShowBtn");
-
-        Tutorial.HightDisable();
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        ShowHomePageDesc();
-    }
-
-    public static void EndHomePageDesc()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndHomePageDesc");
-        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBK, false);
-        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBtn, false);
-
-        ClickMineTabButton();
-    }
-
-    public static void EndClickMineTabButton()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndClickMineTabButton");
-
-        Tutorial.HightDisable();
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, true);
-
-        ResourceManager.Get(CanvasLabel.Pi_Tutorial).SetAsLastSibling();
-        ResourceManager.Get(CanvasLabel.Pi_LeaveTipBK).SetAsLastSibling();
-
-        DelayCall.Call(1, ShowLeaveDesc);
-    }
-
-    public static void EndLeaveDesc()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndLeaveDesc");
-
-        Tutorial.HightDisable();
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.Pi_LeaveTipBK, false);
-
-        ShowCloseDesc();
-    }
-
-    public static void EndCloseDesc()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndCloseDesc");
-        ResourceManager.SetActive(CanvasLabel.P_Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.P_CloseTipBK, false);
-        ResourceManager.SetActive(CanvasLabel.P_CloseTipBtn, false);
-        ClickShareButton();
-    }
-
-    public static void EndFashionShowTutorial()
-    {
-        StaticsManager.GetInstance().TutoComplete("EndFashionShowTutorial");
-
-        ResourceManager.SetActive(CanvasLabel.P_Tutorial, false);
-        ResourceManager.SetActive(CanvasLabel.P_CreateTipBK, false);
-
-        Tutorial.HightDisable();
-
-        FashionShowTutorial = false;
-        fashionShowTutorial = false;
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
-
-        PayExemptAmt = 0;
-        ConnectExemptAmt = 0;
-    }
-
-    public static void BeginFashionShowTutorial()
-    {
-        FashionShowTutorial = true;
-
-        ResourceManager.SetText(CanvasLabel.Pi_HomePageTip, Language.GetStr(LanguageLabel.Tutorial__ShowButtonDesc));
-        ResourceManager.SetText(CanvasLabel.Pi_LeaveTip, Language.GetStr(LanguageLabel.Tutorial__ShareButtonDesc));
-        ResourceManager.SetText(CanvasLabel.P_CloseTip, Language.GetStr(LanguageLabel.Tutorial__CloseDesc));
-        ResourceManager.SetText(CanvasLabel.P_CreateTip, Language.GetStr(LanguageLabel.Tutorial__CreateButtonDesc));
-
-        UIManager.BlockOfflinePanel();
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-        if (tweenRoot.InDestination)
-        {
-            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-
-            tween.AddEventOnetime
-            (
-                EventType.BackwardFinish,
-                () =>
-                {
-                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-
-                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
-
-                    tween.AddEventOnetime
-                    (
-                        EventType.BackwardFinish,
-                        () =>
-                        {
-                            ClickFashionShowBtn();
-                        }
-                    );
-                }
-            );
-        }
-        else
-        {
-            ClickFashionShowBtn();
-        }
-    }
-
-    public static void ClickFashionShowBtn()
-    {
-        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
-        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
-
-        tween.AddEventOnetime
-        (
-            EventType.ForwardFinish,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
-
-                tween.AddEventOnetime
-                (
-                    EventType.ForwardFinish,
-                    () =>
-                    {
-                        ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, true);
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).CalculateLayoutInputHorizontal();
-                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
-                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_FashionShowArrow), ResourceManager.Get(CanvasLabel.C_FashionShowButton));
-
-                        ResourceManager.AddButtonEventOnetime
-                        (
-                            CanvasLabel.C_FashionShowButton,
-                            () =>
-                            {
-                                EndClickFashionShowBtn();
-                            }
-                        );
-                    }
-                );
-            }
-        );
-    }
-
-    public static void ShowHomePageDesc()
-    {
-        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, true);
-        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBK, true);
-        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBtn, true);
-        LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.Pi_HomePageTipBK));
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.Pi_FashionShowHomePanel).GetTweenVec();
-        tween.AddEventOnetime
-        (EventType.ForwardFinish, () =>
-        {
-            ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-            Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_HomePageArrow1),
-                ResourceManager.Get(CanvasLabel.Pi_HomePageArrow0), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
-            ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
-            ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
-
-            ResourceManager.AddButtonEventOnetime(CanvasLabel.Pi_HomePageTipBtn, EndHomePageDesc);
-        });
-    }
-
-    public static void ClickMineTabButton()
-    {
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InDestination = true;
-
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_MineTabButtonArrow), ResourceManager.Get(CanvasLabel.Pi_MineTabButton));
-
-        ResourceManager.PushButtonEventOnetime
-        (
-            CanvasLabel.Pi_MineTabButton,
-            () =>
-            {
-                EndClickMineTabButton();
-            }
-        );
-    }
-
-    public static void ShowLeaveDesc()
-    {
-        ResourceManager.SetActive(CanvasLabel.Pi_LeaveTipBK, true);
-        LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.Pi_LeaveTipBK));
-        //Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.P_Close), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_ShareArrow), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
-
-        ResourceManager.AddButtonEventOnetime(CanvasLabel.Pi_Share, EndLeaveDesc);
-    }
-
-    public static void ShowCloseDesc()
-    {
-        ResourceManager.SetActive(CanvasLabel.P_Tutorial, true);
-        ResourceManager.SetActive(CanvasLabel.P_CloseTipBtn, true);
-        ResourceManager.SetActive(CanvasLabel.P_CloseTipBK, true);
-
-        DelayCall.Call
-        (
-            0.5f,
-            () =>
-            {
-                LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.P_CloseTipBK));
-
-                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.P_CloseArrow0), ResourceManager.Get(CanvasLabel.P_CloseArrow1), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
-                ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
-                ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
-            }
-        );
-
-        ResourceManager.AddButtonEventOnetime(CanvasLabel.P_CloseTipBtn, EndCloseDesc);
-    }
-
-    public static void ClickShareButton()
-    {
-        ResourceManager.Get(CanvasLabel.P_Tutorial).SetAsLastSibling();
-
-        ResourceManager.SetActive(CanvasLabel.P_Tutorial, true);
-        ResourceManager.SetActive(CanvasLabel.P_CreateTipBK, true);
-        DelayCall.Call(0.5f, () => LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.P_CreateTipBK)));
-
-        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
-
-        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_LeaveTipBK), ResourceManager.Get(CanvasLabel.P_FashionShowButton));
-
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
-        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
-
-        ResourceManager.AddButtonEventOnetime
-        (
-            CanvasLabel.P_FashionShowButton,
-            () =>
-            {
-                EndFashionShowTutorial();
-            }
-        );
-    }
+using System;
+using UnityEngine;
+using UnityEngine.UI;
+
+using System.Collections;
+using System.Collections.Generic;
+
+public class TutorialManager : Regist
+{
+    #region Config
+
+    public static bool PayExempt
+    {
+        get
+        {
+            if (payExempt)
+            {
+                return true;
+            }
+            else
+            {
+                if (PayExemptAmt > 0)
+                {
+                    PayExemptAmt--;
+
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+        }
+        set { payExempt = value; }
+    }
+    public static bool payExempt;
+    public static int PayExemptAmt;
+
+    public static bool ConnectExempt
+    {
+        get
+        {
+            if (connectExempt)
+            {
+                return true;
+            }
+            else
+            {
+                if (ConnectExemptAmt > 0)
+                {
+                    ConnectExemptAmt--;
+
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+        }
+        set { connectExempt = value; }
+    }
+    public static bool connectExempt;
+    public static int ConnectExemptAmt;
+
+    public static int MemoryMinigameTutorialLevel = 18;
+    public static int VisitTutorialLevel = 8;
+    public static int CommentTutorialLevel = 8;
+    public static int DressroomTutorialLevel = 13;
+    public static int FindSoloMinigameTutorialLevel = 22;
+    public static int PlazaRoomTutorialLevel = 28;
+    public static int SetNicknameTutorialIndex = 7;
+    public static int MinFlowerForFindSoloGame = 2;
+    public static int MinFlowerForFindMissingGame = 3;
+    public static int FindMissingMinigameTutorialLevel = 31;
+    public static int FashionShowTutorialLevel = 21;
+    public static int ChangeMouseTutorialLevel = 39;
+
+    public static bool NewplayerTutorial;
+    public static int NewplayerTutorialIndex;
+
+    public static bool MemoryMinigameTutorial;
+    public static bool memoryMinigameTutorial;
+    public static int MemoryMinigameTutorialIndex;
+
+    public static bool FindMissingMinigameTutorial;
+    public static bool findMissingMinigameTutorial;
+    public static int FindMissingMinigameTutorialIndex;
+
+    public static bool VisitTutorial;
+    public static bool visitTutorial;
+    public static int VisitTutorialIndex;
+
+    public static bool DressroomTutorial;
+    public static bool dressroomTutorial;
+    public static int DressroomTutorialIndex;
+
+    public static bool FindSoloMinigameTutorial;
+    public static bool findSoloMinigameTutorial;
+    public static int FindSoloMinigameTutorialIndex;
+
+    public static bool PlazaRoomTutorial;
+    public static bool plazaRoomTutorial;
+    public static int PlazaRoomTutorialIndex;
+
+
+    public static bool FashionShowTutorial;
+    public static bool fashionShowTutorial;
+    public static int FashionShowTutorialIndex;
+
+
+    public static bool changeMouseTutorial;
+
+    #endregion
+
+    public override void InstantiatePrefabs()
+    {
+        //if (NewplayerTutorial)
+        //{
+            ResourceManager.Get(ResourceLabel.Tutorial, Folder.Scene, true, transform, false, ObjType.Tutorial).AddScript<Tutorial>();
+            ResourceManager.Get(TutorialLabel.TutorialMask).AddScript<SceneMask>();
+            ResourceManager.Get(TutorialLabel.TutorialMask).CreateTweenSr(0, 180 / 255f, 0.25f, true, true, Curve.EaseOutQuad);
+        //}
+    }
+
+    public override void ThirdInit()
+    {
+        ResourceManager.Get<Image>(CanvasLabel.N_Mask).material = Lib.UIMaskMat;
+
+        Tutorial.Arrow = ResourceManager.Get(CanvasLabel.N_Arrow);
+        Tutorial.Material = ResourceManager.Get<Image>(CanvasLabel.N_Mask).material;
+
+        if (NewplayerTutorial)
+        {
+            //ResourceManager.Get(TutorialLabel.TutorialMask).AddScript<SceneMask>();
+
+            Vector3 playerDisplayScale = new Vector3(0.75f, 0.75f, 0.75f);
+            Vector3 playerSelectScale = new Vector3(0.9f, 0.9f, 0.9f);
+            ResourceManager.Get(TutorialLabel.Tutorial).CreateTweenSr(0, 1, 1f, true, true, Curve.EaseOutQuad, false, true).AlphaOnly = true;
+            ResourceManager.Get(TutorialLabel.PlayerBk1).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
+            ResourceManager.Get(TutorialLabel.PlayerBk2).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
+            ResourceManager.Get(TutorialLabel.PlayerBk3).CreateTweenScale(playerDisplayScale, playerSelectScale, 1f, true, true, Curve.EaseOutQuad);
+            //ResourceManager.Get(TutorialLabel.TutorialMask).CreateTweenSr(0, 180 / 255f, 0.25f, true, true, Curve.EaseOutQuad);
+
+
+            if (NewplayerTutorialIndex == 1)
+            {
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
+
+                ChoseCharacter();
+            }
+            else if (NewplayerTutorialIndex == SetNicknameTutorialIndex)
+            {
+                SetNickname();
+            }
+            else if (NewplayerTutorialIndex == 2)
+            {
+                ClickEnterMinigame();
+            }
+            else if (NewplayerTutorialIndex == 4)
+            {
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
+
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+                ResourceManager.SetActive(TutorialLabel.Tutorial, true);
+                ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
+                ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
+
+                Garden.Instance.TutorialToRegular();
+                UIManager.Instance.TutorialToRegular();
+
+                Transform tra = GardenManager.SlotList[0].transform;
+
+                Tutorial.HightScene(0.1f, 0.075f, tra.Find(SlotLabel.SlotArrow), tra);
+            }
+            else if (NewplayerTutorialIndex == 6)
+            {
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
+
+                Garden.Instance.TutorialToRegular();
+                UIManager.Instance.TutorialToRegular();
+
+                ClickManagePanel();
+            }
+        }
+    }
+
+
+    public static void EndChoseCharacter()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndChoseCharacter");
+
+        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk1).gameObject);
+        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk2).gameObject);
+        Destroy(ResourceManager.Get(TutorialLabel.PlayerBk3).gameObject);
+
+        SetNickname();
+    }
+
+    public static void EndSetNickname()
+    {
+        NickNameManager.CloseNickNameSettingPanel();
+
+        NickNameManager.OnSetNickNameSucceed = null;
+
+        StaticsManager.GetInstance().TutoComplete("EndSetNickname");
+
+        ClickEnterMinigame();
+    }
+
+    public static void EndClickEnterMinigame()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickEnterMinigame");
+
+        Tutorial.HightDisable();
+
+        PlayPunchMinigame();
+    }
+
+    public static void EndPlayPunchMinigame()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndPlayPunchMinigame");
+
+        Tutorial.HightDisable();
+
+        ResourceManager.SetActive(CanvasLabel.D_Quit, true);
+
+        ClickSlot();
+    }
+
+    public static void EndClickSlot()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickSlot");
+
+        Tutorial.HightDisable();
+
+        PlantFlower();
+    }
+
+    public static void EndPlantFlower()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndPlantFlower");
+
+        ClickManagePanel();
+    }
+
+    public static void EndClickManagePanel()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickManagePanel");
+
+        Tutorial.HightDisable();
+
+        OpenUnlockPanel();
+    }
+
+    public static void EndOpenUnlockPanel()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndOpenUnlockPanel");
+
+        Tutorial.HightDisable(0, true);
+
+        ClickConfirmButton();
+    }
+
+    public static void EndClickConfirmButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickConfirmButton");
+
+        Tutorial.HightDisable(0, true);
+
+        UseBigSkill();
+    }
+
+    public static void EndUseBigSkill()
+    {
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowTip()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowTip");
+
+        NewplayerTutorial = false;
+
+        AudioManager.PlayClip(AudioLabel.Close);
+
+        AchieveManager.UpdateHint();
+
+        Tutorial.HightDisable();
+        ResourceManager.Get(CanvasLabel.F_TipBK).TweenBacCG();
+        ResourceManager.SetActive(CanvasLabel.F_TipBtn, false);
+
+        ResourceManager.SetActive(TutorialLabel.Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        ResourceManager.Get(CanvasLabel.C_MiniGame).TweenForCG();
+
+        PlayerManager.Player.SetAllCollider(true);
+
+        PayExemptAmt = 0;
+        ConnectExempt = false;
+    }
+
+
+    public static void ChoseCharacter()
+    {
+        NewplayerTutorialIndex = 1;
+
+        PlayerManager.DefaultPinkPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
+        PlayerManager.DefaultBlondPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
+        PlayerManager.DefaultBrownPlayer.CreateTweenScale(0.9f, 1f, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.Get(TutorialLabel.PlayerBk2).TweenForScale();
+        PlayerManager.DefaultBlondPlayer.TweenForScale();
+
+        ResourceManager.SetActive(TutorialLabel.PlayerBk1, true);
+        ResourceManager.SetActive(TutorialLabel.PlayerBk2, true);
+        ResourceManager.SetActive(TutorialLabel.PlayerBk3, true);
+        ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
+        ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+        ResourceManager.SetActive(CanvasLabel.N_Confirm, true);
+        ResourceManager.SetActive(CanvasLabel.N_FormerPlayerButton, true);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.N_FormerPlayerButton,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+                ResourceManager.Get(CanvasLabel.La_Info).TweenForCG();
+
+                ResourceManager.Get(CanvasLabel.N_Confirm).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenBacCG();
+
+                ResourceManager.AddButtonEventOnetime
+                (
+                    CanvasLabel.La_Cancel,
+                    () =>
+                    {
+                        ResourceManager.Get(CanvasLabel.N_Confirm).TweenForCG();
+                        ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenForCG();
+                    }
+                );
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.N_Confirm,
+            () =>
+            {
+                if (PlayerManager.SelectedPlayer == PlayerManager.DefaultPinkPlayer)
+                {
+                    PlayerManager.DressDatas.Add("脑壳3");
+                    PlayerManager.DressDatas.Add("裙子3");
+                    PlayerManager.DressDatas.Add("鞋子3");
+                    PlayerManager.DressDatas.Add("头饰品3");
+                    PlayerManager.DressDatas.Add("上衣3");
+                    PlayerManager.DressDatas.Add("眼睛3");
+                    PlayerManager.DressDatas.Add("嘴巴3");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖1左");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖1右");
+                }
+                else if (PlayerManager.SelectedPlayer == PlayerManager.DefaultBlondPlayer)
+                {
+                    PlayerManager.DressDatas.Add("脑壳1");
+                    PlayerManager.DressDatas.Add("裙子1");
+                    PlayerManager.DressDatas.Add("鞋子1");
+                    PlayerManager.DressDatas.Add("头饰品1");
+                    PlayerManager.DressDatas.Add("上衣1");
+                    PlayerManager.DressDatas.Add("眼睛1");
+                    PlayerManager.DressDatas.Add("嘴巴1");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖2左");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖2右");
+                }
+                else if (PlayerManager.SelectedPlayer == PlayerManager.DefaultBrownPlayer)
+                {
+                    PlayerManager.DressDatas.Add("脑壳2");
+                    PlayerManager.DressDatas.Add("裙子2");
+                    PlayerManager.DressDatas.Add("鞋子2");
+                    PlayerManager.DressDatas.Add("头饰品2");
+                    PlayerManager.DressDatas.Add("上衣2");
+                    PlayerManager.DressDatas.Add("眼睛2");
+                    PlayerManager.DressDatas.Add("嘴巴2");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖2左");
+                    PlayerManager.DressDatas.Add("Empty");
+                    PlayerManager.DressDatas.Add("短袖2右");
+                }
+
+                foreach (var str in PlayerManager.DressDatas)
+                {
+                    if (!PlayerManager.CloseIDDictionary.ContainsKey(str))
+                    {
+                        continue;
+                    }
+
+                    int id = PlayerManager.CloseIDDictionary[str];
+
+                    PlayerManager.CloseItemDictionary[id].Unlock();
+
+                    PlayerManager.BoughtCloseIDs.Add(id);
+                }
+
+                ConfigManager.SaveDress();
+
+
+                Transform tra = PlayerManager.SelectedPlayer;
+
+                PlayerManager.Player = tra.GetComponent<Player>();
+
+                tra.parent = null;
+
+                ResourceManager.TransformDictionary.Add(tra.name, tra);
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+
+                if (PlayerManager.DefaultPinkPlayer != PlayerManager.SelectedPlayer)
+                {
+                    PlayerManager.DefaultPinkPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
+                }
+
+                if (PlayerManager.DefaultBlondPlayer != PlayerManager.SelectedPlayer)
+                {
+                    PlayerManager.DefaultBlondPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
+                }
+
+                if (PlayerManager.DefaultBrownPlayer != PlayerManager.SelectedPlayer)
+                {
+                    PlayerManager.DefaultBrownPlayer.GetComponentInChildren<Renderer>(true).CreateTweenRenderer(0, 0.25f, true, false, Curve.EaseOutQuad, false, true).StartForward();
+                }
+
+                ResourceManager.Get(TutorialLabel.PlayerBk1).SetCollider(false);
+                ResourceManager.Get(TutorialLabel.PlayerBk2).SetCollider(false);
+                ResourceManager.Get(TutorialLabel.PlayerBk3).SetCollider(false);
+
+                tra.CreateTweenScale(ResourceManager.Get(GardenLabel.GardenPlayerPos).localScale, 1f, true, true, Curve.EaseOutQuad);
+                tra.CreateTweenVec3D(ResourceManager.Get(GardenLabel.GardenPlayerPos).position, 1f, false, true, true, Curve.EaseOutQuad);
+                tra.SetParent(ResourceManager.Get(GardenLabel.GardenPivot));
+
+                tra.TweenForVec();
+                tra.TweenForScale();
+
+
+                ResourceManager.Get(CanvasLabel.N_Confirm).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).TweenBacCG();
+
+                TweenRoot tween = ResourceManager.Get(TutorialLabel.Tutorial).TweenBacSr();
+
+                tween.AddEventOnetime
+                (
+                    EventType.BackwardFinish,
+                    () =>
+                    {
+                        EndChoseCharacter();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void SetNickname()
+    {
+        NewplayerTutorialIndex = SetNicknameTutorialIndex;
+
+        NickNameManager.ShowNickNameSettingPanelFirstTime();
+
+        NickNameManager.OnSetNickNameSucceed = EndSetNickname;
+    }
+
+    public static void ClickEnterMinigame()
+    {
+        NewplayerTutorialIndex = 2;
+
+        Garden.Instance.TutorialToRegular();
+        UIManager.Instance.TutorialToRegular();
+
+        ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
+        ResourceManager.Get(CanvasLabel.C_MiniGame).TweenReForCG();
+
+        ResourceManager.SetActive(CanvasLabel.C_Coin, false);
+        ResourceManager.SetActive(CanvasLabel.C_Group1, false);
+        ResourceManager.SetActive(CanvasLabel.C_Group3, false);
+        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_MiniArrow0), ResourceManager.Get(CanvasLabel.C_MiniArrow1), ResourceManager.Get(CanvasLabel.C_MiniGame));
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.C_MiniGame,
+            () =>
+            {
+                EndClickEnterMinigame();
+            }
+        );
+    }
+
+    public static void PlayPunchMinigame()
+    {
+        ResourceManager.Get(TutorialLabel.Tutorial).SetCollider(false);
+
+        ResourceManager.SetActive(CanvasLabel.D_Quit, false);
+
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.D_MiniGame).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.D_BeginArrow0), ResourceManager.Get(CanvasLabel.D_BeginArrow1), ResourceManager.Get(CanvasLabel.D_Begin));
+            }
+        );
+
+        ResourceManager.PushButtonEventOnetime
+        (
+            CanvasLabel.D_Begin,
+            () =>
+            {
+                Tutorial.HightDisable();
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.Da_GetAward,
+            () =>
+            {
+                EndPlayPunchMinigame();
+
+                ResourceManager.Get(CanvasLabel.C_MiniGame).TweenBacCG();
+            }
+        );
+    }
+
+    public static void ClickSlot()
+    {
+        NewplayerTutorialIndex = 4;
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.D_MiniGame).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish, 
+            () =>
+            {
+                ResourceManager.Get(TutorialLabel.Tutorial).SetCollider(true);
+
+                ResourceManager.Get<SpriteRenderer>(TutorialLabel.TutorialMask).material.SetAlpha(MaterialLabel.DefaultMatColor, 1);
+
+                ResourceManager.SetActive(TutorialLabel.TutorialMask, true);
+                ResourceManager.SetActive(TutorialLabel.TutorialCollider, true);
+
+                Transform tra = GardenManager.SlotList[0].transform;
+
+                Tutorial.HightScene(0.1f, 0.075f, tra.Find(SlotLabel.SlotArrow), tra);
+            }
+        );
+    }
+
+    public static void PlantFlower()
+    {
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.G_Flower).TweenForCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Transform tra = ResourceManager.Get(CanvasLabel.G_RegularGrid).GetChild(0);
+
+                Tutorial.HightScreen(tra.Find(FlowerItemLabel.ArrowPos), tra);
+            }
+        );
+
+        FlowerInfo flowerInfo = GardenManager.GetFlowerInfo(1);
+
+        flowerInfo.Button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                Tutorial.HightDisable(0, true);
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.H_ArrowPos), ResourceManager.Get(CanvasLabel.H_Icon2));
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.H_Icon2,
+            () =>
+            {
+                Tutorial.HightDisable(0, true);
+
+                ResourceManager.Get(CanvasLabel.H_FlowerCard).TweenBacCG();
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.G_Arrow0), ResourceManager.Get(CanvasLabel.G_Close));
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.G_Close,
+            () =>
+            {
+                Tutorial.HightDisable();
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.G_Flower).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                EndPlantFlower();
+            }
+        );
+    }
+
+    public static void ClickManagePanel()
+    {
+        NewplayerTutorialIndex = 6;
+
+        ResourceManager.SetActive(CanvasLabel.C_Coin, true);
+        ResourceManager.SetActive(CanvasLabel.C_Group1, true);
+        ResourceManager.SetActive(CanvasLabel.C_Group3, true);
+        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).TweenForCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish, () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_ManageArrow0), ResourceManager.Get(CanvasLabel.C_Manage));
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.C_Manage,
+            () =>
+            {
+                EndClickManagePanel();
+            }
+        );
+    }
+
+    public static void OpenUnlockPanel()
+    {
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish, 
+            () =>
+            {
+                Transform tra = Manager.SkillDictionary["Ability1"].SkillItem;
+
+                Tutorial.HightScreen(tra.Find(SkillItemLabel.ArrowPosition), tra.Find(SkillItemLabel.ArrowDestination), tra.Find(SkillItemLabel.Button));
+            }
+        );
+
+
+        SkillRoot skill = Manager.SkillDictionary["Ability1"];
+
+        skill.button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                Tutorial.HightDisable(0, true);
+
+                PayExemptAmt = 1;
+            }
+        );
+
+
+        tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish, 
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Fe_Arrow0), ResourceManager.Get(CanvasLabel.Fe_Arrow1), ResourceManager.Get(CanvasLabel.Fe_Btn));
+
+                ResourceManager.AddButtonEventOnetime
+                (
+                    CanvasLabel.Fe_Btn,
+
+                    () =>
+                    {
+                        ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+                        EndOpenUnlockPanel();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ClickConfirmButton()
+    {
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                Transform tra = Manager.SkillDictionary["Skill1"].SkillItem;
+
+                Tutorial.HightScreen(tra.Find(SkillItemLabel.ArrowPosition), tra.Find(SkillItemLabel.ArrowDestination), tra.Find(SkillItemLabel.Button));
+            }
+        );
+
+
+        SkillRoot skill = Manager.SkillDictionary["Skill1"];
+
+        skill.button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                Tutorial.HightDisable(0, true);
+
+                PayExemptAmt = 1;
+            }
+        );
+
+
+        tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Fe_Arrow0), ResourceManager.Get(CanvasLabel.Fe_Arrow1), ResourceManager.Get(CanvasLabel.Fe_Btn));
+
+                ResourceManager.AddButtonEventOnetime
+                (
+                    CanvasLabel.Fe_Btn,
+                    () =>
+                    {
+                        ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+                        EndClickConfirmButton();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void UseBigSkill()
+    {
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                ConnectExempt = true;
+
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_Arrow0), ResourceManager.Get(CanvasLabel.F_Skill1));
+            }
+        );
+
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.F_SkillBk11,
+            () =>
+            {
+                EndUseBigSkill();
+                ShowTip();
+            }
+        );
+    }
+
+    public static void ShowTip()
+    {
+        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+        ResourceManager.Get(CanvasLabel.F_TipBK).TweenForCG();
+        ResourceManager.SetText(CanvasLabel.F_Tip, Language.GetStr(LanguageLabel.UI__F_Tip));
+
+        ResourceManager.SetActive(CanvasLabel.F_TipBtn, true);
+        ResourceManager.AddButtonEventOnetime(CanvasLabel.F_TipBtn, () => EndShowTip());
+
+        ResourceManager.Get<ContentSizeFitter>(CanvasLabel.F_TipBK).SetLayoutVertical();
+        ResourceManager.Get<ContentSizeFitter>(CanvasLabel.F_TipBK).SetLayoutHorizontal();
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_TipBtn), 3, false);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_TipBK), 1);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_Tip), 2, false);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_DataB), 1, false);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_CoinLab), 2, false);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.F_CoinLabArrow), ResourceManager.Get(CanvasLabel.F_DiamondLab), 2, false);
+    }
+
+
+    public static void EndClickVisitBtn()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickVisitBtn");
+
+        Tutorial.HightDisable();
+
+        VisitTutorial = false;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        PayExemptAmt = 0;
+        ConnectExemptAmt = 0;
+    }
+
+
+    public static void ClickVisitBtn()
+    {
+        VisitTutorial = true;
+        visitTutorial = false;
+
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tween.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+
+                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.BackwardFinish,
+                        () =>
+                        {
+                            ShowVisitBtn();
+                        }
+                    );
+                }
+            );
+        }
+        else
+        {
+            ShowVisitBtn();   
+        }
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.C_Return,
+            () =>
+            {
+                TweenRoot tween = ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG();
+                tween.AddEventOnetime
+                (
+                    EventType.BackwardFinish,
+                    () =>
+                    {
+                        UIManager.UnblockOfflinePanel();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ShowVisitBtn()
+    {
+        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+                tween.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        PayExemptAmt = 1;
+
+                        ResourceManager.SetActive(CanvasLabel.C_Visit, true);
+
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
+                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_VisitArrow0), ResourceManager.Get(CanvasLabel.C_Visit));
+
+                        ResourceManager.AddButtonEventOnetime
+                        (
+                            CanvasLabel.C_Visit,
+                            () =>
+                            {
+                                EndClickVisitBtn();
+                            }
+                        );
+                    }
+                );
+            }
+        );
+    }
+
+
+    public static void EndShowFirstCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowFirstCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowSecondCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowSecondCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowThirdCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowThirdCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowFourthCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowFourthCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowFifthCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowFifthCorrectButton");
+
+        Tutorial.HightDisable(0, false);
+    }
+
+    public static void EndShowSixthCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndShowSixthCorrectButton");
+
+        Tutorial.HightDisable();
+
+        MemoryMinigameTutorial = false;
+
+        MiniGameManager.Pause = false;
+    }
+
+
+    public static void PlayMemoryGame()
+    {
+        memoryMinigameTutorial = false;
+
+        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+
+        MiniGameManager.Pause = true;
+
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowFirstCorrectButton();
+                ShowSecondCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowSecondCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowSecondCorrectButton();
+                ShowThirdCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowThirdCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowThirdCorrectButton();
+                ShowFourthCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowFourthCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowFourthCorrectButton();
+                ShowFifthCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowFifthCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowFifthCorrectButton();
+                ShowSixthCorrectButton();
+            }
+        );
+    }
+
+    public static void ShowSixthCorrectButton()
+    {
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
+        Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
+        Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+        button.AddButtonEventOnetime
+        (
+            () =>
+            {
+                EndShowSixthCorrectButton();
+            }
+        );
+    }
+
+
+    public static void EndClickFindMissingCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickFindMissingCorrectButton");
+
+        FindMissingMinigameTutorial = false;
+
+        Tutorial.HightDisable();
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        MiniGameManager.Pause = false;
+    }
+
+    public static void PlayFindMissingGame()
+    {
+        FindMissingMinigameTutorial = true;
+        findMissingMinigameTutorial = false;
+    }
+
+    public static void ShowFindMissingCorrectButton(Transform arrowTra, Transform targetTra)
+    {
+        MiniGameManager.Pause = true;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        Tutorial.HightScreen(arrowTra, targetTra, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+    }
+
+
+    public static void EndClickDressroomButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickDressroomButton");
+
+        DressroomTutorial = false;
+
+        ResourceManager.Get(CanvasLabel.C_Main2).TweenForCG();
+
+        Tutorial.HightDisable();
+
+        ResourceManager.Get(CanvasLabel.N_LabBK).TweenBacCG();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
+
+        tweenRoot.AddEventOnetime
+        (
+            EventType.BackwardFinish,
+            () =>
+            {
+                Tutorial.MaskFlag = true;
+
+                ResourceManager.SetActive(CanvasLabel.N_Button, false);
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.P_Return,
+            () =>
+            {
+                tweenRoot = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
+
+                tweenRoot.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        UIManager.UnblockOfflinePanel();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ClickDressroomButton()
+    {
+        DressroomTutorial = true;
+        dressroomTutorial = false;
+
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            tweenRoot.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ShowDressroomButton();
+                }
+            );
+
+            tweenRoot = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tweenRoot.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+                }
+            );
+        }
+        else
+        {
+            ShowDressroomButton();
+        }
+    }
+
+    public static void ShowDressroomButton()
+    {
+        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_DressRoomArrow), ResourceManager.Get(CanvasLabel.C_DressRoom));
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.C_DressRoom,
+            () =>
+            {
+                EndClickDressroomButton();
+            }
+        );
+
+        ResourceManager.SetText(CanvasLabel.N_Lab, Language.GetStr(LanguageLabel.UI__N_Lab));
+
+        Tutorial.ShowDescriptScreen(ResourceManager.Get(CanvasLabel.C_DressRoomLabPos).position);
+    }
+
+
+    public static void EndClickFindSoloCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickFindSoloCorrectButton");
+
+        FindSoloMinigameTutorial = false;
+
+        Tutorial.HightDisable();
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        MiniGameManager.Pause = false;
+    }
+
+    public static void PlayFindSoloGame()
+    {
+        FindSoloMinigameTutorial = true;
+        findSoloMinigameTutorial = false;
+    }
+
+    public static void ShowFindSoloCorrectButton(Transform arrowTra, Transform targetTra)
+    {
+        MiniGameManager.Pause = true;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        Tutorial.HightScreen(arrowTra, targetTra, 1, true, new Vector3(0.05f, 0.05f, 0.05f));
+    }
+
+
+    public static void EndClickPlazaRoomBtn()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickPlazaRoomBtn");
+
+        Tutorial.HightDisable();
+
+        PlazaRoomTutorial = false;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        PayExemptAmt = 0;
+        ConnectExemptAmt = 0;
+
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.X_Quit,
+            () =>
+            {
+                TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.V_BlackMask).TweenForCG();
+
+                tweenRoot.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        UIManager.UnblockOfflinePanel();
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ClickPlazaRoomBtn()
+    {
+        PlazaRoomTutorial = true;
+        plazaRoomTutorial = false;
+
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tween.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+
+                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.BackwardFinish,
+                        () =>
+                        {
+                            ShowPlazaRoomBtn();
+                        }
+                    );
+                }
+            );
+        }
+        else
+        {
+            ShowPlazaRoomBtn();
+        }
+    }
+
+    public static void ShowPlazaRoomBtn()
+    {
+        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+                tween.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom, true);
+                        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).CalculateLayoutInputHorizontal();
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
+                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_PlazaRoomArrow0), ResourceManager.Get(CanvasLabel.C_EnterPlazaRoom));
+
+                        ResourceManager.AddButtonEventOnetime
+                        (
+                            CanvasLabel.C_EnterPlazaRoom,
+                            () =>
+                            {
+                                EndClickPlazaRoomBtn();
+                            }
+                        );
+                    }
+                );
+            }
+        );
+    }
+
+
+    public static void EndClickFashionShowBtn()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickFashionShowBtn");
+
+        Tutorial.HightDisable();
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        ShowHomePageDesc();
+    }
+
+    public static void EndHomePageDesc()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndHomePageDesc");
+        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBK, false);
+        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBtn, false);
+
+        ClickMineTabButton();
+    }
+
+    public static void EndClickMineTabButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickMineTabButton");
+
+        Tutorial.HightDisable();
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, true);
+
+        ResourceManager.Get(CanvasLabel.Pi_Tutorial).SetAsLastSibling();
+        ResourceManager.Get(CanvasLabel.Pi_LeaveTipBK).SetAsLastSibling();
+
+        DelayCall.Call(1, ShowLeaveDesc);
+    }
+
+    public static void EndLeaveDesc()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndLeaveDesc");
+
+        Tutorial.HightDisable();
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.Pi_LeaveTipBK, false);
+
+        ShowCloseDesc();
+    }
+
+    public static void EndCloseDesc()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndCloseDesc");
+        ResourceManager.SetActive(CanvasLabel.P_Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.P_CloseTipBK, false);
+        ResourceManager.SetActive(CanvasLabel.P_CloseTipBtn, false);
+        ClickShareButton();
+    }
+
+    public static void EndFashionShowTutorial()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndFashionShowTutorial");
+
+        ResourceManager.SetActive(CanvasLabel.P_Tutorial, false);
+        ResourceManager.SetActive(CanvasLabel.P_CreateTipBK, false);
+
+        Tutorial.HightDisable();
+
+        FashionShowTutorial = false;
+        fashionShowTutorial = false;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        PayExemptAmt = 0;
+        ConnectExemptAmt = 0;
+    }
+
+    public static void BeginFashionShowTutorial()
+    {
+        FashionShowTutorial = true;
+
+        ResourceManager.SetText(CanvasLabel.Pi_HomePageTip, Language.GetStr(LanguageLabel.Tutorial__ShowButtonDesc));
+        ResourceManager.SetText(CanvasLabel.Pi_LeaveTip, Language.GetStr(LanguageLabel.Tutorial__ShareButtonDesc));
+        ResourceManager.SetText(CanvasLabel.P_CloseTip, Language.GetStr(LanguageLabel.Tutorial__CloseDesc));
+        ResourceManager.SetText(CanvasLabel.P_CreateTip, Language.GetStr(LanguageLabel.Tutorial__CreateButtonDesc));
+
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tween.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+
+                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.BackwardFinish,
+                        () =>
+                        {
+                            ClickFashionShowBtn();
+                        }
+                    );
+                }
+            );
+        }
+        else
+        {
+            ClickFashionShowBtn();
+        }
+    }
+
+    public static void ClickFashionShowBtn()
+    {
+        ResourceManager.Get(CanvasLabel.C_Main).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group).TweenReForCG();
+        ResourceManager.Get(CanvasLabel.C_Group0).TweenReForCG();
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG();
+
+        tween.AddEventOnetime
+        (
+            EventType.ForwardFinish,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+                tween = ResourceManager.Get(CanvasLabel.N_Mask).TweenForGra();
+
+                tween.AddEventOnetime
+                (
+                    EventType.ForwardFinish,
+                    () =>
+                    {
+                        ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, true);
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).CalculateLayoutInputHorizontal();
+                        ResourceManager.Get<HorizontalLayoutGroup>(CanvasLabel.C_Group4).SetLayoutHorizontal();
+                        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.C_FashionShowArrow), ResourceManager.Get(CanvasLabel.C_FashionShowButton));
+
+                        ResourceManager.AddButtonEventOnetime
+                        (
+                            CanvasLabel.C_FashionShowButton,
+                            () =>
+                            {
+                                EndClickFashionShowBtn();
+                            }
+                        );
+                    }
+                );
+            }
+        );
+    }
+
+    public static void ShowHomePageDesc()
+    {
+        ResourceManager.SetActive(CanvasLabel.Pi_Tutorial, true);
+        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBK, true);
+        ResourceManager.SetActive(CanvasLabel.Pi_HomePageTipBtn, true);
+        LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.Pi_HomePageTipBK));
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.Pi_FashionShowHomePanel).GetTweenVec();
+        tween.AddEventOnetime
+        (EventType.ForwardFinish, () =>
+        {
+            ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+            Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_HomePageArrow1),
+                ResourceManager.Get(CanvasLabel.Pi_HomePageArrow0), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
+            ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
+            ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
+
+            ResourceManager.AddButtonEventOnetime(CanvasLabel.Pi_HomePageTipBtn, EndHomePageDesc);
+        });
+    }
+
+    public static void ClickMineTabButton()
+    {
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InDestination = true;
+
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_MineTabButtonArrow), ResourceManager.Get(CanvasLabel.Pi_MineTabButton));
+
+        ResourceManager.PushButtonEventOnetime
+        (
+            CanvasLabel.Pi_MineTabButton,
+            () =>
+            {
+                EndClickMineTabButton();
+            }
+        );
+    }
+
+    public static void ShowLeaveDesc()
+    {
+        ResourceManager.SetActive(CanvasLabel.Pi_LeaveTipBK, true);
+        LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.Pi_LeaveTipBK));
+        //Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.P_Close), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_ShareArrow), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
+
+        ResourceManager.AddButtonEventOnetime(CanvasLabel.Pi_Share, EndLeaveDesc);
+    }
+
+    public static void ShowCloseDesc()
+    {
+        ResourceManager.SetActive(CanvasLabel.P_Tutorial, true);
+        ResourceManager.SetActive(CanvasLabel.P_CloseTipBtn, true);
+        ResourceManager.SetActive(CanvasLabel.P_CloseTipBK, true);
+
+        DelayCall.Call
+        (
+            0.5f,
+            () =>
+            {
+                LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.P_CloseTipBK));
+
+                ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+                Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.P_CloseArrow0), ResourceManager.Get(CanvasLabel.P_CloseArrow1), ResourceManager.Get(CanvasLabel.Pi_ShareBg));
+                ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
+                ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
+            }
+        );
+
+        ResourceManager.AddButtonEventOnetime(CanvasLabel.P_CloseTipBtn, EndCloseDesc);
+    }
+
+    public static void ClickShareButton()
+    {
+        ResourceManager.Get(CanvasLabel.P_Tutorial).SetAsLastSibling();
+
+        ResourceManager.SetActive(CanvasLabel.P_Tutorial, true);
+        ResourceManager.SetActive(CanvasLabel.P_CreateTipBK, true);
+        DelayCall.Call(0.5f, () => LayoutRebuilder.ForceRebuildLayoutImmediate(ResourceManager.Get<RectTransform>(CanvasLabel.P_CreateTipBK)));
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        Tutorial.HightScreen(ResourceManager.Get(CanvasLabel.Pi_LeaveTipBK), ResourceManager.Get(CanvasLabel.P_FashionShowButton));
+
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().Pause();
+        ResourceManager.Get(CanvasLabel.N_Mask).GetTweenGra().InOrigin = true;
+
+        ResourceManager.AddButtonEventOnetime
+        (
+            CanvasLabel.P_FashionShowButton,
+            () =>
+            {
+                EndFashionShowTutorial();
+            }
+        );
+    }
+
+
+
+    public static void EndChangeMouseTutorial()
+    {
+        ResourceManager.Get(CanvasLabel.Canvas).TweenBacCG();
+        PlayerManager.Player.onClick -= EndChangeMouseTutorial;
+        changeMouseTutorial = false;
+        Tutorial.HightDisable();
+    }
+
+    public static void BeginChangeMouseTutorial()
+    {
+        UIManager.BlockOfflinePanel();
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+        if (tweenRoot.InDestination)
+        {
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+
+            tween.AddEventOnetime
+            (
+                EventType.BackwardFinish,
+                () =>
+                {
+                    ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+
+                    tween = ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.BackwardFinish,
+                        () =>
+                        {
+                            ClickPlayer();
+                        }
+                    );
+                }
+            );
+        }
+        else
+        {
+            ClickPlayer();
+        }
+    }
+
+    public static void ClickPlayer()
+    {
+        SceneMask.inst.SetActive(true);
+        Tutorial.HightScene(0.1f, 0.22f, PlayerManager.Player.transform, PlayerManager.Player.ChildDic["HighLightPos"]);
+        ResourceManager.Get(CanvasLabel.Canvas).TweenForCG();
+        PlayerManager.Player.onClick += EndChangeMouseTutorial;
+    }
 }

+ 3918 - 3910
Assets/Script/Manage/UIManager.cs

@@ -1,3911 +1,3919 @@
-using LitJson;
-
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.Events;
-using UnityEngine.EventSystems;
-
-using System;
-using System.Xml;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-using repeatCallUtility;
-using Sfs2X.Entities.Data;
-using Random = UnityEngine.Random;
-
-public class UIManager : Regist
-{
-    #region Config
-
-    public static bool Initd;
-
-    private static int MaxSkillIconForIncomeDetailPanel = 4;
-    private static int MaxSkillDisplayAmt = 2;
-    private static int MaxAbilityDisplayAmt = 3;
-    private static int MinigameDisplayCoinAwardRatio = 10;
-    private static int MinigameDisplayDiamondAward = 10;
-
-    public static Transform Canvas;
-    public static Transform Camera;
-    public static Transform EventSystem;
-    public static Coroutine StopPlayCreditsRoutine;
-
-    public static UIManager Instance;
-
-    #endregion
-
-
-    public static void Init(bool debugMode)
-    {
-        if (Initd)
-        {
-            return;
-        }
-
-        if (Bundle.UI == null && !debugMode)
-        {
-            return;
-        }
-
-        Transform tra = new GameObject(ResourceLabel.UI).transform;
-
-        tra.parent = Instance.transform;
-
-        Canvas = ResourceManager.Get(ResourceLabel.Canvas, Folder.UI, true, tra, false, ObjType.Canvas);
-        Camera = ResourceManager.Get(ResourceLabel.MainCamera, Folder.UI, true, tra, false, ObjType.MainCamera);
-        EventSystem = ResourceManager.Get(ResourceLabel.EventSystem, Folder.UI, false, tra, false, ObjType.EventSystem);
-
-        ResourceManager.SetActive(CanvasLabel.C_Main, true);
-        ResourceManager.SetActive(CanvasLabel.U_LoadingPanel, true);
-
-        #region WarningText
-
-        if (Initializer.Instance.DebugMode == false)
-        {
-            XmlDocument document = new XmlDocument();
-            TextAsset textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultEnglish);
-            document.LoadXml(textAsset.text);
-            Language.AddLanguageDocument(CurrentLanguage.English, document);
-
-            document = new XmlDocument();
-            textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultChineseSimplified);
-            document.LoadXml(textAsset.text);
-            Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
-
-            document = new XmlDocument();
-            textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultChineseTraditional);
-            document.LoadXml(textAsset.text);
-            Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
-
-            Initializer.SetWarningText();
-        }
-
-        #endregion
-
-        #region 
-
-        ResourceManager.Get(CanvasLabel.K_Bubble).AddScript<Bubble>();
-
-        #endregion
-
-        Initd = true;
-    }
-
-
-    public override bool InitAtOnce()
-    {
-        if (base.InitAtOnce())
-        {
-            return true;
-        }
-
-        Instance = this;
-
-        return false;
-    }
-
-
-    public override void FirstInit()
-    {
-        Instance = this;
-
-        #region B
-
-        ResourceManager.SetSprite(CanvasLabel.Ba_Icon, Lib.BigGoldSprite);
-        ResourceManager.SetSprite(CanvasLabel.Bb_IconB, Lib.BigGoldSprite);
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ba_Lab), new MulLanStr(LanguageLabel.UI__Ba_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ba_ConfirmLab), new MulLanStr(LanguageLabel.UI__Ba_ConfirmLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_Title), new MulLanStr(LanguageLabel.UI__Bb_Title));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_GetLab), new MulLanStr(LanguageLabel.UI__Bb_GetLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bb_ConfirmLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bc_Lab), new MulLanStr(LanguageLabel.UI__Bc_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bc_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bc_ConfirmLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bd_GetLab), new MulLanStr(LanguageLabel.UI__Bd_GetLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bd_Title), new MulLanStr(LanguageLabel.UI__Bd_Title));
-
-        #region B_SignIn
-
-        TweenRoot tween = ResourceManager.Get(CanvasLabel.B_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Group0).TweenBacCG();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Group0).TweenForCG();
-            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
-        };
-
-        #endregion
-
-        #region B_SignIn0
-
-        ResourceManager.Get(CanvasLabel.B_SignIn0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-
-        #region Ba_Notice
-
-        ResourceManager.Get(CanvasLabel.Ba_Notice).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Ba_Notice0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Ba_Confirm
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ba_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.GetCurrent);
-
-                ResourceManager.Get(CanvasLabel.Ba_Notice).TweenBacCG();
-
-                Manager.OfflineFlag = false;
-
-                if (!SignManager.ShowPanels())
-                {
-                    ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
-                }
-            }
-        );
-
-        #endregion
-
-
-        #region Bb_Get
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Bb_Get,
-            () =>
-            {
-                SignManager.GetSignAward();
-            }
-        );
-
-        #endregion
-
-        #region Bb_SignIn
-
-        tween = ResourceManager.Get(CanvasLabel.Bb_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.SetActive(CanvasLabel.Bb_Get, true);
-            ResourceManager.SetActive(CanvasLabel.Bb_IconB, false);
-            ResourceManager.SetActive(CanvasLabel.Bb_IconA, false);
-            ResourceManager.SetActive(CanvasLabel.Bb_Rotate, false);
-            ResourceManager.SetActive(CanvasLabel.Bb_Confirm, false);
-        };
-
-        #endregion
-
-        #region Bb_Confirm
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Bb_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.Bb_SignIn).TweenBacCG();
-
-                SignManager.ShowPanels();
-            }
-        );
-
-        #endregion
-
-
-        #region Bc_Lottery
-
-        ResourceManager.Get(CanvasLabel.Bc_Lab).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Bc_Lottery).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Bc_Confirm).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.Get(CanvasLabel.Bc_LotteryItem1).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Bc_LotteryItem2).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Bc_LotteryItem3).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
-
-        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK12).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-        tween.StartForward();
-
-        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK22).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-        tween.StartForward();
-
-        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK32).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-        tween.StartForward();
-
-        ResourceManager.SetButtonEvent(CanvasLabel.Bc_Confirm, Lottery.EndAnimation);
-
-        #endregion
-
-
-        #region Bd_Get
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Bd_Get,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                int childCount = ResourceManager.Get(CanvasLabel.Bd_Grid).childCount;
-                for (int i = 0; i < childCount; i++)
-                {
-                    ResourceManager.Save(ResourceManager.Get(CanvasLabel.Bd_Grid).GetChild(0));
-                }
-
-                if (HttpManager.MailRewardList.Count == 0 && HttpManager.BroadcastMailRewardList.Count == 0)
-                {
-                    ResourceManager.Get(CanvasLabel.Bd_Mail0).TweenBacCG();
-                }
-
-                if (!SignManager.ShowPanels())
-                {
-                    ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
-                }
-            }
-        );
-
-        #endregion
-
-        #region Bd_Mail0
-
-        TweenRoot tweenRoot9 = ResourceManager.Get(CanvasLabel.Bd_Mail0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tweenRoot9.OnBackwardFinish = () =>
-        {
-            for (int i = 0; i < ResourceManager.Get(CanvasLabel.Bd_Grid).childCount; i++)
-            {
-                ResourceManager.Save(ResourceManager.Get(CanvasLabel.Bd_Grid).GetChild(i--));
-            }
-        };
-
-        #endregion
-
-        #endregion
-
-        #region C
-
-        ResourceManager.SetSprite(CanvasLabel.C_Coin, ResourceManager.LoadSprite(ResourceLabel.Gold, Folder.Atlas));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_MiniGameLab), new MulLanStr(LanguageLabel.UI__C_MiniGameLab));
-
-        #region C_Main
-
-        ResourceManager.Get(CanvasLabel.C_Main).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_Main2
-
-        ResourceManager.Get(CanvasLabel.C_Main2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_Group
-
-        ResourceManager.Get(CanvasLabel.C_Group).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.Get(CanvasLabel.C_Group0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_Setting
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_Setting,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.L_Setting).TweenForCG();
-            }
-        );
-
-        #endregion
-
-        #region C_Achieve
-
-        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Achieve), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Achieve,
-            () =>
-            {
-                AchieveManager.OpenAchievePanel();
-            }
-        );
-
-        #endregion
-
-        #region C_Manage
-
-        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Manage), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Manage,
-            () =>
-            {
-                OpenManagePanel();
-            }
-        );
-
-        #endregion
-
-        #region C_MiniGame
-
-        Vector3 big = ResourceManager.Get<RectTransform>(CanvasLabel.C_MiniGame).sizeDelta;
-        Vector3 small = big*0.5f;
-
-        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenRect(big, small, 1f, true, true, Curve.EaseOutQuad, true);
-
-        tweenRoot.OnForwardStart = () =>
-        {
-            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
-
-            tweenOutline.PingPong = false;
-            tweenOutline.StartBackward();
-        };
-
-        tweenRoot.OnForwardFinish = () =>
-        {
-            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
-
-            tweenOutline.Target.enabled = false;
-
-            //ResourceManager.Get<Button>(ObjectLabel.C_MiniGame).interactable = false;
-        };
-
-        tweenRoot.OnBackwardFinish = () =>
-        {
-            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
-
-            tweenOutline.Resume();
-            tweenOutline.StartForward();
-
-            tweenOutline.PingPong = true;
-            tweenOutline.Target.enabled = true;
-
-            LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_MiniGameLab), new MulLanStr(LanguageLabel.UI__C_MiniGameLab));
-
-            //ResourceManager.Get<Button>(ObjectLabel.C_MiniGame).interactable = true;
-        };
-
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenOutline(0, 180/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tweenRoot.PingPong = true;
-
-        tweenRoot.StartBackward();
-
-
-        ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_MiniGame,
-            () =>
-            {
-                if (Manager.MinigameCDTimer <= 0)
-                {
-                    EnterMinigamePanelManager.TryOpenPanel();
-                }
-                else
-                {
-                    CDMinigamePanelManager.OpenPanel();
-                    AudioManager.PlayClip(AudioLabel.Bubble);
-                }
-            }
-        );
-
-        #endregion
-
-        #region C_IncomeLab
-
-        ResourceManager.Get(CanvasLabel.C_IncomeLab).CreateTweenGra(1, 0, 2, true, false, Curve.EaseOutQuad);
-
-        ResourceManager.Get(CanvasLabel.C_IncomeLab).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.C_Pos).position, 2, false, true, false, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_DressRoom
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_DressRoom,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                if (Manager.GardenLevel < 13)
-                {
-                    Toast.Show(1.5f, Language.GetStr(LanguageLabel.UI__C_DressRoom));
-                }
-                else
-                {
-                    ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG().Duration = 0.5f;
-
-                    PlayerManager.Player.EnterDressRoom();
-                }
-            }
-        );
-
-        #endregion
-
-
-        #region C_AddFriendButton
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_AddFriendButton,
-            () =>
-            {
-                HttpManager.ApplyBuddy
-                (
-                    VisitManager.VisiteeSerialNumber,
-                    () =>
-                    {
-                        Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_SendApplySucceed));
-                        ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
-                    },
-                    () =>
-                    {
-                        Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_ConnectError));
-                    }
-                );
-            }
-        );
-
-        #endregion
-
-        #region C_Visit
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Visit,
-            () =>
-            {
-                VisitManager.Visit(ConfigSource.Random);
-            }
-        );
-
-        #endregion
-
-        #region C_Praise
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_Praise,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                SocialManager.Praise();
-            }
-        );
-
-        #endregion
-
-        #region C_Notify
-
-        ResourceManager.Get(CanvasLabel.C_Notify).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Notify,
-            () =>
-            {
-                AnnounceManager.ShowAnnouncePanel();
-            }
-        );
-
-        #endregion
-
-        #region C_Rank
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Rank,
-            () =>
-            {
-                SocialManager.OpenRankPanel();
-            }
-        );
-
-        #endregion
-
-        #region C_Comment
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_Comment,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                SocialManager.OpenCommentPanel();
-            }
-        );
-
-        #endregion
-
-        #region C_Return
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_Return,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.C_Visit, false);
-                ResourceManager.SetActive(CanvasLabel.C_Return, false);
-                ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
-
-                tween = ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG();
-
-                tween.Duration = 0.5f;
-                tween.StartBackward();
-
-                tween.AddEventOnetime
-                (
-                    EventType.BackwardFinish,
-                    () =>
-                    {
-                        VisitManager.StartExitVisiteeGarden();
-                        VisitManager.OnStartExitVisiteeGarden();
-                    }
-                );
-
-                AudioManager.PlayClip(AudioLabel.Bubble);
-            }
-        );
-
-        #endregion
-
-        #region C_EnterPlazaRoom
-
-        LanguageManager.OnLanguageChange += OnLanguageChange;
-        OnLanguageChange(CurrentLanguage.Default, LanguageManager.CurrentLanguage);
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_EnterPlazaRoom,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                PlazaRoomManager.OpenJoinRoomPanel();
-            }
-        );
-
-        #endregion
-
-        #region C_NickNameBK
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.C_NickNameBK,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-                NickNameManager.ShowNickNameSettingPanel();
-            }
-        );
-
-        #endregion
-
-        #region C_CommentParent
-
-        ResourceManager.Get(CanvasLabel.C_CommentParent).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region C_RightPanel
-
-        ResourceManager.Get(CanvasLabel.C_RightSidePanel).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.C_RightSidePanelPosition).position, 0.25f, false, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).CreateTweenCG(0, 0.25f, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_OpenSidePanelButton, () =>
-            {
-                AudioManager.PlayClip(ResourceLabel.BtnClip);
-                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenBacVec();
-                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenBacCG();
-                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
-                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.C_CloseSidePanelButton, () =>
-            {
-                AudioManager.PlayClip(ResourceLabel.BtnClip);
-                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenForVec();
-                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenForCG();
-                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
-                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, true);
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region D
-
-        ResourceManager.SetText(CanvasLabel.D_ScoreLab);
-        ResourceManager.SetText(CanvasLabel.D_BeginLab, Language.GetStr(LanguageLabel.UI__D_BeginLab0));
-        ResourceManager.SetText(CanvasLabel.D_StatusLab, Language.GetStr(LanguageLabel.UI__D_StatusLab0));
-
-        ResourceManager.SetSprite(CanvasLabel.D_Rip2, ResourceManager.LoadSprite(ResourceLabel.Rip, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.D_Water2, ResourceManager.LoadSprite(ResourceLabel.Water, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.D_Fertilize2, ResourceManager.LoadSprite(ResourceLabel.Fertilize, Folder.Scene));
-
-        ResourceManager.SetSprite(CanvasLabel.Da_Coin, ResourceManager.LoadSprite(ResourceLabel.Gold, Folder.Atlas));
-        ResourceManager.SetSprite(CanvasLabel.Da_Star1, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.Da_Star2, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.Da_Star3, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescA), new MulLanStr(LanguageLabel.UI__D_DescA));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescB), new MulLanStr(LanguageLabel.UI__D_DescB));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescC), new MulLanStr(LanguageLabel.UI__D_DescC));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_FindMissingGameDesc), new MulLanStr(LanguageLabel.UI__D_FindMissingGameDesc));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_Lab), new MulLanStr(LanguageLabel.UI__Da_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_QuitLab), new MulLanStr(LanguageLabel.UI__Da_QuitLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_ScoreTit), new MulLanStr(LanguageLabel.UI__Da_ScoreTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_CancelLab), new MulLanStr(LanguageLabel.UI__Da_CancelLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_GetAwardLab), new MulLanStr(LanguageLabel.UI__Da_GetAwardLab));
-
-        #region D_Rip
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Rip2,
-            () =>
-            {
-                MiniGameManager.OnPunchGameClick(OpType.Rip);
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.D_Rip2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.D_Rip2).TweenBacScale();
-        };
-
-        #endregion
-
-        #region D_Quit
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Quit,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                MiniGameManager.Pause = true;
-
-                ResourceManager.Get(CanvasLabel.Da_Info).TweenForCG();
-
-                ResourceManager.Get(CanvasLabel.Da_CoinGroup).GetTweenScale().InDestination = true;
-                ResourceManager.Get(CanvasLabel.Da_DiamondGroup).GetTweenScale().InDestination = true;
-
-                ResourceManager.SetText(CanvasLabel.Da_Tit, Language.GetStr(LanguageLabel.UI__Da_Tit0));
-                ResourceManager.SetText(CanvasLabel.Da_CoinLab, string.Format("{0}+", MinigameDisplayCoinAwardRatio*Manager.GardenLevel));
-                ResourceManager.SetText(CanvasLabel.Da_DiamondLab, string.Format("{0}+", MinigameDisplayDiamondAward));
-
-                ResourceManager.SetActive(CanvasLabel.Da_Lab, true);
-                ResourceManager.SetActive(CanvasLabel.Da_Quit, true);
-                ResourceManager.SetActive(CanvasLabel.Da_Cancel, true);
-                ResourceManager.SetActive(CanvasLabel.Da_CoinLab, true);
-                ResourceManager.SetActive(CanvasLabel.Da_DiamondLab, true);
-
-                ResourceManager.SetActive(CanvasLabel.Da_HGroup1, false);
-                ResourceManager.SetActive(CanvasLabel.Da_ScoreTit, false);
-                ResourceManager.SetActive(CanvasLabel.Da_GetAward, false);
-                ResourceManager.SetActive(CanvasLabel.Da_FlowerGroup, false);
-                ResourceManager.SetActive(CanvasLabel.Da_DiamondGroup, true);
-
-                ResourceManager.Get<Text>(CanvasLabel.Da_CoinLab).Resize(true, false);
-                ResourceManager.Get<Text>(CanvasLabel.Da_DiamondLab).Resize(true, false);
-
-                ResourceManager.Get<ContentSizeFitter>(CanvasLabel.Da_CoinGroup).enabled = true;
-                ResourceManager.Get<ContentSizeFitter>(CanvasLabel.Da_DiamondGroup).enabled = true;
-
-                if (!MinigameAward.HaveNewFlowerFlag)
-                {
-                    ResourceManager.Get(CanvasLabel.Da_FlowerGroup).GetTweenScale().InDestination = true;
-
-                    FlowerInfo flowerInfo = GardenManager.GetFlowerInfo(MinigameAward.UnlockFlowerID);
-
-                    ResourceManager.SetActive(CanvasLabel.Da_Flower, true);
-
-                    ResourceManager.Get<Image>(CanvasLabel.Da_FlowerIcon).sprite = flowerInfo.Icon;
-                    ResourceManager.Get<Image>(CanvasLabel.Da_FlowerIcon).Resize(true, 0.25f, 0.25f);
-
-                    ResourceManager.SetText(CanvasLabel.Da_FlowerLab, Language.GetStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.FlowerName, flowerInfo.FullID)));
-
-                    Auxiliary.Instance.DelayCall
-                    (
-                        () =>
-                        {
-                            ResourceManager.Get<Text>(CanvasLabel.Da_FlowerLab).SetLayoutDirty();
-                        },
-                        2
-                    );
-                }
-            }
-        );
-
-        #endregion
-
-        #region D_Begin
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Begin,
-            () =>
-            {
-                MiniGameManager.GamePrepare();
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-            }
-        );
-
-        #endregion
-
-        #region D_Water
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Water2,
-            () =>
-            {
-                MiniGameManager.OnPunchGameClick(OpType.Water);
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.D_Water2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.D_Water2).TweenBacScale();
-        };
-
-        #endregion
-
-        #region D_Fertilize
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.D_Fertilize2,
-
-            () =>
-            {
-                MiniGameManager.OnPunchGameClick(OpType.Fertilize);
-            }
-        );
-
-        tween = ResourceManager.Get(CanvasLabel.D_Fertilize2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.D_Fertilize2).TweenBacScale();
-        };
-
-        #endregion
-
-        #region D_TimerIcon
-
-        ResourceManager.Get<Image>(CanvasLabel.D_TimerIcon).material = ResourceManager.Load<Material>(ResourceLabel.TimerMat, Folder.UI);
-
-        #endregion
-
-        #region D_MiniGame
-
-        tween = ResourceManager.Get(CanvasLabel.D_MiniGame).CreateTweenCG(0, 1, 0.5f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-
-            AudioManager.GardenThemeAudio.TweenBacAudio();
-
-            ResourceManager.SetText(CanvasLabel.D_ScoreLab);
-            ResourceManager.SetText(CanvasLabel.D_BeginLab, Language.GetStr(LanguageLabel.UI__D_BeginLab0));
-            ResourceManager.SetText(CanvasLabel.D_StatusLab, Language.GetStr(LanguageLabel.UI__D_StatusLab0));
-
-            GardenManager.InMinigameFlag = false;
-        };
-
-        tween.OnForwardFinish += () =>
-        {
-            AudioManager.MinigameAudio.TweenForAudio();
-
-            ResourceManager.SetActive(GardenLabel.GardenPivot, false);
-
-            GardenManager.RetrieveAllElf();
-            IAPManager.RetrieveADChest();
-        };
-
-        tween.OnBackwardStart += () =>
-        {
-            AudioManager.MinigameAudio.TweenBacAudio();
-
-            ResourceManager.SetActive(GardenLabel.GardenPivot, true);
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
-
-            AudioManager.GardenThemeAudio.TweenForAudio();
-
-            GardenManager.InMinigameFlag = true;
-
-            #region PunchGame
-
-            if (MiniGameManager.miniGameType == MiniGameType.Punch)
-            {
-                for (int i = 0; i < MiniGameManager.PunchGameOperateList.Count; i++)
-                {
-                    MiniGameManager.PunchGameOperateList[i].RetrieveFlower();
-
-                    MiniGameManager.PunchGameOperateList.RemoveAt(i--);
-                }
-
-                for (int i = 0; i < MiniGameManager.MinigameIdleFlowerList.Count; i++)
-                {
-                    MiniGameManager.MinigameIdleFlowerList[i].RetrieveFlower();
-
-                    MiniGameManager.MinigameIdleFlowerList.RemoveAt(i--);
-                }
-            }
-
-            #endregion
-
-            #region MemoryGame
-
-            if (MiniGameManager.miniGameType == MiniGameType.Memory)
-            {
-                for (int i = 0; i < MiniGameManager.MemoryGameFadeList.Count; i++)
-                {
-                    MiniGameManager.MemoryGameFadeList[i].FlowerIcon.GetTweenSr().InOrigin = true;
-
-                    MiniGameManager.MemoryGameFadeList[i].RetrieveFlower();
-
-                    MiniGameManager.MemoryGameFadeList.RemoveAt(i--);
-                }
-
-                for (int i = 0; i < MiniGameManager.MinigameIdleFlowerList.Count; i++)
-                {
-                    MiniGameManager.MinigameIdleFlowerList[i].RetrieveFlower();
-
-                    MiniGameManager.MinigameIdleFlowerList.RemoveAt(i--);
-                }
-            }
-
-            #endregion
-
-            #region FindSoloGame 
-
-            if (MiniGameManager.miniGameType == MiniGameType.FindSolo)
-            {
-                MiniGameManager.MinigameIdleFlowerList.ForEach
-                (
-                    flower =>
-                    {
-                        flower.FlowerIcon.GetTweenSr().InOrigin = true;
-
-                        flower.RetrieveFlower();
-                    },
-                    true
-                );
-            }
-
-            #endregion
-
-            #region FindMissingGame 
-
-            if (MiniGameManager.miniGameType == MiniGameType.FindMissing)
-            {
-                MiniGameManager.MinigameIdleFlowerList.ForEach
-                (
-                    flower =>
-                    {
-                        flower.FlowerIcon.GetTweenSr().InOrigin = true;
-
-                        flower.RetrieveFlower();
-                    },
-                    true
-                );
-            }
-
-            #endregion
-        };
-
-        #endregion
-
-        #region D_PrepareLab
-
-        Text text = ResourceManager.Get<Text>(CanvasLabel.D_PrepareLab);
-
-        ResourceManager.Get(CanvasLabel.D_PrepareLab).CreateStreamScale
-        (
-            new List<float>() {0.5f, 0, 0.5f, 0, 0.5f, 0, 0.5f},
-            new List<float>() {0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.125f},
-            new List<VecPair>() {new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(0, 0, 0, 1, 1, 1), new VecPair(1, 1, 1, 1.5f, 0, 1)},
-            false,
-            false,
-            Curve.EaseOutQuad,
-            false,
-            new List<UnityAction>()
-            {
-                () =>
-                {
-                    text.text = "3";
-                    AudioManager.PlayClip(AudioLabel.Bubble);
-                },
-                () => { },
-                () =>
-                {
-                    text.text = "2";
-                    ;
-                    AudioManager.PlayClip(AudioLabel.Bubble);
-                },
-                () => { },
-                () =>
-                {
-                    text.text = "1";
-                    ;
-                    AudioManager.PlayClip(AudioLabel.Bubble);
-                },
-                () => { },
-                () =>
-                {
-                    text.text = Language.GetStr(LanguageLabel.UI__D_PrepareLab);
-                    AudioManager.PlayClip(AudioLabel.GetCurrent);
-                },
-                () => { },
-            }
-        );
-
-        #endregion
-
-
-        #region Da_Star
-
-        ResourceManager.Get(CanvasLabel.Da_Star1).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Da_Star2).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Da_Star3).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_Info
-
-        ResourceManager.Get(CanvasLabel.Da_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_Quit
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Da_Quit,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
-                ResourceManager.Get(GardenLabel.Minigame).TweenBacVec();
-                ResourceManager.Get(CanvasLabel.D_MiniGame).TweenBacCG();
-
-                MiniGameManager.GameEnd();
-            }
-        );
-
-        #endregion
-
-        #region Da_Score
-
-        ResourceManager.Get(CanvasLabel.Da_ScoreTit).CreateTweenFont(1, 25, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_Cancel
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Da_Cancel,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
-
-                MiniGameManager.Pause = false;
-            }
-        );
-
-        #endregion
-
-        #region Da_GetAward
-
-        ResourceManager.Get(CanvasLabel.Da_GetAward).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Da_GetAward,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.GetCurrent);
-
-                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
-                ResourceManager.Get(GardenLabel.Minigame).TweenBacVec();
-                ResourceManager.Get(CanvasLabel.D_MiniGame).TweenBacCG();
-
-                InfoBoxManager.GardenInfoBox.Display(MinigameAward.DisplayContent, 10f, Color.white, Lib.Atlas);
-            }
-        );
-
-        #endregion
-
-        #region Da_CoinGroup
-
-        ResourceManager.Get(CanvasLabel.Da_CoinGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_FlowerGroup
-
-        ResourceManager.Get(CanvasLabel.Da_FlowerGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Da_DiamondGroup
-
-        ResourceManager.Get(CanvasLabel.Da_DiamondGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-
-        #region D_Mask
-
-        ResourceManager.Get(CanvasLabel.D_Mask).CreateTweenGra(0, 180/255f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region D_FlowerBtn
-
-        #region MemoryGame
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon1).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root0 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root0.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon2).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root1 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root1.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon3).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root2 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root2.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon4).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root3 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root3.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon5).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root4 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root4.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon6).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root8 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root8.StartBackward();
-        };
-
-
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn1, () => { MiniGameManager.OnMemoryGameClick(0, 0); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn2, () => { MiniGameManager.OnMemoryGameClick(1, 1); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn3, () => { MiniGameManager.OnMemoryGameClick(2, 3); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn4, () => { MiniGameManager.OnMemoryGameClick(3, 4); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn5, () => { MiniGameManager.OnMemoryGameClick(4, 6); });
-        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn6, () => { MiniGameManager.OnMemoryGameClick(5, 7); });
-
-        #endregion
-
-        #region FindSoloGame
-
-        ResourceManager.Get(CanvasLabel.D_FlowerBtn7).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.D_FlowerBtn8).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.D_FlowerBtn9).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon7).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root5 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root5.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon8).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root6 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root6.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon9).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root7 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root7.StartBackward();
-        };
-
-        #endregion
-
-        #region FindMissingGame
-
-        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton1).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon0).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root9 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root9.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon1).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root10 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root10.StartBackward();
-        };
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon2).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        var root11 = tweenRoot;
-        tweenRoot.OnForwardFinish = () =>
-        {
-            root11.StartBackward();
-        };
-
-        #endregion
-
-        #endregion
-
-        #endregion
-
-        #region E
-
-        #region E_Show
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.E_ShowBtn,
-            () =>
-            {
-                if (ResourceManager.Get(CanvasLabel.E_Group).gameObject.activeSelf)
-                {
-                    ResourceManager.SetActive(CanvasLabel.E_Group, false);
-                    ResourceManager.SetActive(CanvasLabel.Ea_Central, false);
-
-                    ResourceManager.SetText(CanvasLabel.E_ShowLab, "显示");
-                }
-                else
-                {
-                    ResourceManager.SetActive(CanvasLabel.E_Group, true);
-
-                    ResourceManager.SetText(CanvasLabel.E_ShowLab, "隐藏");
-                }
-            }
-        );
-
-        #endregion
-
-        #region E_CentralBtn
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.E_CentralBtn,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.Ea_Central, true);
-            }
-        );
-
-        #endregion
-
-
-        #region Ea_Free
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Free,
-            () =>
-            {
-                TutorialManager.PayExempt = true;
-            }
-        );
-
-        #endregion
-
-        #region Ea_Send
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Send,
-            () =>
-            {
-                HttpManager.UploadConfig();
-            }
-        );
-
-        #endregion
-
-        #region Ea_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Close,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.Ea_Central, false);
-            }
-        );
-
-        #endregion
-
-        #region Ea_Reset
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Reset,
-            () =>
-            {
-                ConfigManager.ResetConfigDocument();
-            }
-        );
-
-        #endregion
-
-        #region Ea_Unlock
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Unlock,
-            () =>
-            {
-                //ManaDebug.Log(ManaAudio.MusicTheme.isPlaying + " " + ManaAudio.MusicTheme.volume + " " + ManaAudio.MusicTheme.spatialBlend + " " + ManaAudio.MusicTheme.mute + " " + ManaAudio.MusicTheme.time);
-
-                GardenManager.UnlockSlot();
-            }
-        );
-
-        #endregion
-
-        #region Ea_Lottery
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Lottery,
-            () =>
-            {
-                SignManager.SignIndex = 7;
-                SignManager.LastSignTime = new DateTime(2017, 2, 3);
-
-                ResourceManager.Get(CanvasLabel.B_SignIn).TweenForCG();
-                ResourceManager.Get(CanvasLabel.Bb_SignIn).TweenForCG();
-            }
-        );
-
-        #endregion
-
-
-        #region Ea_Cool
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Cool,
-            () =>
-            {
-                Manager.MinigameCDTimer = 0;
-            }
-        );
-
-        #endregion
-
-        #region Ea_Score
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_Score,
-            () =>
-            {
-                MiniGameManager.Score = 1000;
-            }
-        );
-
-        #endregion
-
-        #region Ea_End
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_End,
-            () =>
-            {
-                MiniGameManager.GameTimer = 45;
-            }
-        );
-
-        #endregion
-
-
-        #region Ea_IncreaseFR
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_IncreaseFR,
-            () =>
-            {
-                Application.targetFrameRate += 1;
-            }
-        );
-
-        #endregion
-
-        #region Ea_DecreaseFR
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Ea_DecreaseFR,
-            () =>
-            {
-                Application.targetFrameRate -= 1;
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region F
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_ElfLab), new MulLanStr(LanguageLabel.UI__F_ElfLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_StoreLab), new MulLanStr(LanguageLabel.UI__F_StoreLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_MagicLab), new MulLanStr(LanguageLabel.UI__F_MagicLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_GardenLab), new MulLanStr(LanguageLabel.UI__F_GardenLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_Tit), new MulLanStr(LanguageLabel.UI__Fg_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_Lab), new MulLanStr(LanguageLabel.UI__Fg_Lab0));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_BtnLab), new MulLanStr(LanguageLabel.UI__Fg_BtnLab));
-
-        TextPlus textPlus = ResourceManager.Get<TextPlus>(CanvasLabel.Fe_BtnLab);
-        textPlus.MaxLineHeight = 16.71891f;
-
-        ResourceManager.Get(CanvasLabel.F_TipBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #region F_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
-            }
-        );
-
-        #endregion
-
-        #region F_Flower
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Flower,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.G_Flower).TweenForCG();
-            }
-        );
-
-        #endregion
-
-        #region F_TabBtn
-
-        ResourceManager.Get(CanvasLabel.F_Elf).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.F_Store).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.F_Magic).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.F_Garden).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Elf,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.F_Elf).TweenForScale();
-                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.F_Elf).SetAsLastSibling();
-                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Fd_Elf, true);
-                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
-                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
-                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
-
-                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, true);
-                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
-
-                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Store,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Store).TweenForScale();
-                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.F_Store).SetAsLastSibling();
-                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
-                ResourceManager.SetActive(CanvasLabel.Fc_Store, true);
-                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
-                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
-
-                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, true);
-                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
-
-                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Magic,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Magic).TweenForScale();
-                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.F_Magic).SetAsLastSibling();
-                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
-                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
-                ResourceManager.SetActive(CanvasLabel.Fb_Magic, true);
-                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
-
-                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, true);
-                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
-
-                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_Garden,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.F_Garden).TweenForScale();
-
-                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(2);
-                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.F_Garden).SetAsLastSibling();
-
-                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = false;
-
-                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
-                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
-                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
-                ResourceManager.SetActive(CanvasLabel.Fa_Garden, true);
-
-                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
-                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, true);
-
-                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, true);
-            }
-        );
-
-        #endregion
-
-        #region F_Manage
-
-        tween = ResourceManager.Get(CanvasLabel.F_Manage).CreateTweenGra(0, 180/255f, 0.5f, true, true, Curve.EaseOutQuad);
-
-        var tween1 = tween;
-        tween.OnForwardStart += () =>
-        {
-            tween1.Duration = 0.5f;
-        };
-
-        tween.OnBackwardStart += () =>
-        {
-            tween1.Duration = 0.25f;
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.F_Manage0).TweenBacVec();
-        };
-
-
-        tween = ResourceManager.Get(CanvasLabel.F_Manage0).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.F_PosTra).position, 0.5f, false, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-
-            ResourceManager.SetActive(CanvasLabel.F_Manage, true);
-        };
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.F_Manage).TweenForGra();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-
-            ResourceManager.SetActive(CanvasLabel.F_Manage, false);
-        };
-
-        #endregion
-
-        #region F_PersonBtn
-
-        List<Sprite> spriteList = new List<Sprite>();
-        foreach (var skill in Manager.SkillList)
-        {
-            if (spriteList.Contains(skill.Icon))
-            {
-                continue;
-            }
-            spriteList.Add(skill.Icon);
-        }
-        SpriteAsset.AddBundleSpriteInfo(spriteList.ToArray());
-
-        Sprite sprite;
-        if (Initializer.Instance.DebugMode)
-        {
-            Texture2D texture = ResourceManager.LoadSprite("4大技能1", Folder.Atlas2).texture;
-            sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
-        }
-        else
-        {
-            sprite = ResourceManager.LoadSprite(ResourceLabel.SkillAtlas, Folder.Atlas2);
-        }
-
-        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).Scale = 1.8f;
-        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).SetY = true;
-        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).Y = 0;
-        ResourceManager.Get<Image>(CanvasLabel.K_ImagePlus1).sprite = sprite;
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_PersonBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                Bubble.Show(Language.GetStr(LanguageLabel.UI__F_PersonBtn0), null, null, ResourceManager.LoadSprite("4大技能1", Folder.UI));
-                string content0 = Language.GetStr(LanguageLabel.UI__F_PersonBtn1);
-                string person = "";
-                Ability gardenAbility = Manager.SkillDictionary["Ability1"] as Ability;
-                float increasePerson = Manager.CurrentPerson - gardenAbility.NewPerson;
-                if (increasePerson > 0.001f)
-                {
-                    person = Auxiliary.ShrinkBigNumberStr(gardenAbility.NewPerson * 60) + "<color=#00ff00ff>+" + Auxiliary.ShrinkBigNumberStr(increasePerson*60) + "</color>";
-                }
-                if (Manager.ExtraPersonSourceSpritesName.Count > 0)
-                {
-                    StringBuilder stringBuilder = new StringBuilder();
-                    for (int i = 0; i < MaxSkillIconForIncomeDetailPanel; i++)
-                    {
-                        if (i < Manager.ExtraPersonSourceSpritesName.Count)
-                        {
-                            stringBuilder.Append(string.Format("<({0})>", Manager.ExtraPersonSourceSpritesName[i]));
-                        }
-                        if (i < MaxSkillIconForIncomeDetailPanel - 1)
-                        {
-                            stringBuilder.Append(" ");
-                        }
-                    }
-                    string content1 = Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, stringBuilder.ToString());
-                    if (Manager.ExtraPersonSourceSpritesName.Count > MaxSkillIconForIncomeDetailPanel)
-                    {
-                        Bubble.LinkButton.GetComponent<Text>().text = Language.GetStr(LanguageLabel.UI__F_LinkButton);
-                        Bubble.LinkButton.SetActive(true);
-                        Bubble.LinkButton.onClick.RemoveAllListeners();
-                        Bubble.LinkButton.onClick.AddListener
-                        (
-                            () =>
-                            {
-                                AudioManager.PlayClip(ResourceLabel.BubbleClip);
-                                AlertPanel.Show(Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, ""), Manager.ExtraPersonSourceSpritesName);
-                            }
-                        );
-                        content1 += "\u3000\u3000\u3000\u3000";
-                    }
-                    Bubble.Lab1.SetActive(true);
-                    Bubble.Lab1.text = content1;
-                }
-                content0 = content0.Replace(TransferLabel.Value, person);
-                Bubble.Lab2.text = content0;
-                Bubble.Lab2.SetActive(true);
-            }
-        );
-
-        #endregion
-
-        #region F_PersonLab
-
-        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.F_PersonLab), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-
-        #endregion
-
-        #region F_CoinPersonBtn
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.F_CoinPersonBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-
-                Bubble.Show(Language.GetStr(LanguageLabel.UI__F_CoinPersonBtn0), null, null, ResourceManager.LoadSprite("绿-免费金币", Folder.UI));
-                string content0 = Language.GetStr(LanguageLabel.UI__F_CoinPersonBtn1);
-                string coinPerson = "";
-                Ability gardenAbility = Manager.SkillDictionary["Ability1"] as Ability;
-                float increaseCoinPerson = Manager.CurrentCoinPerson - gardenAbility.NewCoinPerson;
-                if (increaseCoinPerson > 0.001f)
-                {
-                    coinPerson = Auxiliary.ShrinkBigNumberStr(gardenAbility.NewCoinPerson) + "<color=#00ff00ff>+" + Auxiliary.ShrinkBigNumberStr(increaseCoinPerson) + "</color>";
-                }
-                if (Manager.ExtraCoinPersonSourceSpritesName.Count > 0)
-                {
-                    StringBuilder stringBuilder = new StringBuilder();
-                    for (int i = 0; i < MaxSkillIconForIncomeDetailPanel; i++)
-                    {
-                        if (i < Manager.ExtraCoinPersonSourceSpritesName.Count)
-                        {
-                            stringBuilder.Append(string.Format("<({0})>", Manager.ExtraCoinPersonSourceSpritesName[i]));
-                        }
-                        if (i < MaxSkillIconForIncomeDetailPanel - 1)
-                        {
-                            stringBuilder.Append(" ");
-                        }
-                    }
-                    string content1 = Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, stringBuilder.ToString());
-                    if (Manager.ExtraCoinPersonSourceSpritesName.Count > MaxSkillIconForIncomeDetailPanel)
-                    {
-                        Bubble.LinkButton.GetComponent<Text>().text = Language.GetStr(LanguageLabel.UI__F_LinkButton);
-                        Bubble.LinkButton.SetActive(true);
-                        Bubble.LinkButton.onClick.RemoveAllListeners();
-                        Bubble.LinkButton.onClick.AddListener
-                        (
-                            () =>
-                            {
-                                AudioManager.PlayClip(ResourceLabel.BubbleClip);
-                                AlertPanel.Show(Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, ""), Manager.ExtraCoinPersonSourceSpritesName);
-                            }
-                        );
-                        content1 += "\u3000\u3000\u3000\u3000";
-                    }
-                    Bubble.Lab1.SetActive(true);
-                    Bubble.Lab1.text = content1;
-                }
-                content0 = content0.Replace(TransferLabel.Value, coinPerson);
-                Bubble.Lab2.text = content0;
-                Bubble.Lab2.SetActive(true);
-            }
-        );
-
-        #endregion
-
-        #region F_CoinPersonLab
-
-        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.F_CoinPersonLab), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
-
-        tween.PingPong = true;
-
-        #endregion
-
-
-        #region Fe_Info
-
-        ResourceManager.Get(CanvasLabel.Fe_Info).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Fe_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Fe_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-
-        #region Fg_Btn
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Fg_Btn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = false;
-
-                ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab1));
-
-                HttpManager.Login(LoginCallback);
-            }
-        );
-
-        #endregion
-
-        #region Fg_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Fg_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.Fg_Reconnect).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region Fg_Reconnect
-
-        tween = ResourceManager.Get(CanvasLabel.Fg_Reconnect).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab0));
-        };
-
-        #endregion
-
-        #endregion
-
-        #region G
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_Tit), new MulLanStr(LanguageLabel.UI__G_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_SpecialLab), new MulLanStr(LanguageLabel.UI__G_SpecialLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_RegularLab), new MulLanStr(LanguageLabel.UI__G_RegularLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_RetrieveLab), new MulLanStr(LanguageLabel.UI__G_RetrieveLab));
-
-        #region G_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.G_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.G_Flower).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region G_Flower
-
-        tween = ResourceManager.Get(CanvasLabel.G_Flower).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            AudioManager.PlayClip(AudioLabel.Bubble);
-
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-
-            if (GardenManager.TotalUnlockSpecialFlower == 0)
-            {
-                ResourceManager.SetActive(CanvasLabel.G_Special, false);
-            }
-        };
-
-        tween.OnBackwardStart += () =>
-        {
-            foreach (var kv in GardenManager.GetFlowerInfoDict())
-            {
-                //Debug.Log(kv.Value);
-                //Debug.Log(kv.Value.UIPartical);
-                //Debug.Log(kv.Value.UIPartical.Animator);
-                if (kv.Value.UIPartical.Animator == null)
-                {
-                    continue;
-                }
-                kv.Value.UIPartical.Animator.SetTrigger("Stop");
-            }
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
-        };
-
-        #endregion
-
-        #region G_Special
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.G_Special,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.SetActive(CanvasLabel.G_SpecialScrr, true);
-                ResourceManager.SetActive(CanvasLabel.G_RegularScrr, false);
-
-                ResourceManager.Get<Button>(CanvasLabel.G_Special).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.G_Regular).interactable = true;
-            }
-        );
-
-        #endregion
-
-        #region G_Regular
-
-        ResourceManager.Get(CanvasLabel.G_Regular).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.G_PosTraL).position, ResourceManager.Get(CanvasLabel.G_PosTraR).position, 0.25f, false, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.G_Regular,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.SetActive(CanvasLabel.G_SpecialScrr, false);
-                ResourceManager.SetActive(CanvasLabel.G_RegularScrr, true);
-
-                ResourceManager.Get<Button>(CanvasLabel.G_Special).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.G_Regular).interactable = false;
-            }
-        );
-
-        #endregion
-
-        #region G_Retrieve
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.G_Retrieve,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.G_Flower).TweenBacCG();
-
-                GardenManager.RetriveAllFlower();
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region H
-
-        #region H_Close
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.H_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.H_FlowerCard).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region H_FlowerCard
-
-        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.H_Icon1).Find(string.Format("{0}/{1}", CanvasLabel.H_UIFlashLight, CanvasLabel.H_UIFlash)).SetActive(false);
-            ResourceManager.Get(CanvasLabel.H_Icon1).Find(string.Format("{0}/{1}", CanvasLabel.H_UIFlashLight, CanvasLabel.H_UIParticleSystem)).SetActive(false);
-
-            if (GardenManager.FlowerCardMaterialTween != null)
-                GardenManager.FlowerCardMaterialTween.Pause();
-        };
-
-        #endregion
-
-        #region H_Icon2
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.H_Icon2,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                GardenManager.PlantFlower(GardenManager.SelectFlowerInfo);
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region I
-
-        TweenCG tweenCG = ResourceManager.Get(CanvasLabel.I_BlackMask).CreateTweenCG(1, 0, 1f, true, false, Curve.EaseOutQuad);
-        tweenCG.CG = false;
-
-        #endregion
-
-        #region J
-
-        ResourceManager.Get(CanvasLabel.C_Info).CreateTweenCG(0, 0.9f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region L
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicOnLab), new MulLanStr(LanguageLabel.UI__L_On));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicOffLab), new MulLanStr(LanguageLabel.UI__L_Off));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioOnLab), new MulLanStr(LanguageLabel.UI__L_On));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioOffLab), new MulLanStr(LanguageLabel.UI__L_Off));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_Tit), new MulLanStr(LanguageLabel.UI__L_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_UserTit), new MulLanStr(LanguageLabel.UI__L_UserTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioTit), new MulLanStr(LanguageLabel.UI__L_AudioTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_SupportTit), new MulLanStr(LanguageLabel.UI__L_SupportTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_LanguageTit), new MulLanStr(LanguageLabel.UI__L_LanguageTit));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioLab), new MulLanStr(LanguageLabel.UI__L_AudioLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicLab), new MulLanStr(LanguageLabel.UI__L_MusicLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ReportLab), new MulLanStr(LanguageLabel.UI__L_ReportLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ChangeLab), new MulLanStr(LanguageLabel.UI__L_ChangeLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_CreditsLab), new MulLanStr(LanguageLabel.UI__L_CreditsLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ShareLab), new MulLanStr(LanguageLabel.UI__L_ShareLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ConfirmLab), new MulLanStr(LanguageLabel.UI__L_ConfirmLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ResetLab), new MulLanStr(LanguageLabel.UI__L_ResetLab0));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_TraChiLab), new MulLanStr(LanguageLabel.UI__L_TraChiLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_SimChiLab), new MulLanStr(LanguageLabel.UI__L_SimChiLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_EnglishLab), new MulLanStr(LanguageLabel.UI__L_EnglishLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_Tit), new MulLanStr(LanguageLabel.UI__La_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_CancelLab), new MulLanStr(LanguageLabel.Common__Cancel));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_Placeholder), new MulLanStr(LanguageLabel.UI__La_Placeholder));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Tit), new MulLanStr(LanguageLabel.UI__Lb_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_CancelLab), new MulLanStr(LanguageLabel.Common__Cancel));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Placeholder), new MulLanStr(LanguageLabel.UI__Lb_Placeholder));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Placeholder0), new MulLanStr(LanguageLabel.UI__Lb_Placeholder0));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lc_CreditsContent), new MulLanStr(LanguageLabel.UI__Lc_CreditsContent));
-
-        ResourceManager.SetText(CanvasLabel.L_UserLab, ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID));
-
-        #region L_Setting
-
-        tween = ResourceManager.Get(CanvasLabel.L_Setting).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-        };
-
-        #endregion
-
-        #region L_Confirm
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.L_Setting).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-
-        #region L_CreditsMask
-
-        ResourceManager.Get(CanvasLabel.Lc_CreditsMask).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Lc_CreditsMask,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenBacCG();
-
-                Auxiliary.Instance.StopCoroutine(StopPlayCreditsRoutine);
-            }
-        );
-
-        #endregion
-
-        #region L_CreditsContent
-
-        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.Lc_Pos).position, 10f, false, false, true, Curve.Linear);
-
-        #endregion
-
-        #region L_CreditsBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_CreditsBtn,
-            () =>
-            {
-                ShowCredits();
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-            }
-        );
-
-        #endregion
-
-
-        #region L_ShareBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_ShareBtn,
-            () =>
-            {
-                IAPManager.Share();
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-            }
-        );
-
-        if (Application.isEditor)
-        {
-            ResourceManager.Get<Button>(CanvasLabel.L_ShareBtn).interactable = false;
-        }
-
-        #endregion
-
-        #region L_AudioBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_AudioBtn,
-            () =>
-            {
-                AudioManager.Instance.AudioSwitch();
-
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-            }
-        );
-
-        #endregion
-
-        #region L_MusicBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_MusicBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                AudioManager.Instance.MusicSwitch();
-            }
-        );
-
-        #endregion
-
-        #region L_ReportBtn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_ReportBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.Lb_Info).TweenForCG();
-            }
-        );
-
-        #endregion
-
-        #region L_ChangeBtn
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.L_ChangeBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.La_Info).TweenForCG();
-            }
-        );
-
-        #endregion
-
-        #region L_Reset
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.L_ResetBtn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                Bubble.Show
-                (
-                    null,
-                    Language.GetStr(LanguageLabel.UI__L_ResetLab1),
-                    null,
-                    null,
-                    () =>
-                    {
-                        ConfigManager.ResetConfigDocument();
-                    }
-                );
-            }
-        );
-
-        #endregion
-
-
-        #region L_TraChi
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_TraChi,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = true;
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.Orange;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.LightGray;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.LightGray;
-
-                LanguageManager.SwitchLanguage(CurrentLanguage.ChineseTraditional);
-            }
-        );
-
-        #endregion
-
-        #region L_SimChi
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_SimChi,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = true;
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.LightGray;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.Orange;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.LightGray;
-
-                LanguageManager.SwitchLanguage(CurrentLanguage.ChineseSimplified);
-            }
-        );
-
-        #endregion
-
-        #region L_English
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.L_English,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = false;
-
-                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.LightGray;
-                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.LightGray;
-                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.Orange;
-
-                LanguageManager.SwitchLanguage(CurrentLanguage.English);
-            }
-        );
-
-        #endregion
-
-        if (Initializer.Instance.AuditEdition)
-        {
-            ResourceManager.SetActive(CanvasLabel.L_TraChi, false);
-            ResourceManager.SetActive(CanvasLabel.L_English, false);
-        }
-
-
-        #region La_Info
-
-        ResourceManager.Get(CanvasLabel.La_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region La_Cancel
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.La_Cancel,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.La_Info).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region La_Confirm
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.La_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                string id = ResourceManager.Get<InputField>(CanvasLabel.La_InputField).text;
-
-                if (id == HttpManager.ID)
-                {
-                    Bubble.Show(null, Language.GetStr(LanguageLabel.Common__IdenticalID));
-                }
-                else
-                {
-                    Manager.SwitchConfig(id);
-                }
-            }
-        );
-
-        #endregion
-
-
-        #region Lb_Info
-
-        ResourceManager.Get(CanvasLabel.Lb_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Lb_Cancel
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Lb_Cancel,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.Lb_Info).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region Lb_Confirm
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Lb_Confirm,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                HttpManager.ReportIssue();
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region M
-
-        #region M_Close
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.M_Tit), new MulLanStr(LanguageLabel.UI__M_Tit));
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.M_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ResourceManager.Get(CanvasLabel.M_Achieve).TweenBacGra();
-            }
-        );
-
-        #endregion
-
-        #region M_Achieve
-
-        tween = ResourceManager.Get(CanvasLabel.M_Achieve).CreateTweenGra(new Color(0, 0, 0, 180/255f), 0.5f, true, true, Curve.EaseOutQuad);
-
-        var tween2 = tween;
-        tween.OnForwardStart += () =>
-        {
-            tween2.Duration = 0.5f;
-        };
-
-        tween.OnBackwardStart += () =>
-        {
-            tween2.Duration = 0.25f;
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.M_Achieve0).TweenBacVec();
-        };
-
-        tween = ResourceManager.Get(CanvasLabel.M_Achieve0).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.M_PosTra).position, 0.5f, false, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
-
-            ResourceManager.SetActive(CanvasLabel.M_Achieve, true);
-        };
-
-        tween.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.M_Achieve).TweenForGra();
-        };
-
-        tween.OnBackwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
-
-            ResourceManager.SetActive(CanvasLabel.M_Achieve, false);
-            ResourceManager.SetActive(CanvasLabel.M_Achieve0, false);
-        };
-
-        #endregion
-
-        #endregion
-
-        #region O
-
-        ResourceManager.Get(CanvasLabel.O_Toast).AddScript<Toast>();
-
-        #endregion
-
-        #region N
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_Lab), new MulLanStr(LanguageLabel.UI__N_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_FormerPlayerButtonText), new MulLanStr(LanguageLabel.UI__N_FormerPlayerButtonText));
-
-        ResourceManager.Get(CanvasLabel.N_Mask).CreateTweenGra(0, 180/255f, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_LabBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_Arrow).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_Tutorial).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_Confirm).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region P
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_HairLab), new MulLanStr(LanguageLabel.UI__P_HairLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_TopLab), new MulLanStr(LanguageLabel.UI__P_TopLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_DressLab), new MulLanStr(LanguageLabel.UI__P_DressLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_DecaratorLab), new MulLanStr(LanguageLabel.UI__P_DecaratorLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_WingLab), new MulLanStr(LanguageLabel.UI__P_WingLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_ShoeLab), new MulLanStr(LanguageLabel.UI__P_ShoeLab));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Pa_Tit), new MulLanStr(LanguageLabel.UI__Pa_Tit));
-
-
-        #region P_Group
-
-        ResourceManager.Get(CanvasLabel.P_Group).CreateTweenCG(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region P_Open
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Open,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.P_Group).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.P_SidePanel).TweenBacVec();
-
-                ResourceManager.SetActive(CanvasLabel.P_Open, false);
-                ResourceManager.SetActive(CanvasLabel.P_Close, true);
-            }
-        );
-
-        #endregion
-
-        #region P_Close
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Close,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.P_Group).TweenForCG();
-                ResourceManager.Get(CanvasLabel.P_SidePanel).TweenForVec();
-
-                ResourceManager.SetActive(CanvasLabel.P_Open, true);
-                ResourceManager.SetActive(CanvasLabel.P_Close, false);
-            }
-        );
-
-        #endregion
-
-        #region P_SidePanel
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.P_SidePanel).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.P_Pos).position, 0.5f, false, true, true, Curve.EaseOutQuad);
-
-        tweenRoot.OnForwardFinish += () =>
-        {
-            ResourceManager.Get(CanvasLabel.P_Share).TweenForCG();
-        };
-
-        tweenRoot.OnBackwardStart += () =>
-        {
-            ResourceManager.Get(CanvasLabel.P_Share).TweenBacCG();
-        };
-
-        #endregion
-
-        #region P_DressRoom
-
-        ResourceManager.Get(CanvasLabel.P_DressRoom).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region P_Save
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Save,
-            () =>
-            {
-                PlayerManager.Player.SaveDressDatas(true);
-            }
-        );
-
-        #endregion
-
-        #region P_Reset
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Reset,
-            () =>
-            {
-                PlayerManager.Player.ResetDressDatas();
-            }
-        );
-
-        #endregion
-
-        #region P_TabBtn
-
-        ResourceManager.Get(CanvasLabel.P_Hair).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Top).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Dress).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Decarator).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Wing).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.P_Shoe).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Hair,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(5);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Top,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(5);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Dress,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(6);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Decarator,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(5);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(3);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Wing,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenForScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(5);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(3);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = false;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, true);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, true);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.P_Shoe,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
-                ResourceManager.Get(CanvasLabel.P_Shoe).TweenForScale();
-
-                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
-                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
-                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
-                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
-                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
-                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(5);
-
-                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
-                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = false;
-
-                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
-                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, true);
-
-                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
-                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, true);
-            }
-        );
-
-        #endregion
-
-        #region P_Return
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Return,
-            () =>
-            {
-                PlayerManager.Player.LeaveDressroom();
-            }
-        );
-
-        #endregion
-
-        #region P_Share
-
-        ResourceManager.Get(CanvasLabel.P_Share).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_Share,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.P_Open, false);
-                ResourceManager.SetActive(CanvasLabel.P_Share, false);
-
-                EndOfFrameCall.Call
-                (
-                    ShareScreenShot
-                );
-            }
-        );
-
-        #endregion
-
-        #region P_CancelShare
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.P_CancelShare,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.P_Open, true);
-                ResourceManager.SetActive(CanvasLabel.P_CancelShare, false);
-            }
-        );
-
-        #endregion
-
-
-        #region Pa_Info
-
-        ResourceManager.Get(CanvasLabel.Pa_Info).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region Pa_Close
-
-        ResourceManager.AddButtonEvent
-            (
-                CanvasLabel.Pa_Close,
-                () =>
-                {
-                    AudioManager.PlayClip(AudioLabel.Close);
-
-                    ResourceManager.Get(CanvasLabel.Pa_Info).TweenBacCG();
-                }
-            );
-
-        #endregion
-
-        #endregion
-
-        #region Q
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tit), new MulLanStr(LanguageLabel.UI__Q_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Placeholder), new MulLanStr(LanguageLabel.UI__Q_Placeholder));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_CommentLab), new MulLanStr(LanguageLabel.UI__Q_CommentLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_CloseLab), new MulLanStr(LanguageLabel.UI__Q_CloseLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_NicknameTitle), new MulLanStr(LanguageLabel.UI__Q_NicknameTitle));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_ContentTitle), new MulLanStr(LanguageLabel.UI__Q_ContentTitle));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_FriendFilterTitle), new MulLanStr(LanguageLabel.UI__Q_FriendFilterTitle));
-
-        ResourceManager.Get(CanvasLabel.Q_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Q_CommentBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-            (
-                CanvasLabel.Q_Close,
-                () =>
-                {
-                    SocialManager.CloseCommentPanel();
-                }
-            );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.Q_CommentBtn,
-            () =>
-            {
-                SocialManager.Comment();
-            }
-        );
-
-        #endregion
-
-        #region R
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.R_NotifyTit), new MulLanStr(LanguageLabel.UI__R_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.R_CloseLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-        tween = ResourceManager.Get(CanvasLabel.R_Notify0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        tween = ResourceManager.Get(CanvasLabel.R_Notify).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart +=
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.R_NotifyBK).TweenForScale();
-            };
-
-        tween.OnBackwardStart +=
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.R_NotifyBK).TweenBacScale();
-            };
-
-        tween.OnBackwardFinish +=
-            () =>
-            {
-                SignManager.ShowPanels();
-            };
-
-        ResourceManager.Get(CanvasLabel.R_NotifyBK).CreateTweenScale(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.R_Close,
-            () =>
-            {
-                tween = ResourceManager.Get(CanvasLabel.R_Notify).TweenBacCG();
-            }
-        );
-
-        #endregion
-
-        #region S
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.S_Tit), new MulLanStr(LanguageLabel.UI__S_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.S_CloseLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-        ResourceManager.Get(CanvasLabel.S_RankPanel).CreateTweenScale(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween = ResourceManager.Get(CanvasLabel.S_RankBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        tween.OnForwardStart +=
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.S_RankPanel).TweenForScale();
-            };
-
-        tween.OnBackwardStart +=
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.S_RankPanel).TweenBacScale();
-            };
-
-        ResourceManager.AddButtonEvent(CanvasLabel.S_Close, () => { SocialManager.CloseRankPanel(); });
-
-        #endregion
-
-        #region T
-
-        //ManaLan.Add(ManaReso.Get<Text>("T_RandomLab"), new LanStr("UI", PrefabLabel.T_Random));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.T_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-        ResourceManager.SetSprite(CanvasLabel.T_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-        
-        ResourceManager.Get(CanvasLabel.T_NickName).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.T_NickNameBK).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.T_Confirm,
-            () =>
-            {
-                NickNameManager.ResetNickName();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.T_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-                NickNameManager.CloseNickNameSettingPanel();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.T_Random,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-                NickNameManager.SetRandomName();
-            }
-        );
-
-        #endregion
-
-        #region U
-
-        ResourceManager.Get(CanvasLabel.U_LoadingPanel).CreateTweenCG(1, 0, 1f, true, false, Curve.EaseOutQuad);
-
-        ResourceManager.Get(CanvasLabel.U_Group).CreateTweenCG(0, 1f, 0.5f, false, true, Curve.EaseOutQuad);
-
-        tweenRoot = ResourceManager.Get(CanvasLabel.U_Icon).CreateTweenEuler(new Vector3(0, 0, -360), 1.25f, false, true, true, Curve.Linear);
-        tweenRoot.Repeat = true;
-        tweenRoot.StartForward();
-
-        #endregion
-
-        #region V
-
-        ResourceManager.Get(CanvasLabel.V_BlackMask).CreateTweenCG(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
-
-        #endregion
-
-        #region X
-
-        ResourceManager.Get<Image>(CanvasLabel.X_CreateChest).sprite = ResourceManager.LoadSprite("宝箱", Folder.Scene);
-        ResourceManager.Get<ImagePlus>(CanvasLabel.X_CurrentInfoImagePlus).sprite = ResourceManager.LoadSprite("Expression", Folder.Scene);
-
-        ResourceManager.SetSprite(CanvasLabel.X_SendPublicMessage, ResourceManager.LoadSprite(ResourceLabel.Expression_SendPublicMessage, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_CryFace, ResourceManager.LoadSprite(ResourceLabel.Expression_CryFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_ChagrinFace, ResourceManager.LoadSprite(ResourceLabel.Expression_ChagrinFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_HappyFace, ResourceManager.LoadSprite(ResourceLabel.Expression_HappyFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_SurpriseFace, ResourceManager.LoadSprite(ResourceLabel.Expression_SurpriseFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_HopeFace, ResourceManager.LoadSprite(ResourceLabel.Expression_HopeFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_SweatFace, ResourceManager.LoadSprite(ResourceLabel.Expression_SweatFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_OgleFace, ResourceManager.LoadSprite(ResourceLabel.Expression_OgleFace, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_Expression, ResourceManager.LoadSprite(ResourceLabel.Expression_Expression, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.X_BlueFace, ResourceManager.LoadSprite(ResourceLabel.Expression_BlueFace, Folder.Scene));
-
-        #region X_CreateChest
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_CreateChest,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ChestManager.OpenCreateChestPanel();
-            }
-        );
-
-        #endregion
-
-        #region X_Quit
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_Quit,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                SFSManager.GardenSmartFox.PlazaRoomController.LeavePlazaRoom();
-            }
-        );
-
-        #endregion
-
-        #region X_SendPublicMessage
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_SendPublicMessage,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                if (SFSManager.GardenSmartFox.PlazaRoomController.SendPublicMessage(ResourceManager.Get<InputField>(CanvasLabel.X_InputField).text))
-                {
-                    ResourceManager.Get<InputField>(CanvasLabel.X_InputField).text = "";
-                }
-            }
-        );
-
-        #endregion
-
-        #region X_Expression
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_Expression,
-            () =>
-            {
-                OpenExpressionGrid();
-            }
-        );
-
-        #endregion
-
-        #region X_Mask
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_Mask,
-            () =>
-            {
-                CloseExpressionGrid();
-            }
-        );
-
-        #endregion
-
-        #region Expression
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_BlueFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.郁闷);
-                CloseExpressionGrid();
-            }
-        );
-
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_SweatFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.汗颜);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_SurpriseFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.惊讶);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_HappyFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.开心);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_CryFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.哭);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_HopeFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.期待);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_OgleFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.色咪咪);
-                CloseExpressionGrid();
-            }
-        );
-
-        ResourceManager.AddButtonEvent
-        (
-            CanvasLabel.X_ChagrinFace,
-            () =>
-            {
-                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.委屈);
-                CloseExpressionGrid();
-            }
-        );
-
-        #endregion
-
-        #region X_OpenInfo
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_OpenInfo, () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.X_CurrentInfo, false);
-                ResourceManager.SetActive(CanvasLabel.X_InfoBK, true);
-
-                Auxiliary.Instance.DelayCall
-                (
-                    () =>
-                    {
-                        LayoutRebuilder.MarkLayoutForRebuild(ResourceManager.Get<RectTransform>(CanvasLabel.X_Info));
-                    },
-                    1
-                );
-            }
-        );
-
-        #endregion
-
-        #region X_CloseInfo
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.X_CloseInfo, () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.X_CurrentInfo, true);
-                ResourceManager.SetActive(CanvasLabel.X_InfoBK, false);
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region Y
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Y_Tit), new MulLanStr(LanguageLabel.UI__Yb_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Y_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_Tit), new MulLanStr(LanguageLabel.UI__Yb_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_Desc), new MulLanStr(LanguageLabel.UI__Yb_LuckyDesc));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_SliderTit), new MulLanStr(LanguageLabel.UI__Yb_SliderTit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab0), new MulLanStr(LanguageLabel.UI__Yb_Lucky));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab1), new MulLanStr(LanguageLabel.UI__Yb_GuessColor));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab2), new MulLanStr(LanguageLabel.UI__Yb_GuessNumber));
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ya_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
-
-
-        ResourceManager.SetSprite(CanvasLabel.Y_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-        ResourceManager.SetSprite(CanvasLabel.Yb_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-
-
-        ResourceManager.Get(CanvasLabel.Y_Tip).CreateTweenCG(0, 1, 0.5f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Y_Chest).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        ResourceManager.Get<Image>(CanvasLabel.Ya_Icon).sprite = ResourceManager.LoadSprite("钻石", Folder.Atlas);
-
-        ResourceManager.Get<Slider>(CanvasLabel.Yb_Slider).onValueChanged.AddListener(ChestManager.OnSliderValueChange);
-        ResourceManager.Get<InputField>(CanvasLabel.Yb_InputField).onValueChanged.AddListener(ChestManager.OnInputValueChange);
-
-        #region Y_Close
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Y_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                ChestManager.CloseCreateChestPanel();
-            }
-        );
-
-        #endregion
-
-        #region Yb_Toggle
-
-        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle0).onValueChanged.AddListener(ChestManager.OnLuckyToggle);
-        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle1).onValueChanged.AddListener(ChestManager.OnColorToggle);
-        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle2).onValueChanged.AddListener(ChestManager.OnNumberToggle);
-
-        #endregion
-
-        #region Yb_CreateChest
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Yb_Btn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                ChestManager.CreateChest();
-            }
-        );
-
-        #endregion
-
-        #region Y_Btn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Y_Btn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                PlazaRoomChest.SelectedChest.GetAward(ResourceManager.Get<InputField>(CanvasLabel.Y_InputField).text);
-            }
-        );
-
-        #endregion
-
-        #region Ya_Btn
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Ya_Btn,
-            () =>
-            {
-                ChestManager.CloseCreateChestPanel();
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region Z
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_CreateLab), new MulLanStr(LanguageLabel.UI__Z_CreateLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_CloseLab), new MulLanStr(LanguageLabel.Common__Close));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab0), new MulLanStr(LanguageLabel.UI__Z_InfoLab0));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab1), new MulLanStr(LanguageLabel.UI__Z_InfoLab1));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab2), new MulLanStr(LanguageLabel.UI__Z_InfoLab2));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab3), new MulLanStr(LanguageLabel.UI__Z_InfoLab3));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab4), new MulLanStr(LanguageLabel.UI__Z_InfoLab4));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab5), new MulLanStr(LanguageLabel.UI__Z_InfoLab5));
-
-
-        ResourceManager.Get(CanvasLabel.Z_BK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.Z_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #region Z_Create
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Z_Create,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                PlazaRoomManager.OpenCreateRoomPanel();
-            }
-        );
-
-        #endregion
-
-        #region Z_Close
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Z_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                PlazaRoomManager.CloseJoinRoomPanel();
-            }
-        );
-
-        #endregion
-
-        #region Z_InfoImg50
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.Z_InfoImg50,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                if (PlazaRoomManager.FilterFlag)
-                    PlazaRoomManager.DisableCreateByMeFilter();
-                else
-                    PlazaRoomManager.EnableCreateByMeFilter();
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region AA
-
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AA_Lab), new MulLanStr(LanguageLabel.UI__AA_Lab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AA_BtnLab), new MulLanStr(LanguageLabel.UI__AA_BtnLab));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AAa_Tit), new MulLanStr(LanguageLabel.UI__AAa_Tit));
-        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AAb_Tit), new MulLanStr(LanguageLabel.UI__AAb_Tit));
-
-        ResourceManager.SetSprite(CanvasLabel.AA_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
-
-        ResourceManager.Get(CanvasLabel.AA_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-        ResourceManager.Get(CanvasLabel.AA_CreatePlazaRoom).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        #region AA_Close
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.AA_Close,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Close);
-
-                PlazaRoomManager.CloseCreateRoomPanel();
-            }
-        );
-
-        #endregion
-
-        #region AA_Create
-
-        ResourceManager.SetButtonEvent
-        (
-            CanvasLabel.AA_Btn,
-            () =>
-            {
-                AudioManager.PlayClip(AudioLabel.ClickButton);
-
-                PlazaRoomManager.CreateRoom();
-
-                ResourceManager.Get<InputField>(CanvasLabel.AA_InputField).text = "";
-            }
-        );
-
-        #endregion
-
-        #endregion
-
-        #region AI
-
-        AlertPanel.Init();
-
-        #endregion
-
-        ResourceManager.Get<Text>(CanvasLabel.K_Tit).resizeTextForBestFit = true;
-        ResourceManager.Get<Text>(CanvasLabel.K_Tit).resizeTextMaxSize = 21;
-
-        if (!TutorialManager.NewplayerTutorial)
-        {
-            SetEnterMinigameGameLabel();
-        }
-
-        ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
-        ResourceManager.Get(CanvasLabel.F_Manage).GetTweenGra().InOrigin = true;
-        ResourceManager.SetActive(CanvasLabel.F_Manage, false);
-        ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec().InOrigin = true;
-    }
-
-
-    public override void TutorialToRegular()
-    {
-        SetEnterMinigameGameLabel();
-    }
-
-    public static void SetEnterMinigameGameLabel()
-    {
-        HudTarget hudTarget = ResourceManager.Get(CanvasLabel.C_MiniGame).AddComponent<HudTarget>();
-
-        hudTarget.PosTra = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra];
-
-        hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).AddComponent<HudTarget>();
-
-        hudTarget.PosTra = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra];
-    }
-
-
-    public void LoginCallback(JsonData jsonData)
-    {
-        if (HttpManager.IsConnect)
-        {
-            ResourceManager.Get(CanvasLabel.Fg_Reconnect).TweenBacCG();
-
-            ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = true;
-
-            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab2));
-        }
-        else
-        {
-            ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = true;
-
-            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab3));
-        }
-    }
-
-
-    public static void ShowCredits()
-    {
-        ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenForCG();
-        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenForCG();
-        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenReForVec();
-
-        StopPlayCreditsRoutine = Auxiliary.Instance.DelayCall
-        (
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenBacCG();
-                ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenBacCG();
-            },
-            10f
-        );
-    }
-
-
-    public static void UpdateManagePanelHint() //侧边栏红色描边
-    {
-        if (TutorialManager.NewplayerTutorial)
-        {
-            return;
-        }
-
-
-        TweenOutline tween = ResourceManager.Get(CanvasLabel.C_Manage).GetTweenOutline();
-
-        for (int i = 0; i < Manager.SkillList.Count; i++)
-        {
-            if (Manager.SkillList[i].ItemStatus == SkillStatus.UnLock)
-            {
-                if (tween.InPause)
-                {
-                    tween.Resume();
-
-                    tween.Target.enabled = true;
-                }
-                else
-                {
-                    tween.StartForward();
-                }
-
-                return;
-            }
-        }
-
-
-        tween.Target.enabled = false;
-
-        tween.Pause();
-    }
-
-
-    public static void OpenManagePanel()
-    {
-        ResourceManager.Get(CanvasLabel.F_Manage0).TweenForVec();
-
-        AudioManager.PlayClip(AudioLabel.ClickButton);
-
-        if (TutorialManager.NewplayerTutorial)
-        {
-            return;
-        }
-
-        SkillRoot skillRoot = null;
-        ScrollRect scrollRect = null;
-        foreach (var skill in Manager.SkillList)
-        {
-            if (skill.ItemStatus == SkillStatus.UnLock)
-            {
-                skillRoot = skill;
-                break;
-            }
-        }
-
-        if (skillRoot != null)
-        {
-            MoveRoot moveRoot;
-            ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = false;
-            TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage).GetTweenGra();
-            tweenRoot.AddEventOnetime
-            (
-                EventType.ForwardFinish,
-                () =>
-                {
-                    if (skillRoot.SkillType == SkillType.Skill || skillRoot.SkillType == SkillType.BigSkill)
-                    {
-                        ResourceManager.Get<Button>(CanvasLabel.F_Garden).onClick.Invoke();
-                        DelayCall.Call
-                        (
-                            1,
-                            () =>
-                            {
-                                int index = skillRoot.SkillItem.GetSiblingIndex();
-                                scrollRect = ResourceManager.Get<ScrollRect>(CanvasLabel.Fa_Scrr);
-                                if (index < scrollRect.content.childCount - MaxSkillDisplayAmt)
-                                {
-                                    moveRoot = scrollRect.Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Up);
-                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
-                                }
-                                else
-                                {
-                                    moveRoot = scrollRect.Locate(scrollRect.content.childCount - 1, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
-                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
-                                }
-                            }
-                        );
-                    }
-                    else if (skillRoot.SkillType == SkillType.Ability)
-                    {
-                        ResourceManager.Get<Button>(CanvasLabel.F_Elf).onClick.Invoke();
-                        DelayCall.Call
-                        (
-                            1,
-                            () =>
-                            {
-                                int index = skillRoot.SkillItem.GetSiblingIndex();
-                                scrollRect = ResourceManager.Get<ScrollRect>(CanvasLabel.Fd_Scrr);
-                                if (index < scrollRect.content.childCount - MaxAbilityDisplayAmt)
-                                {
-                                    moveRoot = scrollRect.Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Up);
-                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
-                                }
-                                else
-                                {
-                                    moveRoot = scrollRect.Locate(scrollRect.content.childCount - 1, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
-                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
-                                }
-                            }
-                        );
-                    }
-                    else
-                    {
-                        ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true;
-                        throw new Exception();
-                    }
-                }
-            );
-        }
-    }
-
-
-    public static void NavigateToBuyCoin()
-    {
-        ResourceManager.Get<Button>(CanvasLabel.F_Magic).onClick.Invoke();
-
-        Auxiliary.Instance.DelayCall
-            (
-                () =>
-                {
-                    int index = ResourceManager.Get(CanvasLabel.Fb_Grid).childCount - 1;
-
-                    ResourceManager.Get<ScrollRect>(CanvasLabel.Fb_Scrr).Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
-                },
-                1
-            );
-    }
-
-    public static void NavigateToBuyDiamond()
-    {
-        ResourceManager.Get<Button>(CanvasLabel.F_Store).onClick.Invoke();
-
-        Auxiliary.Instance.DelayCall
-        (
-            () =>
-            {
-                int index = ResourceManager.Get(CanvasLabel.Fc_Grid).childCount - 1;
-
-                ResourceManager.Get<ScrollRect>(CanvasLabel.Fc_Scrr).Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
-            },
-            1
-        );
-    }
-
-
-    private static void OpenExpressionGrid()
-    {
-        ResourceManager.SetActive(CanvasLabel.X_GridBK, true);
-        ResourceManager.SetActive(CanvasLabel.X_Mask, true);
-        ResourceManager.SetActive(CanvasLabel.X_InfoParent, false);
-    }
-
-    private static void CloseExpressionGrid()
-    {
-        ResourceManager.SetActive(CanvasLabel.X_GridBK, false);
-        ResourceManager.SetActive(CanvasLabel.X_Mask, false);
-        ResourceManager.SetActive(CanvasLabel.X_InfoParent, true);
-    }
-
-
-    public static void BlockOfflinePanel()
-    {
-        ResourceManager.Get(CanvasLabel.B_SignIn0).TweenBacCG();
-        ResourceManager.Get(CanvasLabel.T_NickName).TweenBacCG();
-        ResourceManager.Get(CanvasLabel.R_Notify0).TweenBacCG();
-    }
-
-    public static void UnblockOfflinePanel()
-    {
-        ResourceManager.Get(CanvasLabel.B_SignIn0).TweenForCG();
-        ResourceManager.Get(CanvasLabel.T_NickName).TweenForCG();
-        ResourceManager.Get(CanvasLabel.R_Notify0).TweenForCG();
-    }
-
-
-    private static void ShareScreenShot()
-    {
-        float scaleFactor = ResourceManager.Get<Canvas>(CanvasLabel.Canvas).scaleFactor;
-        RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.P_ScreenShotRect);
-        int width = (int) (rectTransform.rect.width*scaleFactor);
-        int height = (int) (rectTransform.rect.height*scaleFactor);
-        Vector2 screenPosition = RectTransformUtility.WorldToScreenPoint(null, rectTransform.position);
-
-        Texture2D texture2D = new Texture2D(width, height, TextureFormat.RGBA32, false);
-        texture2D.ReadPixels(new Rect(screenPosition.x, screenPosition.y, width, height), 0, 0);
-        texture2D.Apply();
-
-        string screenShotPath = string.Format("{0}/MyLovelyGarden.png", Application.persistentDataPath);
-        File.WriteAllBytes(screenShotPath, texture2D.EncodeToPNG());
-
-        IAPManager.Share(screenShotPath, Language.GetStr(LanguageLabel.Common__ScreenShotShareContent));
-
-        DelayCall.Call
-        (
-            1,
-            () =>
-            {
-                ResourceManager.SetActive(CanvasLabel.P_Open, true);
-                ResourceManager.SetActive(CanvasLabel.P_Share, true);
-            }
-        );
-    }
-
-
-    private static void OnLanguageChange(CurrentLanguage fromLanguage, CurrentLanguage toLanguage)
-    {
-        if (toLanguage == CurrentLanguage.ChineseSimplified)
-        {
-            ResourceManager.SetActive(CanvasLabel.C_WelcomeIcon, false);
-            ResourceManager.SetActive(CanvasLabel.C_HeartIcon, true);
-        }
-        else
-        {
-            ResourceManager.SetActive(CanvasLabel.C_WelcomeIcon, true);
-            ResourceManager.SetActive(CanvasLabel.C_HeartIcon, false);
-        }
-    }
+using LitJson;
+
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.Events;
+using UnityEngine.EventSystems;
+
+using System;
+using System.Xml;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using repeatCallUtility;
+using Sfs2X.Entities.Data;
+using Random = UnityEngine.Random;
+
+public class UIManager : Regist
+{
+    #region Config
+
+    public static bool Initd;
+
+    private static int MaxSkillIconForIncomeDetailPanel = 4;
+    private static int MaxSkillDisplayAmt = 2;
+    private static int MaxAbilityDisplayAmt = 3;
+    private static int MinigameDisplayCoinAwardRatio = 10;
+    private static int MinigameDisplayDiamondAward = 10;
+
+    public static Transform Canvas;
+    public static Transform Camera;
+    public static Transform EventSystem;
+    public static Coroutine StopPlayCreditsRoutine;
+
+    public static UIManager Instance;
+
+    #endregion
+
+
+    public static void Init(bool debugMode)
+    {
+        if (Initd)
+        {
+            return;
+        }
+
+        if (Bundle.UI == null && !debugMode)
+        {
+            return;
+        }
+
+        Transform tra = new GameObject(ResourceLabel.UI).transform;
+
+        tra.parent = Instance.transform;
+
+        Canvas = ResourceManager.Get(ResourceLabel.Canvas, Folder.UI, true, tra, false, ObjType.Canvas);
+        Camera = ResourceManager.Get(ResourceLabel.MainCamera, Folder.UI, true, tra, false, ObjType.MainCamera);
+        EventSystem = ResourceManager.Get(ResourceLabel.EventSystem, Folder.UI, false, tra, false, ObjType.EventSystem);
+
+        ResourceManager.SetActive(CanvasLabel.C_Main, true);
+        ResourceManager.SetActive(CanvasLabel.U_LoadingPanel, true);
+
+        #region WarningText
+
+        if (Initializer.Instance.DebugMode == false)
+        {
+            XmlDocument document = new XmlDocument();
+            TextAsset textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultEnglish);
+            document.LoadXml(textAsset.text);
+            Language.AddLanguageDocument(CurrentLanguage.English, document);
+
+            document = new XmlDocument();
+            textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultChineseSimplified);
+            document.LoadXml(textAsset.text);
+            Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
+
+            document = new XmlDocument();
+            textAsset = Bundle.Defaul.LoadAsset<TextAsset>(ResourceLabel.DefaultChineseTraditional);
+            document.LoadXml(textAsset.text);
+            Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
+
+            Initializer.SetWarningText();
+        }
+
+        #endregion
+
+        #region 
+
+        ResourceManager.Get(CanvasLabel.K_Bubble).AddScript<Bubble>();
+
+        #endregion
+
+        Initd = true;
+    }
+
+
+    public override bool InitAtOnce()
+    {
+        if (base.InitAtOnce())
+        {
+            return true;
+        }
+
+        Instance = this;
+
+        return false;
+    }
+
+
+    public override void FirstInit()
+    {
+        Instance = this;
+
+        ResourceManager.Get(CanvasLabel.Canvas).CreateTweenCG(1, 0, 0.25f, true, true, Curve.EaseOutQuad);
+
+        #region B
+
+        ResourceManager.SetSprite(CanvasLabel.Ba_Icon, Lib.BigGoldSprite);
+        ResourceManager.SetSprite(CanvasLabel.Bb_IconB, Lib.BigGoldSprite);
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ba_Lab), new MulLanStr(LanguageLabel.UI__Ba_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ba_ConfirmLab), new MulLanStr(LanguageLabel.UI__Ba_ConfirmLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_Title), new MulLanStr(LanguageLabel.UI__Bb_Title));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_GetLab), new MulLanStr(LanguageLabel.UI__Bb_GetLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bb_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bb_ConfirmLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bc_Lab), new MulLanStr(LanguageLabel.UI__Bc_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bc_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bc_ConfirmLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bd_GetLab), new MulLanStr(LanguageLabel.UI__Bd_GetLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Bd_Title), new MulLanStr(LanguageLabel.UI__Bd_Title));
+
+        #region B_SignIn
+
+        TweenRoot tween = ResourceManager.Get(CanvasLabel.B_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Group0).TweenBacCG();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Group0).TweenForCG();
+            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
+        };
+
+        #endregion
+
+        #region B_SignIn0
+
+        ResourceManager.Get(CanvasLabel.B_SignIn0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+
+        #region Ba_Notice
+
+        ResourceManager.Get(CanvasLabel.Ba_Notice).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Ba_Notice0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Ba_Confirm
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ba_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.GetCurrent);
+
+                ResourceManager.Get(CanvasLabel.Ba_Notice).TweenBacCG();
+
+                Manager.OfflineFlag = false;
+
+                if (!SignManager.ShowPanels())
+                {
+                    ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
+                }
+            }
+        );
+
+        #endregion
+
+
+        #region Bb_Get
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Bb_Get,
+            () =>
+            {
+                SignManager.GetSignAward();
+            }
+        );
+
+        #endregion
+
+        #region Bb_SignIn
+
+        tween = ResourceManager.Get(CanvasLabel.Bb_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.SetActive(CanvasLabel.Bb_Get, true);
+            ResourceManager.SetActive(CanvasLabel.Bb_IconB, false);
+            ResourceManager.SetActive(CanvasLabel.Bb_IconA, false);
+            ResourceManager.SetActive(CanvasLabel.Bb_Rotate, false);
+            ResourceManager.SetActive(CanvasLabel.Bb_Confirm, false);
+        };
+
+        #endregion
+
+        #region Bb_Confirm
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Bb_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.Bb_SignIn).TweenBacCG();
+
+                SignManager.ShowPanels();
+            }
+        );
+
+        #endregion
+
+
+        #region Bc_Lottery
+
+        ResourceManager.Get(CanvasLabel.Bc_Lab).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Bc_Lottery).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Bc_Confirm).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.Get(CanvasLabel.Bc_LotteryItem1).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Bc_LotteryItem2).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Bc_LotteryItem3).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad);
+
+        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK12).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+        tween.StartForward();
+
+        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK22).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+        tween.StartForward();
+
+        tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK32).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+        tween.StartForward();
+
+        ResourceManager.SetButtonEvent(CanvasLabel.Bc_Confirm, Lottery.EndAnimation);
+
+        #endregion
+
+
+        #region Bd_Get
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Bd_Get,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                int childCount = ResourceManager.Get(CanvasLabel.Bd_Grid).childCount;
+                for (int i = 0; i < childCount; i++)
+                {
+                    ResourceManager.Save(ResourceManager.Get(CanvasLabel.Bd_Grid).GetChild(0));
+                }
+
+                if (HttpManager.MailRewardList.Count == 0 && HttpManager.BroadcastMailRewardList.Count == 0)
+                {
+                    ResourceManager.Get(CanvasLabel.Bd_Mail0).TweenBacCG();
+                }
+
+                if (!SignManager.ShowPanels())
+                {
+                    ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG();
+                }
+            }
+        );
+
+        #endregion
+
+        #region Bd_Mail0
+
+        TweenRoot tweenRoot9 = ResourceManager.Get(CanvasLabel.Bd_Mail0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot9.OnBackwardFinish = () =>
+        {
+            for (int i = 0; i < ResourceManager.Get(CanvasLabel.Bd_Grid).childCount; i++)
+            {
+                ResourceManager.Save(ResourceManager.Get(CanvasLabel.Bd_Grid).GetChild(i--));
+            }
+        };
+
+        #endregion
+
+        #endregion
+
+        #region C
+
+        ResourceManager.SetSprite(CanvasLabel.C_Coin, ResourceManager.LoadSprite(ResourceLabel.Gold, Folder.Atlas));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_MiniGameLab), new MulLanStr(LanguageLabel.UI__C_MiniGameLab));
+
+        #region C_Main
+
+        ResourceManager.Get(CanvasLabel.C_Main).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_Main2
+
+        ResourceManager.Get(CanvasLabel.C_Main2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_Group
+
+        ResourceManager.Get(CanvasLabel.C_Group).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.Get(CanvasLabel.C_Group0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_Setting
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_Setting,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.L_Setting).TweenForCG();
+            }
+        );
+
+        #endregion
+
+        #region C_Achieve
+
+        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Achieve), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Achieve,
+            () =>
+            {
+                AchieveManager.OpenAchievePanel();
+            }
+        );
+
+        #endregion
+
+        #region C_Manage
+
+        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Manage), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Manage,
+            () =>
+            {
+                OpenManagePanel();
+            }
+        );
+
+        #endregion
+
+        #region C_MiniGame
+
+        Vector3 big = ResourceManager.Get<RectTransform>(CanvasLabel.C_MiniGame).sizeDelta;
+        Vector3 small = big*0.5f;
+
+        TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenRect(big, small, 1f, true, true, Curve.EaseOutQuad, true);
+
+        tweenRoot.OnForwardStart = () =>
+        {
+            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
+
+            tweenOutline.PingPong = false;
+            tweenOutline.StartBackward();
+        };
+
+        tweenRoot.OnForwardFinish = () =>
+        {
+            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
+
+            tweenOutline.Target.enabled = false;
+
+            //ResourceManager.Get<Button>(ObjectLabel.C_MiniGame).interactable = false;
+        };
+
+        tweenRoot.OnBackwardFinish = () =>
+        {
+            TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline();
+
+            tweenOutline.Resume();
+            tweenOutline.StartForward();
+
+            tweenOutline.PingPong = true;
+            tweenOutline.Target.enabled = true;
+
+            LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.C_MiniGameLab), new MulLanStr(LanguageLabel.UI__C_MiniGameLab));
+
+            //ResourceManager.Get<Button>(ObjectLabel.C_MiniGame).interactable = true;
+        };
+
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenOutline(0, 180/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tweenRoot.PingPong = true;
+
+        tweenRoot.StartBackward();
+
+
+        ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_MiniGame,
+            () =>
+            {
+                if (Manager.MinigameCDTimer <= 0)
+                {
+                    EnterMinigamePanelManager.TryOpenPanel();
+                }
+                else
+                {
+                    CDMinigamePanelManager.OpenPanel();
+                    AudioManager.PlayClip(AudioLabel.Bubble);
+                }
+            }
+        );
+
+        #endregion
+
+        #region C_IncomeLab
+
+        ResourceManager.Get(CanvasLabel.C_IncomeLab).CreateTweenGra(1, 0, 2, true, false, Curve.EaseOutQuad);
+
+        ResourceManager.Get(CanvasLabel.C_IncomeLab).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.C_Pos).position, 2, false, true, false, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_DressRoom
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_DressRoom,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                if (Manager.GardenLevel < 13)
+                {
+                    Toast.Show(1.5f, Language.GetStr(LanguageLabel.UI__C_DressRoom));
+                }
+                else
+                {
+                    ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG().Duration = 0.5f;
+
+                    PlayerManager.Player.EnterDressRoom();
+                }
+            }
+        );
+
+        #endregion
+
+
+        #region C_AddFriendButton
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_AddFriendButton,
+            () =>
+            {
+                HttpManager.ApplyBuddy
+                (
+                    VisitManager.VisiteeSerialNumber,
+                    () =>
+                    {
+                        Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_SendApplySucceed));
+                        ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
+                    },
+                    () =>
+                    {
+                        Bubble.Show(null, Language.GetStr(LanguageLabel.UI__AG_ConnectError));
+                    }
+                );
+            }
+        );
+
+        #endregion
+
+        #region C_Visit
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Visit,
+            () =>
+            {
+                VisitManager.Visit(ConfigSource.Random);
+            }
+        );
+
+        #endregion
+
+        #region C_Praise
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_Praise,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                SocialManager.Praise();
+            }
+        );
+
+        #endregion
+
+        #region C_Notify
+
+        ResourceManager.Get(CanvasLabel.C_Notify).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Notify,
+            () =>
+            {
+                AnnounceManager.ShowAnnouncePanel();
+            }
+        );
+
+        #endregion
+
+        #region C_Rank
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Rank,
+            () =>
+            {
+                SocialManager.OpenRankPanel();
+            }
+        );
+
+        #endregion
+
+        #region C_Comment
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_Comment,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                SocialManager.OpenCommentPanel();
+            }
+        );
+
+        #endregion
+
+        #region C_Return
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_Return,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.C_Visit, false);
+                ResourceManager.SetActive(CanvasLabel.C_Return, false);
+                ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
+
+                tween = ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG();
+
+                tween.Duration = 0.5f;
+                tween.StartBackward();
+
+                tween.AddEventOnetime
+                (
+                    EventType.BackwardFinish,
+                    () =>
+                    {
+                        VisitManager.StartExitVisiteeGarden();
+                        VisitManager.OnStartExitVisiteeGarden();
+                    }
+                );
+
+                AudioManager.PlayClip(AudioLabel.Bubble);
+            }
+        );
+
+        #endregion
+
+        #region C_EnterPlazaRoom
+
+        LanguageManager.OnLanguageChange += OnLanguageChange;
+        OnLanguageChange(CurrentLanguage.Default, LanguageManager.CurrentLanguage);
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_EnterPlazaRoom,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                PlazaRoomManager.OpenJoinRoomPanel();
+            }
+        );
+
+        #endregion
+
+        #region C_NickNameBK
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.C_NickNameBK,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+                NickNameManager.ShowNickNameSettingPanel();
+            }
+        );
+
+        #endregion
+
+        #region C_CommentParent
+
+        ResourceManager.Get(CanvasLabel.C_CommentParent).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region C_RightPanel
+
+        ResourceManager.Get(CanvasLabel.C_RightSidePanel).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.C_RightSidePanelPosition).position, 0.25f, false, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).CreateTweenCG(0, 0.25f, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_OpenSidePanelButton, () =>
+            {
+                AudioManager.PlayClip(ResourceLabel.BtnClip);
+                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenBacVec();
+                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenBacCG();
+                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
+                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_CloseSidePanelButton, () =>
+            {
+                AudioManager.PlayClip(ResourceLabel.BtnClip);
+                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenForVec();
+                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenForCG();
+                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
+                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, true);
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region D
+
+        ResourceManager.SetText(CanvasLabel.D_ScoreLab);
+        ResourceManager.SetText(CanvasLabel.D_BeginLab, Language.GetStr(LanguageLabel.UI__D_BeginLab0));
+        ResourceManager.SetText(CanvasLabel.D_StatusLab, Language.GetStr(LanguageLabel.UI__D_StatusLab0));
+
+        ResourceManager.SetSprite(CanvasLabel.D_Rip2, ResourceManager.LoadSprite(ResourceLabel.Rip, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.D_Water2, ResourceManager.LoadSprite(ResourceLabel.Water, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.D_Fertilize2, ResourceManager.LoadSprite(ResourceLabel.Fertilize, Folder.Scene));
+
+        ResourceManager.SetSprite(CanvasLabel.Da_Coin, ResourceManager.LoadSprite(ResourceLabel.Gold, Folder.Atlas));
+        ResourceManager.SetSprite(CanvasLabel.Da_Star1, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.Da_Star2, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.Da_Star3, ResourceManager.LoadSprite(ResourceLabel.MinigameRateStar, Folder.Scene));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescA), new MulLanStr(LanguageLabel.UI__D_DescA));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescB), new MulLanStr(LanguageLabel.UI__D_DescB));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescC), new MulLanStr(LanguageLabel.UI__D_DescC));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_FindMissingGameDesc), new MulLanStr(LanguageLabel.UI__D_FindMissingGameDesc));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_Lab), new MulLanStr(LanguageLabel.UI__Da_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_QuitLab), new MulLanStr(LanguageLabel.UI__Da_QuitLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_ScoreTit), new MulLanStr(LanguageLabel.UI__Da_ScoreTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_CancelLab), new MulLanStr(LanguageLabel.UI__Da_CancelLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_GetAwardLab), new MulLanStr(LanguageLabel.UI__Da_GetAwardLab));
+
+        #region D_Rip
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Rip2,
+            () =>
+            {
+                MiniGameManager.OnPunchGameClick(OpType.Rip);
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.D_Rip2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.D_Rip2).TweenBacScale();
+        };
+
+        #endregion
+
+        #region D_Quit
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Quit,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                MiniGameManager.Pause = true;
+
+                ResourceManager.Get(CanvasLabel.Da_Info).TweenForCG();
+
+                ResourceManager.Get(CanvasLabel.Da_CoinGroup).GetTweenScale().InDestination = true;
+                ResourceManager.Get(CanvasLabel.Da_DiamondGroup).GetTweenScale().InDestination = true;
+
+                ResourceManager.SetText(CanvasLabel.Da_Tit, Language.GetStr(LanguageLabel.UI__Da_Tit0));
+                ResourceManager.SetText(CanvasLabel.Da_CoinLab, string.Format("{0}+", MinigameDisplayCoinAwardRatio*Manager.GardenLevel));
+                ResourceManager.SetText(CanvasLabel.Da_DiamondLab, string.Format("{0}+", MinigameDisplayDiamondAward));
+
+                ResourceManager.SetActive(CanvasLabel.Da_Lab, true);
+                ResourceManager.SetActive(CanvasLabel.Da_Quit, true);
+                ResourceManager.SetActive(CanvasLabel.Da_Cancel, true);
+                ResourceManager.SetActive(CanvasLabel.Da_CoinLab, true);
+                ResourceManager.SetActive(CanvasLabel.Da_DiamondLab, true);
+
+                ResourceManager.SetActive(CanvasLabel.Da_HGroup1, false);
+                ResourceManager.SetActive(CanvasLabel.Da_ScoreTit, false);
+                ResourceManager.SetActive(CanvasLabel.Da_GetAward, false);
+                ResourceManager.SetActive(CanvasLabel.Da_FlowerGroup, false);
+                ResourceManager.SetActive(CanvasLabel.Da_DiamondGroup, true);
+
+                ResourceManager.Get<Text>(CanvasLabel.Da_CoinLab).Resize(true, false);
+                ResourceManager.Get<Text>(CanvasLabel.Da_DiamondLab).Resize(true, false);
+
+                ResourceManager.Get<ContentSizeFitter>(CanvasLabel.Da_CoinGroup).enabled = true;
+                ResourceManager.Get<ContentSizeFitter>(CanvasLabel.Da_DiamondGroup).enabled = true;
+
+                if (!MinigameAward.HaveNewFlowerFlag)
+                {
+                    ResourceManager.Get(CanvasLabel.Da_FlowerGroup).GetTweenScale().InDestination = true;
+
+                    FlowerInfo flowerInfo = GardenManager.GetFlowerInfo(MinigameAward.UnlockFlowerID);
+
+                    ResourceManager.SetActive(CanvasLabel.Da_Flower, true);
+
+                    ResourceManager.Get<Image>(CanvasLabel.Da_FlowerIcon).sprite = flowerInfo.Icon;
+                    ResourceManager.Get<Image>(CanvasLabel.Da_FlowerIcon).Resize(true, 0.25f, 0.25f);
+
+                    ResourceManager.SetText(CanvasLabel.Da_FlowerLab, Language.GetStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.FlowerName, flowerInfo.FullID)));
+
+                    Auxiliary.Instance.DelayCall
+                    (
+                        () =>
+                        {
+                            ResourceManager.Get<Text>(CanvasLabel.Da_FlowerLab).SetLayoutDirty();
+                        },
+                        2
+                    );
+                }
+            }
+        );
+
+        #endregion
+
+        #region D_Begin
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Begin,
+            () =>
+            {
+                MiniGameManager.GamePrepare();
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+            }
+        );
+
+        #endregion
+
+        #region D_Water
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Water2,
+            () =>
+            {
+                MiniGameManager.OnPunchGameClick(OpType.Water);
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.D_Water2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.D_Water2).TweenBacScale();
+        };
+
+        #endregion
+
+        #region D_Fertilize
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.D_Fertilize2,
+
+            () =>
+            {
+                MiniGameManager.OnPunchGameClick(OpType.Fertilize);
+            }
+        );
+
+        tween = ResourceManager.Get(CanvasLabel.D_Fertilize2).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.D_Fertilize2).TweenBacScale();
+        };
+
+        #endregion
+
+        #region D_TimerIcon
+
+        ResourceManager.Get<Image>(CanvasLabel.D_TimerIcon).material = ResourceManager.Load<Material>(ResourceLabel.TimerMat, Folder.UI);
+
+        #endregion
+
+        #region D_MiniGame
+
+        tween = ResourceManager.Get(CanvasLabel.D_MiniGame).CreateTweenCG(0, 1, 0.5f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+
+            AudioManager.GardenThemeAudio.TweenBacAudio();
+
+            ResourceManager.SetText(CanvasLabel.D_ScoreLab);
+            ResourceManager.SetText(CanvasLabel.D_BeginLab, Language.GetStr(LanguageLabel.UI__D_BeginLab0));
+            ResourceManager.SetText(CanvasLabel.D_StatusLab, Language.GetStr(LanguageLabel.UI__D_StatusLab0));
+
+            GardenManager.InMinigameFlag = false;
+        };
+
+        tween.OnForwardFinish += () =>
+        {
+            AudioManager.MinigameAudio.TweenForAudio();
+
+            ResourceManager.SetActive(GardenLabel.GardenPivot, false);
+
+            GardenManager.RetrieveAllElf();
+            IAPManager.RetrieveADChest();
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            AudioManager.MinigameAudio.TweenBacAudio();
+
+            ResourceManager.SetActive(GardenLabel.GardenPivot, true);
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
+
+            AudioManager.GardenThemeAudio.TweenForAudio();
+
+            GardenManager.InMinigameFlag = true;
+
+            #region PunchGame
+
+            if (MiniGameManager.miniGameType == MiniGameType.Punch)
+            {
+                for (int i = 0; i < MiniGameManager.PunchGameOperateList.Count; i++)
+                {
+                    MiniGameManager.PunchGameOperateList[i].RetrieveFlower();
+
+                    MiniGameManager.PunchGameOperateList.RemoveAt(i--);
+                }
+
+                for (int i = 0; i < MiniGameManager.MinigameIdleFlowerList.Count; i++)
+                {
+                    MiniGameManager.MinigameIdleFlowerList[i].RetrieveFlower();
+
+                    MiniGameManager.MinigameIdleFlowerList.RemoveAt(i--);
+                }
+            }
+
+            #endregion
+
+            #region MemoryGame
+
+            if (MiniGameManager.miniGameType == MiniGameType.Memory)
+            {
+                for (int i = 0; i < MiniGameManager.MemoryGameFadeList.Count; i++)
+                {
+                    MiniGameManager.MemoryGameFadeList[i].FlowerIcon.GetTweenSr().InOrigin = true;
+
+                    MiniGameManager.MemoryGameFadeList[i].RetrieveFlower();
+
+                    MiniGameManager.MemoryGameFadeList.RemoveAt(i--);
+                }
+
+                for (int i = 0; i < MiniGameManager.MinigameIdleFlowerList.Count; i++)
+                {
+                    MiniGameManager.MinigameIdleFlowerList[i].RetrieveFlower();
+
+                    MiniGameManager.MinigameIdleFlowerList.RemoveAt(i--);
+                }
+            }
+
+            #endregion
+
+            #region FindSoloGame 
+
+            if (MiniGameManager.miniGameType == MiniGameType.FindSolo)
+            {
+                MiniGameManager.MinigameIdleFlowerList.ForEach
+                (
+                    flower =>
+                    {
+                        flower.FlowerIcon.GetTweenSr().InOrigin = true;
+
+                        flower.RetrieveFlower();
+                    },
+                    true
+                );
+            }
+
+            #endregion
+
+            #region FindMissingGame 
+
+            if (MiniGameManager.miniGameType == MiniGameType.FindMissing)
+            {
+                MiniGameManager.MinigameIdleFlowerList.ForEach
+                (
+                    flower =>
+                    {
+                        flower.FlowerIcon.GetTweenSr().InOrigin = true;
+
+                        flower.RetrieveFlower();
+                    },
+                    true
+                );
+            }
+
+            #endregion
+        };
+
+        #endregion
+
+        #region D_PrepareLab
+
+        Text text = ResourceManager.Get<Text>(CanvasLabel.D_PrepareLab);
+
+        ResourceManager.Get(CanvasLabel.D_PrepareLab).CreateStreamScale
+        (
+            new List<float>() {0.5f, 0, 0.5f, 0, 0.5f, 0, 0.5f},
+            new List<float>() {0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.25f, 0.125f},
+            new List<VecPair>() {new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(2, 2, 2, 1, 1, 1), new VecPair(1, 1, 1, 0, 0, 0), new VecPair(0, 0, 0, 1, 1, 1), new VecPair(1, 1, 1, 1.5f, 0, 1)},
+            false,
+            false,
+            Curve.EaseOutQuad,
+            false,
+            new List<UnityAction>()
+            {
+                () =>
+                {
+                    text.text = "3";
+                    AudioManager.PlayClip(AudioLabel.Bubble);
+                },
+                () => { },
+                () =>
+                {
+                    text.text = "2";
+                    ;
+                    AudioManager.PlayClip(AudioLabel.Bubble);
+                },
+                () => { },
+                () =>
+                {
+                    text.text = "1";
+                    ;
+                    AudioManager.PlayClip(AudioLabel.Bubble);
+                },
+                () => { },
+                () =>
+                {
+                    text.text = Language.GetStr(LanguageLabel.UI__D_PrepareLab);
+                    AudioManager.PlayClip(AudioLabel.GetCurrent);
+                },
+                () => { },
+            }
+        );
+
+        #endregion
+
+
+        #region Da_Star
+
+        ResourceManager.Get(CanvasLabel.Da_Star1).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Da_Star2).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Da_Star3).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_Info
+
+        ResourceManager.Get(CanvasLabel.Da_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_Quit
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Da_Quit,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
+                ResourceManager.Get(GardenLabel.Minigame).TweenBacVec();
+                ResourceManager.Get(CanvasLabel.D_MiniGame).TweenBacCG();
+
+                MiniGameManager.GameEnd();
+            }
+        );
+
+        #endregion
+
+        #region Da_Score
+
+        ResourceManager.Get(CanvasLabel.Da_ScoreTit).CreateTweenFont(1, 25, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_Cancel
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Da_Cancel,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
+
+                MiniGameManager.Pause = false;
+            }
+        );
+
+        #endregion
+
+        #region Da_GetAward
+
+        ResourceManager.Get(CanvasLabel.Da_GetAward).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Da_GetAward,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.GetCurrent);
+
+                ResourceManager.Get(CanvasLabel.Da_Info).TweenBacCG();
+                ResourceManager.Get(GardenLabel.Minigame).TweenBacVec();
+                ResourceManager.Get(CanvasLabel.D_MiniGame).TweenBacCG();
+
+                InfoBoxManager.GardenInfoBox.Display(MinigameAward.DisplayContent, 10f, Color.white, Lib.Atlas);
+            }
+        );
+
+        #endregion
+
+        #region Da_CoinGroup
+
+        ResourceManager.Get(CanvasLabel.Da_CoinGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_FlowerGroup
+
+        ResourceManager.Get(CanvasLabel.Da_FlowerGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Da_DiamondGroup
+
+        ResourceManager.Get(CanvasLabel.Da_DiamondGroup).CreateTweenScale(new Vector3(), new Vector3(1, 1, 1), 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+
+        #region D_Mask
+
+        ResourceManager.Get(CanvasLabel.D_Mask).CreateTweenGra(0, 180/255f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region D_FlowerBtn
+
+        #region MemoryGame
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon1).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root0 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root0.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon2).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root1 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root1.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon3).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root2 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root2.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon4).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root3 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root3.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon5).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root4 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root4.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon6).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root8 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root8.StartBackward();
+        };
+
+
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn1, () => { MiniGameManager.OnMemoryGameClick(0, 0); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn2, () => { MiniGameManager.OnMemoryGameClick(1, 1); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn3, () => { MiniGameManager.OnMemoryGameClick(2, 3); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn4, () => { MiniGameManager.OnMemoryGameClick(3, 4); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn5, () => { MiniGameManager.OnMemoryGameClick(4, 6); });
+        ResourceManager.AddButtonEvent(CanvasLabel.D_FlowerBtn6, () => { MiniGameManager.OnMemoryGameClick(5, 7); });
+
+        #endregion
+
+        #region FindSoloGame
+
+        ResourceManager.Get(CanvasLabel.D_FlowerBtn7).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FlowerBtn8).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FlowerBtn9).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon7).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root5 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root5.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon8).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root6 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root6.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FlowerIcon9).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root7 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root7.StartBackward();
+        };
+
+        #endregion
+
+        #region FindMissingGame
+
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton1).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon0).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root9 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root9.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon1).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root10 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root10.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon2).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root11 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root11.StartBackward();
+        };
+
+        #endregion
+
+        #endregion
+
+        #endregion
+
+        #region E
+
+        #region E_Show
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.E_ShowBtn,
+            () =>
+            {
+                if (ResourceManager.Get(CanvasLabel.E_Group).gameObject.activeSelf)
+                {
+                    ResourceManager.SetActive(CanvasLabel.E_Group, false);
+                    ResourceManager.SetActive(CanvasLabel.Ea_Central, false);
+
+                    ResourceManager.SetText(CanvasLabel.E_ShowLab, "显示");
+                }
+                else
+                {
+                    ResourceManager.SetActive(CanvasLabel.E_Group, true);
+
+                    ResourceManager.SetText(CanvasLabel.E_ShowLab, "隐藏");
+                }
+            }
+        );
+
+        #endregion
+
+        #region E_CentralBtn
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.E_CentralBtn,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.Ea_Central, true);
+            }
+        );
+
+        #endregion
+
+
+        #region Ea_Free
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Free,
+            () =>
+            {
+                TutorialManager.PayExempt = true;
+            }
+        );
+
+        #endregion
+
+        #region Ea_Send
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Send,
+            () =>
+            {
+                HttpManager.UploadConfig();
+            }
+        );
+
+        #endregion
+
+        #region Ea_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Close,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.Ea_Central, false);
+            }
+        );
+
+        #endregion
+
+        #region Ea_Reset
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Reset,
+            () =>
+            {
+                ConfigManager.ResetConfigDocument();
+            }
+        );
+
+        #endregion
+
+        #region Ea_Unlock
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Unlock,
+            () =>
+            {
+                //ManaDebug.Log(ManaAudio.MusicTheme.isPlaying + " " + ManaAudio.MusicTheme.volume + " " + ManaAudio.MusicTheme.spatialBlend + " " + ManaAudio.MusicTheme.mute + " " + ManaAudio.MusicTheme.time);
+
+                GardenManager.UnlockSlot();
+            }
+        );
+
+        #endregion
+
+        #region Ea_Lottery
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Lottery,
+            () =>
+            {
+                SignManager.SignIndex = 7;
+                SignManager.LastSignTime = new DateTime(2017, 2, 3);
+
+                ResourceManager.Get(CanvasLabel.B_SignIn).TweenForCG();
+                ResourceManager.Get(CanvasLabel.Bb_SignIn).TweenForCG();
+            }
+        );
+
+        #endregion
+
+
+        #region Ea_Cool
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Cool,
+            () =>
+            {
+                Manager.MinigameCDTimer = 0;
+            }
+        );
+
+        #endregion
+
+        #region Ea_Score
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_Score,
+            () =>
+            {
+                MiniGameManager.Score = 1000;
+            }
+        );
+
+        #endregion
+
+        #region Ea_End
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_End,
+            () =>
+            {
+                MiniGameManager.GameTimer = 45;
+            }
+        );
+
+        #endregion
+
+
+        #region Ea_IncreaseFR
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_IncreaseFR,
+            () =>
+            {
+                Application.targetFrameRate += 1;
+            }
+        );
+
+        #endregion
+
+        #region Ea_DecreaseFR
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Ea_DecreaseFR,
+            () =>
+            {
+                Application.targetFrameRate -= 1;
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region F
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_ElfLab), new MulLanStr(LanguageLabel.UI__F_ElfLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_StoreLab), new MulLanStr(LanguageLabel.UI__F_StoreLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_MagicLab), new MulLanStr(LanguageLabel.UI__F_MagicLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.F_GardenLab), new MulLanStr(LanguageLabel.UI__F_GardenLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_Tit), new MulLanStr(LanguageLabel.UI__Fg_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_Lab), new MulLanStr(LanguageLabel.UI__Fg_Lab0));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Fg_BtnLab), new MulLanStr(LanguageLabel.UI__Fg_BtnLab));
+
+        TextPlus textPlus = ResourceManager.Get<TextPlus>(CanvasLabel.Fe_BtnLab);
+        textPlus.MaxLineHeight = 16.71891f;
+
+        ResourceManager.Get(CanvasLabel.F_TipBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #region F_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.F_Manage).TweenBacGra();
+            }
+        );
+
+        #endregion
+
+        #region F_Flower
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Flower,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.G_Flower).TweenForCG();
+            }
+        );
+
+        #endregion
+
+        #region F_TabBtn
+
+        ResourceManager.Get(CanvasLabel.F_Elf).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.F_Store).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.F_Magic).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.F_Garden).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Elf,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.F_Elf).TweenForScale();
+                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.F_Elf).SetAsLastSibling();
+                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Fd_Elf, true);
+                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
+                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
+                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
+
+                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, true);
+                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
+
+                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Store,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Store).TweenForScale();
+                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.F_Store).SetAsLastSibling();
+                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
+                ResourceManager.SetActive(CanvasLabel.Fc_Store, true);
+                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
+                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
+
+                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, true);
+                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
+
+                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Magic,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Magic).TweenForScale();
+                ResourceManager.Get(CanvasLabel.F_Garden).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.F_Magic).SetAsLastSibling();
+                ResourceManager.Get(CanvasLabel.F_Garden).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
+                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
+                ResourceManager.SetActive(CanvasLabel.Fb_Magic, true);
+                ResourceManager.SetActive(CanvasLabel.Fa_Garden, false);
+
+                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, true);
+                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, false);
+
+                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_Garden,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.F_Elf).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Store).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Magic).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.F_Garden).TweenForScale();
+
+                ResourceManager.Get(CanvasLabel.F_Elf).SetSiblingIndex(2);
+                ResourceManager.Get(CanvasLabel.F_Store).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.F_Magic).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.F_Garden).SetAsLastSibling();
+
+                ResourceManager.Get<Button>(CanvasLabel.F_Elf).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Store).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Magic).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.F_Garden).interactable = false;
+
+                ResourceManager.SetActive(CanvasLabel.Fd_Elf, false);
+                ResourceManager.SetActive(CanvasLabel.Fc_Store, false);
+                ResourceManager.SetActive(CanvasLabel.Fb_Magic, false);
+                ResourceManager.SetActive(CanvasLabel.Fa_Garden, true);
+
+                ResourceManager.SetActive(CanvasLabel.F_ElfIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_StoreIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_MagicIcon, false);
+                ResourceManager.SetActive(CanvasLabel.F_GardenIcon, true);
+
+                ResourceManager.SetActive(CanvasLabel.Ff_SkillBar, true);
+            }
+        );
+
+        #endregion
+
+        #region F_Manage
+
+        tween = ResourceManager.Get(CanvasLabel.F_Manage).CreateTweenGra(0, 180/255f, 0.5f, true, true, Curve.EaseOutQuad);
+
+        var tween1 = tween;
+        tween.OnForwardStart += () =>
+        {
+            tween1.Duration = 0.5f;
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            tween1.Duration = 0.25f;
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.F_Manage0).TweenBacVec();
+        };
+
+
+        tween = ResourceManager.Get(CanvasLabel.F_Manage0).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.F_PosTra).position, 0.5f, false, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+
+            ResourceManager.SetActive(CanvasLabel.F_Manage, true);
+        };
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.F_Manage).TweenForGra();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+
+            ResourceManager.SetActive(CanvasLabel.F_Manage, false);
+        };
+
+        #endregion
+
+        #region F_PersonBtn
+
+        List<Sprite> spriteList = new List<Sprite>();
+        foreach (var skill in Manager.SkillList)
+        {
+            if (spriteList.Contains(skill.Icon))
+            {
+                continue;
+            }
+            spriteList.Add(skill.Icon);
+        }
+        SpriteAsset.AddBundleSpriteInfo(spriteList.ToArray());
+
+        Sprite sprite;
+        if (Initializer.Instance.DebugMode)
+        {
+            Texture2D texture = ResourceManager.LoadSprite("4大技能1", Folder.Atlas2).texture;
+            sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
+        }
+        else
+        {
+            sprite = ResourceManager.LoadSprite(ResourceLabel.SkillAtlas, Folder.Atlas2);
+        }
+
+        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).Scale = 1.8f;
+        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).SetY = true;
+        ResourceManager.Get<TextPlus>(CanvasLabel.K_Lab1).Y = 0;
+        ResourceManager.Get<Image>(CanvasLabel.K_ImagePlus1).sprite = sprite;
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_PersonBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                Bubble.Show(Language.GetStr(LanguageLabel.UI__F_PersonBtn0), null, null, ResourceManager.LoadSprite("4大技能1", Folder.UI));
+                string content0 = Language.GetStr(LanguageLabel.UI__F_PersonBtn1);
+                string person = "";
+                Ability gardenAbility = Manager.SkillDictionary["Ability1"] as Ability;
+                float increasePerson = Manager.CurrentPerson - gardenAbility.NewPerson;
+                if (increasePerson > 0.001f)
+                {
+                    person = Auxiliary.ShrinkBigNumberStr(gardenAbility.NewPerson * 60) + "<color=#00ff00ff>+" + Auxiliary.ShrinkBigNumberStr(increasePerson*60) + "</color>";
+                }
+                if (Manager.ExtraPersonSourceSpritesName.Count > 0)
+                {
+                    StringBuilder stringBuilder = new StringBuilder();
+                    for (int i = 0; i < MaxSkillIconForIncomeDetailPanel; i++)
+                    {
+                        if (i < Manager.ExtraPersonSourceSpritesName.Count)
+                        {
+                            stringBuilder.Append(string.Format("<({0})>", Manager.ExtraPersonSourceSpritesName[i]));
+                        }
+                        if (i < MaxSkillIconForIncomeDetailPanel - 1)
+                        {
+                            stringBuilder.Append(" ");
+                        }
+                    }
+                    string content1 = Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, stringBuilder.ToString());
+                    if (Manager.ExtraPersonSourceSpritesName.Count > MaxSkillIconForIncomeDetailPanel)
+                    {
+                        Bubble.LinkButton.GetComponent<Text>().text = Language.GetStr(LanguageLabel.UI__F_LinkButton);
+                        Bubble.LinkButton.SetActive(true);
+                        Bubble.LinkButton.onClick.RemoveAllListeners();
+                        Bubble.LinkButton.onClick.AddListener
+                        (
+                            () =>
+                            {
+                                AudioManager.PlayClip(ResourceLabel.BubbleClip);
+                                AlertPanel.Show(Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, ""), Manager.ExtraPersonSourceSpritesName);
+                            }
+                        );
+                        content1 += "\u3000\u3000\u3000\u3000";
+                    }
+                    Bubble.Lab1.SetActive(true);
+                    Bubble.Lab1.text = content1;
+                }
+                content0 = content0.Replace(TransferLabel.Value, person);
+                Bubble.Lab2.text = content0;
+                Bubble.Lab2.SetActive(true);
+            }
+        );
+
+        #endregion
+
+        #region F_PersonLab
+
+        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.F_PersonLab), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+
+        #endregion
+
+        #region F_CoinPersonBtn
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.F_CoinPersonBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+
+                Bubble.Show(Language.GetStr(LanguageLabel.UI__F_CoinPersonBtn0), null, null, ResourceManager.LoadSprite("绿-免费金币", Folder.UI));
+                string content0 = Language.GetStr(LanguageLabel.UI__F_CoinPersonBtn1);
+                string coinPerson = "";
+                Ability gardenAbility = Manager.SkillDictionary["Ability1"] as Ability;
+                float increaseCoinPerson = Manager.CurrentCoinPerson - gardenAbility.NewCoinPerson;
+                if (increaseCoinPerson > 0.001f)
+                {
+                    coinPerson = Auxiliary.ShrinkBigNumberStr(gardenAbility.NewCoinPerson) + "<color=#00ff00ff>+" + Auxiliary.ShrinkBigNumberStr(increaseCoinPerson) + "</color>";
+                }
+                if (Manager.ExtraCoinPersonSourceSpritesName.Count > 0)
+                {
+                    StringBuilder stringBuilder = new StringBuilder();
+                    for (int i = 0; i < MaxSkillIconForIncomeDetailPanel; i++)
+                    {
+                        if (i < Manager.ExtraCoinPersonSourceSpritesName.Count)
+                        {
+                            stringBuilder.Append(string.Format("<({0})>", Manager.ExtraCoinPersonSourceSpritesName[i]));
+                        }
+                        if (i < MaxSkillIconForIncomeDetailPanel - 1)
+                        {
+                            stringBuilder.Append(" ");
+                        }
+                    }
+                    string content1 = Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, stringBuilder.ToString());
+                    if (Manager.ExtraCoinPersonSourceSpritesName.Count > MaxSkillIconForIncomeDetailPanel)
+                    {
+                        Bubble.LinkButton.GetComponent<Text>().text = Language.GetStr(LanguageLabel.UI__F_LinkButton);
+                        Bubble.LinkButton.SetActive(true);
+                        Bubble.LinkButton.onClick.RemoveAllListeners();
+                        Bubble.LinkButton.onClick.AddListener
+                        (
+                            () =>
+                            {
+                                AudioManager.PlayClip(ResourceLabel.BubbleClip);
+                                AlertPanel.Show(Language.GetStr(LanguageLabel.UI__F_IncreaseSource).Replace(TransferLabel.Value, ""), Manager.ExtraCoinPersonSourceSpritesName);
+                            }
+                        );
+                        content1 += "\u3000\u3000\u3000\u3000";
+                    }
+                    Bubble.Lab1.SetActive(true);
+                    Bubble.Lab1.text = content1;
+                }
+                content0 = content0.Replace(TransferLabel.Value, coinPerson);
+                Bubble.Lab2.text = content0;
+                Bubble.Lab2.SetActive(true);
+            }
+        );
+
+        #endregion
+
+        #region F_CoinPersonLab
+
+        tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.F_CoinPersonLab), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad);
+
+        tween.PingPong = true;
+
+        #endregion
+
+
+        #region Fe_Info
+
+        ResourceManager.Get(CanvasLabel.Fe_Info).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Fe_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Fe_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.Fe_Info).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+
+        #region Fg_Btn
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Fg_Btn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = false;
+
+                ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab1));
+
+                HttpManager.Login(LoginCallback);
+            }
+        );
+
+        #endregion
+
+        #region Fg_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Fg_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.Fg_Reconnect).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region Fg_Reconnect
+
+        tween = ResourceManager.Get(CanvasLabel.Fg_Reconnect).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab0));
+        };
+
+        #endregion
+
+        #endregion
+
+        #region G
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_Tit), new MulLanStr(LanguageLabel.UI__G_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_SpecialLab), new MulLanStr(LanguageLabel.UI__G_SpecialLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_RegularLab), new MulLanStr(LanguageLabel.UI__G_RegularLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.G_RetrieveLab), new MulLanStr(LanguageLabel.UI__G_RetrieveLab));
+
+        #region G_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.G_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.G_Flower).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region G_Flower
+
+        tween = ResourceManager.Get(CanvasLabel.G_Flower).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            AudioManager.PlayClip(AudioLabel.Bubble);
+
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+
+            if (GardenManager.TotalUnlockSpecialFlower == 0)
+            {
+                ResourceManager.SetActive(CanvasLabel.G_Special, false);
+            }
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            foreach (var kv in GardenManager.GetFlowerInfoDict())
+            {
+                //Debug.Log(kv.Value);
+                //Debug.Log(kv.Value.UIPartical);
+                //Debug.Log(kv.Value.UIPartical.Animator);
+                if (kv.Value.UIPartical.Animator == null)
+                {
+                    continue;
+                }
+                kv.Value.UIPartical.Animator.SetTrigger("Stop");
+            }
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+            ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
+        };
+
+        #endregion
+
+        #region G_Special
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.G_Special,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.SetActive(CanvasLabel.G_SpecialScrr, true);
+                ResourceManager.SetActive(CanvasLabel.G_RegularScrr, false);
+
+                ResourceManager.Get<Button>(CanvasLabel.G_Special).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.G_Regular).interactable = true;
+            }
+        );
+
+        #endregion
+
+        #region G_Regular
+
+        ResourceManager.Get(CanvasLabel.G_Regular).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.G_PosTraL).position, ResourceManager.Get(CanvasLabel.G_PosTraR).position, 0.25f, false, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.G_Regular,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.SetActive(CanvasLabel.G_SpecialScrr, false);
+                ResourceManager.SetActive(CanvasLabel.G_RegularScrr, true);
+
+                ResourceManager.Get<Button>(CanvasLabel.G_Special).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.G_Regular).interactable = false;
+            }
+        );
+
+        #endregion
+
+        #region G_Retrieve
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.G_Retrieve,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.G_Flower).TweenBacCG();
+
+                GardenManager.RetriveAllFlower();
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region H
+
+        #region H_Close
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.H_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.H_FlowerCard).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region H_FlowerCard
+
+        tween = ResourceManager.Get(CanvasLabel.H_FlowerCard).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.H_Icon1).Find(string.Format("{0}/{1}", CanvasLabel.H_UIFlashLight, CanvasLabel.H_UIFlash)).SetActive(false);
+            ResourceManager.Get(CanvasLabel.H_Icon1).Find(string.Format("{0}/{1}", CanvasLabel.H_UIFlashLight, CanvasLabel.H_UIParticleSystem)).SetActive(false);
+
+            if (GardenManager.FlowerCardMaterialTween != null)
+                GardenManager.FlowerCardMaterialTween.Pause();
+        };
+
+        #endregion
+
+        #region H_Icon2
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.H_Icon2,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                GardenManager.PlantFlower(GardenManager.SelectFlowerInfo);
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region I
+
+        TweenCG tweenCG = ResourceManager.Get(CanvasLabel.I_BlackMask).CreateTweenCG(1, 0, 1f, true, false, Curve.EaseOutQuad);
+        tweenCG.CG = false;
+
+        #endregion
+
+        #region J
+
+        ResourceManager.Get(CanvasLabel.C_Info).CreateTweenCG(0, 0.9f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region L
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicOnLab), new MulLanStr(LanguageLabel.UI__L_On));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicOffLab), new MulLanStr(LanguageLabel.UI__L_Off));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioOnLab), new MulLanStr(LanguageLabel.UI__L_On));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioOffLab), new MulLanStr(LanguageLabel.UI__L_Off));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_Tit), new MulLanStr(LanguageLabel.UI__L_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_UserTit), new MulLanStr(LanguageLabel.UI__L_UserTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioTit), new MulLanStr(LanguageLabel.UI__L_AudioTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_SupportTit), new MulLanStr(LanguageLabel.UI__L_SupportTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_LanguageTit), new MulLanStr(LanguageLabel.UI__L_LanguageTit));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_AudioLab), new MulLanStr(LanguageLabel.UI__L_AudioLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_MusicLab), new MulLanStr(LanguageLabel.UI__L_MusicLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ReportLab), new MulLanStr(LanguageLabel.UI__L_ReportLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ChangeLab), new MulLanStr(LanguageLabel.UI__L_ChangeLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_CreditsLab), new MulLanStr(LanguageLabel.UI__L_CreditsLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ShareLab), new MulLanStr(LanguageLabel.UI__L_ShareLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ConfirmLab), new MulLanStr(LanguageLabel.UI__L_ConfirmLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_ResetLab), new MulLanStr(LanguageLabel.UI__L_ResetLab0));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_TraChiLab), new MulLanStr(LanguageLabel.UI__L_TraChiLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_SimChiLab), new MulLanStr(LanguageLabel.UI__L_SimChiLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.L_EnglishLab), new MulLanStr(LanguageLabel.UI__L_EnglishLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_Tit), new MulLanStr(LanguageLabel.UI__La_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_CancelLab), new MulLanStr(LanguageLabel.Common__Cancel));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.La_Placeholder), new MulLanStr(LanguageLabel.UI__La_Placeholder));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Tit), new MulLanStr(LanguageLabel.UI__Lb_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_CancelLab), new MulLanStr(LanguageLabel.Common__Cancel));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Placeholder), new MulLanStr(LanguageLabel.UI__Lb_Placeholder));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lb_Placeholder0), new MulLanStr(LanguageLabel.UI__Lb_Placeholder0));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Lc_CreditsContent), new MulLanStr(LanguageLabel.UI__Lc_CreditsContent));
+
+        ResourceManager.SetText(CanvasLabel.L_UserLab, ConfigManager.GetStringFormConfig(PlayerConfigLabel.ID));
+
+        #region L_Setting
+
+        tween = ResourceManager.Get(CanvasLabel.L_Setting).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+        };
+
+        #endregion
+
+        #region L_Confirm
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.L_Setting).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+
+        #region L_CreditsMask
+
+        ResourceManager.Get(CanvasLabel.Lc_CreditsMask).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Lc_CreditsMask,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenBacCG();
+
+                Auxiliary.Instance.StopCoroutine(StopPlayCreditsRoutine);
+            }
+        );
+
+        #endregion
+
+        #region L_CreditsContent
+
+        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.Lc_Pos).position, 10f, false, false, true, Curve.Linear);
+
+        #endregion
+
+        #region L_CreditsBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_CreditsBtn,
+            () =>
+            {
+                ShowCredits();
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+            }
+        );
+
+        #endregion
+
+
+        #region L_ShareBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_ShareBtn,
+            () =>
+            {
+                IAPManager.Share();
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+            }
+        );
+
+        if (Application.isEditor)
+        {
+            ResourceManager.Get<Button>(CanvasLabel.L_ShareBtn).interactable = false;
+        }
+
+        #endregion
+
+        #region L_AudioBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_AudioBtn,
+            () =>
+            {
+                AudioManager.Instance.AudioSwitch();
+
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+            }
+        );
+
+        #endregion
+
+        #region L_MusicBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_MusicBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                AudioManager.Instance.MusicSwitch();
+            }
+        );
+
+        #endregion
+
+        #region L_ReportBtn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_ReportBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.Lb_Info).TweenForCG();
+            }
+        );
+
+        #endregion
+
+        #region L_ChangeBtn
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.L_ChangeBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.La_Info).TweenForCG();
+            }
+        );
+
+        #endregion
+
+        #region L_Reset
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.L_ResetBtn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                Bubble.Show
+                (
+                    null,
+                    Language.GetStr(LanguageLabel.UI__L_ResetLab1),
+                    null,
+                    null,
+                    () =>
+                    {
+                        ConfigManager.ResetConfigDocument();
+                    }
+                );
+            }
+        );
+
+        #endregion
+
+
+        #region L_TraChi
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_TraChi,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = true;
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.Orange;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.LightGray;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.LightGray;
+
+                LanguageManager.SwitchLanguage(CurrentLanguage.ChineseTraditional);
+            }
+        );
+
+        #endregion
+
+        #region L_SimChi
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_SimChi,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = true;
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.LightGray;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.Orange;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.LightGray;
+
+                LanguageManager.SwitchLanguage(CurrentLanguage.ChineseSimplified);
+            }
+        );
+
+        #endregion
+
+        #region L_English
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.L_English,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).interactable = false;
+
+                ResourceManager.Get<Button>(CanvasLabel.L_TraChi).image.color = Lib.LightGray;
+                ResourceManager.Get<Button>(CanvasLabel.L_SimChi).image.color = Lib.LightGray;
+                ResourceManager.Get<Button>(CanvasLabel.L_English).image.color = Lib.Orange;
+
+                LanguageManager.SwitchLanguage(CurrentLanguage.English);
+            }
+        );
+
+        #endregion
+
+        if (Initializer.Instance.AuditEdition)
+        {
+            ResourceManager.SetActive(CanvasLabel.L_TraChi, false);
+            ResourceManager.SetActive(CanvasLabel.L_English, false);
+        }
+
+
+        #region La_Info
+
+        ResourceManager.Get(CanvasLabel.La_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region La_Cancel
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.La_Cancel,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.La_Info).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region La_Confirm
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.La_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                string id = ResourceManager.Get<InputField>(CanvasLabel.La_InputField).text;
+
+                if (id == HttpManager.ID)
+                {
+                    Bubble.Show(null, Language.GetStr(LanguageLabel.Common__IdenticalID));
+                }
+                else
+                {
+                    Manager.SwitchConfig(id);
+                }
+            }
+        );
+
+        #endregion
+
+
+        #region Lb_Info
+
+        ResourceManager.Get(CanvasLabel.Lb_Info).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Lb_Cancel
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Lb_Cancel,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.Lb_Info).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region Lb_Confirm
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Lb_Confirm,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                HttpManager.ReportIssue();
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region M
+
+        #region M_Close
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.M_Tit), new MulLanStr(LanguageLabel.UI__M_Tit));
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.M_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ResourceManager.Get(CanvasLabel.M_Achieve).TweenBacGra();
+            }
+        );
+
+        #endregion
+
+        #region M_Achieve
+
+        tween = ResourceManager.Get(CanvasLabel.M_Achieve).CreateTweenGra(new Color(0, 0, 0, 180/255f), 0.5f, true, true, Curve.EaseOutQuad);
+
+        var tween2 = tween;
+        tween.OnForwardStart += () =>
+        {
+            tween2.Duration = 0.5f;
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            tween2.Duration = 0.25f;
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.M_Achieve0).TweenBacVec();
+        };
+
+        tween = ResourceManager.Get(CanvasLabel.M_Achieve0).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.M_PosTra).position, 0.5f, false, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
+
+            ResourceManager.SetActive(CanvasLabel.M_Achieve, true);
+        };
+
+        tween.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.M_Achieve).TweenForGra();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.C_Main).TweenForCG();
+
+            ResourceManager.SetActive(CanvasLabel.M_Achieve, false);
+            ResourceManager.SetActive(CanvasLabel.M_Achieve0, false);
+        };
+
+        #endregion
+
+        #endregion
+
+        #region O
+
+        ResourceManager.Get(CanvasLabel.O_Toast).AddScript<Toast>();
+
+        #endregion
+
+        #region N
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_Lab), new MulLanStr(LanguageLabel.UI__N_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.N_FormerPlayerButtonText), new MulLanStr(LanguageLabel.UI__N_FormerPlayerButtonText));
+
+        ResourceManager.Get(CanvasLabel.N_Mask).CreateTweenGra(0, 180/255f, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_LabBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_Arrow).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_Tutorial).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_Confirm).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.N_FormerPlayerButton).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region P
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_HairLab), new MulLanStr(LanguageLabel.UI__P_HairLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_TopLab), new MulLanStr(LanguageLabel.UI__P_TopLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_DressLab), new MulLanStr(LanguageLabel.UI__P_DressLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_DecaratorLab), new MulLanStr(LanguageLabel.UI__P_DecaratorLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_WingLab), new MulLanStr(LanguageLabel.UI__P_WingLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.P_ShoeLab), new MulLanStr(LanguageLabel.UI__P_ShoeLab));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Pa_Tit), new MulLanStr(LanguageLabel.UI__Pa_Tit));
+
+
+        #region P_Group
+
+        ResourceManager.Get(CanvasLabel.P_Group).CreateTweenCG(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region P_Open
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Open,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.P_Group).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.P_SidePanel).TweenBacVec();
+
+                ResourceManager.SetActive(CanvasLabel.P_Open, false);
+                ResourceManager.SetActive(CanvasLabel.P_Close, true);
+            }
+        );
+
+        #endregion
+
+        #region P_Close
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Close,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.P_Group).TweenForCG();
+                ResourceManager.Get(CanvasLabel.P_SidePanel).TweenForVec();
+
+                ResourceManager.SetActive(CanvasLabel.P_Open, true);
+                ResourceManager.SetActive(CanvasLabel.P_Close, false);
+            }
+        );
+
+        #endregion
+
+        #region P_SidePanel
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.P_SidePanel).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.P_Pos).position, 0.5f, false, true, true, Curve.EaseOutQuad);
+
+        tweenRoot.OnForwardFinish += () =>
+        {
+            ResourceManager.Get(CanvasLabel.P_Share).TweenForCG();
+        };
+
+        tweenRoot.OnBackwardStart += () =>
+        {
+            ResourceManager.Get(CanvasLabel.P_Share).TweenBacCG();
+        };
+
+        #endregion
+
+        #region P_DressRoom
+
+        ResourceManager.Get(CanvasLabel.P_DressRoom).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region P_Save
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Save,
+            () =>
+            {
+                PlayerManager.Player.SaveDressDatas(true);
+            }
+        );
+
+        #endregion
+
+        #region P_Reset
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Reset,
+            () =>
+            {
+                PlayerManager.Player.ResetDressDatas();
+            }
+        );
+
+        #endregion
+
+        #region P_TabBtn
+
+        ResourceManager.Get(CanvasLabel.P_Hair).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Top).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Dress).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Decarator).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Wing).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.P_Shoe).CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Hair,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(5);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Top,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(5);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Dress,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(6);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(2);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Decarator,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(5);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(3);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Wing,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenForScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenBacScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(5);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(3);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = false;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = true;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, true);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, false);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, true);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.P_Shoe,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ResourceManager.Get(CanvasLabel.P_Hair).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Top).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Dress).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Decarator).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Wing).TweenBacScale();
+                ResourceManager.Get(CanvasLabel.P_Shoe).TweenForScale();
+
+                ResourceManager.Get(CanvasLabel.P_Hair).SetSiblingIndex(0);
+                ResourceManager.Get(CanvasLabel.P_Top).SetSiblingIndex(1);
+                ResourceManager.Get(CanvasLabel.P_Dress).SetSiblingIndex(2);
+                ResourceManager.Get(CanvasLabel.P_Decarator).SetSiblingIndex(3);
+                ResourceManager.Get(CanvasLabel.P_Wing).SetSiblingIndex(4);
+                ResourceManager.Get(CanvasLabel.P_Shoe).SetSiblingIndex(5);
+
+                ResourceManager.Get<Button>(CanvasLabel.P_Hair).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Top).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Dress).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Decarator).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Wing).interactable = true;
+                ResourceManager.Get<Button>(CanvasLabel.P_Shoe).interactable = false;
+
+                ResourceManager.SetActive(CanvasLabel.Pa_HairTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pb_TopTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pc_DressTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pd_DecaratorTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pe_WingTab, false);
+                ResourceManager.SetActive(CanvasLabel.Pf_ShoeTab, true);
+
+                ResourceManager.SetActive(CanvasLabel.P_HairIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_TopIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DressIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_DecaratorIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_WingIcon, false);
+                ResourceManager.SetActive(CanvasLabel.P_ShoeIcon, true);
+            }
+        );
+
+        #endregion
+
+        #region P_Return
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Return,
+            () =>
+            {
+                PlayerManager.Player.LeaveDressroom();
+            }
+        );
+
+        #endregion
+
+        #region P_Share
+
+        ResourceManager.Get(CanvasLabel.P_Share).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_Share,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.P_Open, false);
+                ResourceManager.SetActive(CanvasLabel.P_Share, false);
+
+                EndOfFrameCall.Call
+                (
+                    ShareScreenShot
+                );
+            }
+        );
+
+        #endregion
+
+        #region P_CancelShare
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.P_CancelShare,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.P_Open, true);
+                ResourceManager.SetActive(CanvasLabel.P_CancelShare, false);
+            }
+        );
+
+        #endregion
+
+
+        #region Pa_Info
+
+        ResourceManager.Get(CanvasLabel.Pa_Info).CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Pa_Close
+
+        ResourceManager.AddButtonEvent
+            (
+                CanvasLabel.Pa_Close,
+                () =>
+                {
+                    AudioManager.PlayClip(AudioLabel.Close);
+
+                    ResourceManager.Get(CanvasLabel.Pa_Info).TweenBacCG();
+                }
+            );
+
+        #endregion
+
+        #endregion
+
+        #region Q
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Tit), new MulLanStr(LanguageLabel.UI__Q_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_Placeholder), new MulLanStr(LanguageLabel.UI__Q_Placeholder));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_CommentLab), new MulLanStr(LanguageLabel.UI__Q_CommentLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_CloseLab), new MulLanStr(LanguageLabel.UI__Q_CloseLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_NicknameTitle), new MulLanStr(LanguageLabel.UI__Q_NicknameTitle));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_ContentTitle), new MulLanStr(LanguageLabel.UI__Q_ContentTitle));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Q_FriendFilterTitle), new MulLanStr(LanguageLabel.UI__Q_FriendFilterTitle));
+
+        ResourceManager.Get(CanvasLabel.Q_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Q_CommentBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+            (
+                CanvasLabel.Q_Close,
+                () =>
+                {
+                    SocialManager.CloseCommentPanel();
+                }
+            );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.Q_CommentBtn,
+            () =>
+            {
+                SocialManager.Comment();
+            }
+        );
+
+        #endregion
+
+        #region R
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.R_NotifyTit), new MulLanStr(LanguageLabel.UI__R_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.R_CloseLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+        tween = ResourceManager.Get(CanvasLabel.R_Notify0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        tween = ResourceManager.Get(CanvasLabel.R_Notify).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart +=
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.R_NotifyBK).TweenForScale();
+            };
+
+        tween.OnBackwardStart +=
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.R_NotifyBK).TweenBacScale();
+            };
+
+        tween.OnBackwardFinish +=
+            () =>
+            {
+                SignManager.ShowPanels();
+            };
+
+        ResourceManager.Get(CanvasLabel.R_NotifyBK).CreateTweenScale(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.R_Close,
+            () =>
+            {
+                tween = ResourceManager.Get(CanvasLabel.R_Notify).TweenBacCG();
+            }
+        );
+
+        #endregion
+
+        #region S
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.S_Tit), new MulLanStr(LanguageLabel.UI__S_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.S_CloseLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+        ResourceManager.Get(CanvasLabel.S_RankPanel).CreateTweenScale(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween = ResourceManager.Get(CanvasLabel.S_RankBK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart +=
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.S_RankPanel).TweenForScale();
+            };
+
+        tween.OnBackwardStart +=
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.S_RankPanel).TweenBacScale();
+            };
+
+        ResourceManager.AddButtonEvent(CanvasLabel.S_Close, () => { SocialManager.CloseRankPanel(); });
+
+        #endregion
+
+        #region T
+
+        //ManaLan.Add(ManaReso.Get<Text>("T_RandomLab"), new LanStr("UI", PrefabLabel.T_Random));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.T_ConfirmLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+        ResourceManager.SetSprite(CanvasLabel.T_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+        
+        ResourceManager.Get(CanvasLabel.T_NickName).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.T_NickNameBK).CreateTweenCG(0f, 1f, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.T_Confirm,
+            () =>
+            {
+                NickNameManager.ResetNickName();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.T_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+                NickNameManager.CloseNickNameSettingPanel();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.T_Random,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+                NickNameManager.SetRandomName();
+            }
+        );
+
+        #endregion
+
+        #region U
+
+        ResourceManager.Get(CanvasLabel.U_LoadingPanel).CreateTweenCG(1, 0, 1f, true, false, Curve.EaseOutQuad);
+
+        ResourceManager.Get(CanvasLabel.U_Group).CreateTweenCG(0, 1f, 0.5f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.U_Icon).CreateTweenEuler(new Vector3(0, 0, -360), 1.25f, false, true, true, Curve.Linear);
+        tweenRoot.Repeat = true;
+        tweenRoot.StartForward();
+
+        #endregion
+
+        #region V
+
+        ResourceManager.Get(CanvasLabel.V_BlackMask).CreateTweenCG(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region X
+
+        ResourceManager.Get<Image>(CanvasLabel.X_CreateChest).sprite = ResourceManager.LoadSprite("宝箱", Folder.Scene);
+        ResourceManager.Get<ImagePlus>(CanvasLabel.X_CurrentInfoImagePlus).sprite = ResourceManager.LoadSprite("Expression", Folder.Scene);
+
+        ResourceManager.SetSprite(CanvasLabel.X_SendPublicMessage, ResourceManager.LoadSprite(ResourceLabel.Expression_SendPublicMessage, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_CryFace, ResourceManager.LoadSprite(ResourceLabel.Expression_CryFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_ChagrinFace, ResourceManager.LoadSprite(ResourceLabel.Expression_ChagrinFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_HappyFace, ResourceManager.LoadSprite(ResourceLabel.Expression_HappyFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_SurpriseFace, ResourceManager.LoadSprite(ResourceLabel.Expression_SurpriseFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_HopeFace, ResourceManager.LoadSprite(ResourceLabel.Expression_HopeFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_SweatFace, ResourceManager.LoadSprite(ResourceLabel.Expression_SweatFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_OgleFace, ResourceManager.LoadSprite(ResourceLabel.Expression_OgleFace, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_Expression, ResourceManager.LoadSprite(ResourceLabel.Expression_Expression, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.X_BlueFace, ResourceManager.LoadSprite(ResourceLabel.Expression_BlueFace, Folder.Scene));
+
+        #region X_CreateChest
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_CreateChest,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ChestManager.OpenCreateChestPanel();
+            }
+        );
+
+        #endregion
+
+        #region X_Quit
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_Quit,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                SFSManager.GardenSmartFox.PlazaRoomController.LeavePlazaRoom();
+            }
+        );
+
+        #endregion
+
+        #region X_SendPublicMessage
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_SendPublicMessage,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                if (SFSManager.GardenSmartFox.PlazaRoomController.SendPublicMessage(ResourceManager.Get<InputField>(CanvasLabel.X_InputField).text))
+                {
+                    ResourceManager.Get<InputField>(CanvasLabel.X_InputField).text = "";
+                }
+            }
+        );
+
+        #endregion
+
+        #region X_Expression
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_Expression,
+            () =>
+            {
+                OpenExpressionGrid();
+            }
+        );
+
+        #endregion
+
+        #region X_Mask
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_Mask,
+            () =>
+            {
+                CloseExpressionGrid();
+            }
+        );
+
+        #endregion
+
+        #region Expression
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_BlueFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.郁闷);
+                CloseExpressionGrid();
+            }
+        );
+
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_SweatFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.汗颜);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_SurpriseFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.惊讶);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_HappyFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.开心);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_CryFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.哭);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_HopeFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.期待);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_OgleFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.色咪咪);
+                CloseExpressionGrid();
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.X_ChagrinFace,
+            () =>
+            {
+                SFSManager.GardenSmartFox.PlazaRoomController.SendExpression(ExpressionID.委屈);
+                CloseExpressionGrid();
+            }
+        );
+
+        #endregion
+
+        #region X_OpenInfo
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_OpenInfo, () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.X_CurrentInfo, false);
+                ResourceManager.SetActive(CanvasLabel.X_InfoBK, true);
+
+                Auxiliary.Instance.DelayCall
+                (
+                    () =>
+                    {
+                        LayoutRebuilder.MarkLayoutForRebuild(ResourceManager.Get<RectTransform>(CanvasLabel.X_Info));
+                    },
+                    1
+                );
+            }
+        );
+
+        #endregion
+
+        #region X_CloseInfo
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.X_CloseInfo, () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.X_CurrentInfo, true);
+                ResourceManager.SetActive(CanvasLabel.X_InfoBK, false);
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region Y
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Y_Tit), new MulLanStr(LanguageLabel.UI__Yb_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Y_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_Tit), new MulLanStr(LanguageLabel.UI__Yb_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_Desc), new MulLanStr(LanguageLabel.UI__Yb_LuckyDesc));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_SliderTit), new MulLanStr(LanguageLabel.UI__Yb_SliderTit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab0), new MulLanStr(LanguageLabel.UI__Yb_Lucky));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab1), new MulLanStr(LanguageLabel.UI__Yb_GuessColor));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Yb_ToggleLab2), new MulLanStr(LanguageLabel.UI__Yb_GuessNumber));
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Ya_BtnLab), new MulLanStr(LanguageLabel.Common__Confirm));
+
+
+        ResourceManager.SetSprite(CanvasLabel.Y_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+        ResourceManager.SetSprite(CanvasLabel.Yb_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+
+
+        ResourceManager.Get(CanvasLabel.Y_Tip).CreateTweenCG(0, 1, 0.5f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Y_Chest).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ResourceManager.Get<Image>(CanvasLabel.Ya_Icon).sprite = ResourceManager.LoadSprite("钻石", Folder.Atlas);
+
+        ResourceManager.Get<Slider>(CanvasLabel.Yb_Slider).onValueChanged.AddListener(ChestManager.OnSliderValueChange);
+        ResourceManager.Get<InputField>(CanvasLabel.Yb_InputField).onValueChanged.AddListener(ChestManager.OnInputValueChange);
+
+        #region Y_Close
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Y_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                ChestManager.CloseCreateChestPanel();
+            }
+        );
+
+        #endregion
+
+        #region Yb_Toggle
+
+        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle0).onValueChanged.AddListener(ChestManager.OnLuckyToggle);
+        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle1).onValueChanged.AddListener(ChestManager.OnColorToggle);
+        ResourceManager.Get<Toggle>(CanvasLabel.Yb_Toggle2).onValueChanged.AddListener(ChestManager.OnNumberToggle);
+
+        #endregion
+
+        #region Yb_CreateChest
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Yb_Btn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                ChestManager.CreateChest();
+            }
+        );
+
+        #endregion
+
+        #region Y_Btn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Y_Btn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                PlazaRoomChest.SelectedChest.GetAward(ResourceManager.Get<InputField>(CanvasLabel.Y_InputField).text);
+            }
+        );
+
+        #endregion
+
+        #region Ya_Btn
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Ya_Btn,
+            () =>
+            {
+                ChestManager.CloseCreateChestPanel();
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region Z
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_CreateLab), new MulLanStr(LanguageLabel.UI__Z_CreateLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_CloseLab), new MulLanStr(LanguageLabel.Common__Close));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab0), new MulLanStr(LanguageLabel.UI__Z_InfoLab0));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab1), new MulLanStr(LanguageLabel.UI__Z_InfoLab1));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab2), new MulLanStr(LanguageLabel.UI__Z_InfoLab2));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab3), new MulLanStr(LanguageLabel.UI__Z_InfoLab3));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab4), new MulLanStr(LanguageLabel.UI__Z_InfoLab4));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Z_InfoLab5), new MulLanStr(LanguageLabel.UI__Z_InfoLab5));
+
+
+        ResourceManager.Get(CanvasLabel.Z_BK).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.Z_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #region Z_Create
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Z_Create,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                PlazaRoomManager.OpenCreateRoomPanel();
+            }
+        );
+
+        #endregion
+
+        #region Z_Close
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Z_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                PlazaRoomManager.CloseJoinRoomPanel();
+            }
+        );
+
+        #endregion
+
+        #region Z_InfoImg50
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.Z_InfoImg50,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                if (PlazaRoomManager.FilterFlag)
+                    PlazaRoomManager.DisableCreateByMeFilter();
+                else
+                    PlazaRoomManager.EnableCreateByMeFilter();
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region AA
+
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AA_Lab), new MulLanStr(LanguageLabel.UI__AA_Lab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AA_BtnLab), new MulLanStr(LanguageLabel.UI__AA_BtnLab));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AAa_Tit), new MulLanStr(LanguageLabel.UI__AAa_Tit));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.AAb_Tit), new MulLanStr(LanguageLabel.UI__AAb_Tit));
+
+        ResourceManager.SetSprite(CanvasLabel.AA_InputField, ResourceManager.LoadSprite(ResourceLabel.Expression_InputField, Folder.Scene));
+
+        ResourceManager.Get(CanvasLabel.AA_Tip).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.AA_CreatePlazaRoom).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #region AA_Close
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.AA_Close,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Close);
+
+                PlazaRoomManager.CloseCreateRoomPanel();
+            }
+        );
+
+        #endregion
+
+        #region AA_Create
+
+        ResourceManager.SetButtonEvent
+        (
+            CanvasLabel.AA_Btn,
+            () =>
+            {
+                AudioManager.PlayClip(AudioLabel.ClickButton);
+
+                PlazaRoomManager.CreateRoom();
+
+                ResourceManager.Get<InputField>(CanvasLabel.AA_InputField).text = "";
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region AI
+
+        AlertPanel.Init();
+
+        #endregion
+
+        ResourceManager.Get<Text>(CanvasLabel.K_Tit).resizeTextForBestFit = true;
+        ResourceManager.Get<Text>(CanvasLabel.K_Tit).resizeTextMaxSize = 21;
+
+        if (!TutorialManager.NewplayerTutorial)
+        {
+            SetEnterMinigameGameLabel();
+        }
+
+        ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true;
+        ResourceManager.Get(CanvasLabel.F_Manage).GetTweenGra().InOrigin = true;
+        ResourceManager.SetActive(CanvasLabel.F_Manage, false);
+        ResourceManager.Get(CanvasLabel.F_Manage0).GetTweenVec().InOrigin = true;
+    }
+
+
+    public override void TutorialToRegular()
+    {
+        SetEnterMinigameGameLabel();
+    }
+
+    public static void SetEnterMinigameGameLabel()
+    {
+        HudTarget hudTarget = ResourceManager.Get(CanvasLabel.C_MiniGame).GetComponent<HudTarget>();
+        if (hudTarget == null)
+        {
+            hudTarget = ResourceManager.Get(CanvasLabel.C_MiniGame).AddComponent<HudTarget>();
+        }
+        hudTarget.PosTra = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra];
+
+        hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).GetComponent<HudTarget>();
+        if (hudTarget == null)
+        {
+            hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).AddComponent<HudTarget>();
+        }
+        hudTarget.PosTra = PlayerManager.Player.ChildDic[PlayerLabel.EnterGameTra];
+    }
+
+
+    public void LoginCallback(JsonData jsonData)
+    {
+        if (HttpManager.IsConnect)
+        {
+            ResourceManager.Get(CanvasLabel.Fg_Reconnect).TweenBacCG();
+
+            ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = true;
+
+            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab2));
+        }
+        else
+        {
+            ResourceManager.Get<Button>(CanvasLabel.Fg_Btn).interactable = true;
+
+            ResourceManager.SetText(CanvasLabel.Fg_Lab, Language.GetStr(LanguageLabel.UI__Fg_Lab3));
+        }
+    }
+
+
+    public static void ShowCredits()
+    {
+        ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenForCG();
+        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenForCG();
+        ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenReForVec();
+
+        StopPlayCreditsRoutine = Auxiliary.Instance.DelayCall
+        (
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.Lc_CreditsMask).TweenBacCG();
+                ResourceManager.Get(CanvasLabel.Lc_CreditsContent).TweenBacCG();
+            },
+            10f
+        );
+    }
+
+
+    public static void UpdateManagePanelHint() //侧边栏红色描边
+    {
+        if (TutorialManager.NewplayerTutorial)
+        {
+            return;
+        }
+
+
+        TweenOutline tween = ResourceManager.Get(CanvasLabel.C_Manage).GetTweenOutline();
+
+        for (int i = 0; i < Manager.SkillList.Count; i++)
+        {
+            if (Manager.SkillList[i].ItemStatus == SkillStatus.UnLock)
+            {
+                if (tween.InPause)
+                {
+                    tween.Resume();
+
+                    tween.Target.enabled = true;
+                }
+                else
+                {
+                    tween.StartForward();
+                }
+
+                return;
+            }
+        }
+
+
+        tween.Target.enabled = false;
+
+        tween.Pause();
+    }
+
+
+    public static void OpenManagePanel()
+    {
+        ResourceManager.Get(CanvasLabel.F_Manage0).TweenForVec();
+
+        AudioManager.PlayClip(AudioLabel.ClickButton);
+
+        if (TutorialManager.NewplayerTutorial)
+        {
+            return;
+        }
+
+        SkillRoot skillRoot = null;
+        ScrollRect scrollRect = null;
+        foreach (var skill in Manager.SkillList)
+        {
+            if (skill.ItemStatus == SkillStatus.UnLock)
+            {
+                skillRoot = skill;
+                break;
+            }
+        }
+
+        if (skillRoot != null)
+        {
+            MoveRoot moveRoot;
+            ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = false;
+            TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.F_Manage).GetTweenGra();
+            tweenRoot.AddEventOnetime
+            (
+                EventType.ForwardFinish,
+                () =>
+                {
+                    if (skillRoot.SkillType == SkillType.Skill || skillRoot.SkillType == SkillType.BigSkill)
+                    {
+                        ResourceManager.Get<Button>(CanvasLabel.F_Garden).onClick.Invoke();
+                        DelayCall.Call
+                        (
+                            1,
+                            () =>
+                            {
+                                int index = skillRoot.SkillItem.GetSiblingIndex();
+                                scrollRect = ResourceManager.Get<ScrollRect>(CanvasLabel.Fa_Scrr);
+                                if (index < scrollRect.content.childCount - MaxSkillDisplayAmt)
+                                {
+                                    moveRoot = scrollRect.Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Up);
+                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
+                                }
+                                else
+                                {
+                                    moveRoot = scrollRect.Locate(scrollRect.content.childCount - 1, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
+                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
+                                }
+                            }
+                        );
+                    }
+                    else if (skillRoot.SkillType == SkillType.Ability)
+                    {
+                        ResourceManager.Get<Button>(CanvasLabel.F_Elf).onClick.Invoke();
+                        DelayCall.Call
+                        (
+                            1,
+                            () =>
+                            {
+                                int index = skillRoot.SkillItem.GetSiblingIndex();
+                                scrollRect = ResourceManager.Get<ScrollRect>(CanvasLabel.Fd_Scrr);
+                                if (index < scrollRect.content.childCount - MaxAbilityDisplayAmt)
+                                {
+                                    moveRoot = scrollRect.Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Up);
+                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
+                                }
+                                else
+                                {
+                                    moveRoot = scrollRect.Locate(scrollRect.content.childCount - 1, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
+                                    moveRoot.AddEventOnetime(EventType.ForwardFinish, () => ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true);
+                                }
+                            }
+                        );
+                    }
+                    else
+                    {
+                        ResourceManager.Get<CanvasGroup>(CanvasLabel.F_Manage0).interactable = true;
+                        throw new Exception();
+                    }
+                }
+            );
+        }
+    }
+
+
+    public static void NavigateToBuyCoin()
+    {
+        ResourceManager.Get<Button>(CanvasLabel.F_Magic).onClick.Invoke();
+
+        Auxiliary.Instance.DelayCall
+            (
+                () =>
+                {
+                    int index = ResourceManager.Get(CanvasLabel.Fb_Grid).childCount - 1;
+
+                    ResourceManager.Get<ScrollRect>(CanvasLabel.Fb_Scrr).Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
+                },
+                1
+            );
+    }
+
+    public static void NavigateToBuyDiamond()
+    {
+        ResourceManager.Get<Button>(CanvasLabel.F_Store).onClick.Invoke();
+
+        Auxiliary.Instance.DelayCall
+        (
+            () =>
+            {
+                int index = ResourceManager.Get(CanvasLabel.Fc_Grid).childCount - 1;
+
+                ResourceManager.Get<ScrollRect>(CanvasLabel.Fc_Scrr).Locate(index, 0.25f, Curve.EaseOutQuad, LocatePos.Down);
+            },
+            1
+        );
+    }
+
+
+    private static void OpenExpressionGrid()
+    {
+        ResourceManager.SetActive(CanvasLabel.X_GridBK, true);
+        ResourceManager.SetActive(CanvasLabel.X_Mask, true);
+        ResourceManager.SetActive(CanvasLabel.X_InfoParent, false);
+    }
+
+    private static void CloseExpressionGrid()
+    {
+        ResourceManager.SetActive(CanvasLabel.X_GridBK, false);
+        ResourceManager.SetActive(CanvasLabel.X_Mask, false);
+        ResourceManager.SetActive(CanvasLabel.X_InfoParent, true);
+    }
+
+
+    public static void BlockOfflinePanel()
+    {
+        ResourceManager.Get(CanvasLabel.B_SignIn0).TweenBacCG();
+        ResourceManager.Get(CanvasLabel.T_NickName).TweenBacCG();
+        ResourceManager.Get(CanvasLabel.R_Notify0).TweenBacCG();
+    }
+
+    public static void UnblockOfflinePanel()
+    {
+        ResourceManager.Get(CanvasLabel.B_SignIn0).TweenForCG();
+        ResourceManager.Get(CanvasLabel.T_NickName).TweenForCG();
+        ResourceManager.Get(CanvasLabel.R_Notify0).TweenForCG();
+    }
+
+
+    private static void ShareScreenShot()
+    {
+        float scaleFactor = ResourceManager.Get<Canvas>(CanvasLabel.Canvas).scaleFactor;
+        RectTransform rectTransform = ResourceManager.Get<RectTransform>(CanvasLabel.P_ScreenShotRect);
+        int width = (int) (rectTransform.rect.width*scaleFactor);
+        int height = (int) (rectTransform.rect.height*scaleFactor);
+        Vector2 screenPosition = RectTransformUtility.WorldToScreenPoint(null, rectTransform.position);
+
+        Texture2D texture2D = new Texture2D(width, height, TextureFormat.RGBA32, false);
+        texture2D.ReadPixels(new Rect(screenPosition.x, screenPosition.y, width, height), 0, 0);
+        texture2D.Apply();
+
+        string screenShotPath = string.Format("{0}/MyLovelyGarden.png", Application.persistentDataPath);
+        File.WriteAllBytes(screenShotPath, texture2D.EncodeToPNG());
+
+        IAPManager.Share(screenShotPath, Language.GetStr(LanguageLabel.Common__ScreenShotShareContent));
+
+        DelayCall.Call
+        (
+            1,
+            () =>
+            {
+                ResourceManager.SetActive(CanvasLabel.P_Open, true);
+                ResourceManager.SetActive(CanvasLabel.P_Share, true);
+            }
+        );
+    }
+
+
+    private static void OnLanguageChange(CurrentLanguage fromLanguage, CurrentLanguage toLanguage)
+    {
+        if (toLanguage == CurrentLanguage.ChineseSimplified)
+        {
+            ResourceManager.SetActive(CanvasLabel.C_WelcomeIcon, false);
+            ResourceManager.SetActive(CanvasLabel.C_HeartIcon, true);
+        }
+        else
+        {
+            ResourceManager.SetActive(CanvasLabel.C_WelcomeIcon, true);
+            ResourceManager.SetActive(CanvasLabel.C_HeartIcon, false);
+        }
+    }
 }

+ 1204 - 1158
Assets/Script/Manage/VisitManager.cs

@@ -1,1159 +1,1205 @@
-using LitJson;
-
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.Events;
-
-using System;
-using System.Xml;
-using System.Collections;
-using System.Collections.Generic;
-
-using Random = UnityEngine.Random;
-
-public enum ConfigSource
-{
-    Fake,
-    Random,
-    SerialNumber,
-}
-
-public class VisitData
-{
-    //public bool Praised;
-
-    public JsonData JsonData;
-    public XmlDocument Document;
-
-    public VisitData(JsonData jsonData, XmlDocument document)
-    {
-        JsonData = jsonData;
-        Document = document;
-    }
-}
-
-public class VisitManager : Regist
-{
-    #region Config
-
-    #region 配置
-
-    public static int VisitCost
-    {
-        get { return visitCost; }
-        set
-        {
-            visitCost = value;
-
-            ResourceManager.Get<Text>(CanvasLabel.C_CostLab).text = TransferLabel.CoinSprite + VisitCost;
-        }
-    }
-    public static int visitCost;
-
-    public static int VisitCDTime;
-    public static float FancyGardenRate;
-    public static float CreateAwardRate;
-    public static float FakeGardenRate;
-    public static string VisitCostFml;
-    public static string AwardMinFml;
-    public static string AwardMaxFml;
-
-    #endregion
-
-    public static int MaxTipAmt = 10;
-    public static Action OnExitVisteeGarden;
-    public static Action OnEnterVisteeGarden;
-
-    public static int MaxStachConfigAmt = 8;
-    public static float PullArchiveTime = 0.5f;
-    public static float PullConfigTimer;
-    public static List<VisitData> UsedDataList = new List<VisitData>();
-    public static List<VisitData> UnusedDataList = new List<VisitData>();
-
-    public static bool Inited;
-    public static bool InVisit;
-    public static bool IsPullConfigComplete;
-    public static bool IsBlackMaskTweenComplete;
-
-    public static int VisiteeLevel;
-    public static int VisiteeTotalSlot;
-    public static int VisiteePraiseAmt;
-    public static string VisiteeSerialNumber;
-    public static Player VisiteePlayer;
-    public static XmlNode VisiteeRootNode;
-    public static XmlDocument VisiteeDocument;
-    public static List<Slot> VisiteePlantList;
-
-    public static bool PlayerBirdFlag;
-    public static bool PlayerTreeFlag;
-    public static bool PlayerRainbowFlag;
-    public static List<Slot> PlayerPlantList;
-    public static List<ElfType> PlayerElfList;
-
-    #endregion
-
-    public void Update()
-    {
-        if (UnusedDataList.Count > MaxStachConfigAmt)
-        {
-            return;
-        }
-
-        PullConfigTimer += Time.deltaTime;
-
-        if (PullConfigTimer >= PullArchiveTime)
-        {
-            PullConfigTimer = 0;
-
-            HttpManager.GetRandomConfig
-            (
-                data =>
-                {
-                    PullConfigCallback(data, null, SavePulledConfig);
-                }
-            );
-        }
-    }
-
-
-    public static void Init()
-    {
-        MaxTipAmt = 0;
-        for (int i = 1; i < 100; i++)
-        {
-            if (Language.ContainNode(LanguageLabel.Tip, LanguageLabel.Tip + i))
-            {
-                MaxTipAmt++;
-            }
-        }
-        MaxTipAmt++;
-
-        XmlAttributeCollection attribute = ConfigManager.GetVisitConfig();
-
-        VisitCostFml = attribute[5].Value;
-
-        VisitCost = Mathf.FloorToInt((float)Auxiliary.FmlParse(VisitCostFml, "l", Manager.GardenLevel.ToString()));
-        AwardMinFml = attribute[2].Value;
-        AwardMaxFml = attribute[3].Value;
-
-        VisitCDTime = int.Parse(attribute[4].Value);
-        FancyGardenRate = float.Parse(attribute[7].Value);
-        CreateAwardRate = float.Parse(attribute[1].Value);
-        FakeGardenRate = float.Parse(attribute[6].Value);
-
-        #region 倒计时
-
-        if (VisitCDTime != 0)
-        {
-            Text text = ResourceManager.Get<Text>(CanvasLabel.C_VisitLab);
-
-            List<float> delayList = new List<float>();
-            List<float> durationList = new List<float>();
-            List<VecPair> pairList = new List<VecPair>();
-            List<UnityAction> actionList = new List<UnityAction>();
-
-            Vector3 v1 = new Vector3(0.75f, 0.75f, 0.75f);
-            Vector3 v2 = new Vector3(0.4f, 0.4f, 0.4f);
-            Vector3 v3 = new Vector3(0, 0, 0);
-
-            for (int i = 0; i < VisitCDTime - 1; i++)
-            {
-                delayList.Add(0.5f);
-                delayList.Add(0);
-            }
-
-            delayList.Add(0.5f);
-
-            for (int i = 0; i < VisitCDTime; i++)
-            {
-                durationList.Add(0.25f);
-                durationList.Add(0.25f);
-
-                pairList.Add(new VecPair(v1, v2));
-                pairList.Add(new VecPair(v2, v3));
-
-                var tempInt = i;
-                actionList.Add
-                (
-                    () =>
-                    {
-                        text.text = (VisitCDTime - tempInt).ToString();
-                        AudioManager.PlayClip(AudioLabel.ClickButton);
-                    }
-                );
-
-                actionList.Add(null);
-            }
-
-            TweenRoot tween = ResourceManager.Get(CanvasLabel.C_VisitLab).CreateStreamScale
-            (
-                delayList,
-                durationList,
-                pairList,
-                true,
-                false,
-                Curve.EaseOutQuad,
-                false,
-                actionList
-            );
-
-            tween.OnForwardFinish += () =>
-            {
-                AudioManager.PlayClip(AudioLabel.Bubble);
-            };
-        }
-
-        #endregion
-
-        OnEnterVisteeGarden += () =>
-        {
-            ResourceManager.SetActive(CanvasLabel.C_OpenCloseRightSidePanelButtons, false);
-            ResourceManager.Get<Button>(CanvasLabel.C_OpenSidePanelButton).onClick.Invoke();
-
-            if (LeftSidePanel.isOpen == false)
-            {
-                ResourceManager.Get<Button>(CanvasLabel.C_OpenLeftSidePanelButton).onClick.Invoke();
-            }
-            ResourceManager.SetActive(CanvasLabel.C_OpenCloseLeftSidePanelButtons, false);
-        };
-
-        OnExitVisteeGarden += () =>
-        {
-            ResourceManager.SetActive(CanvasLabel.C_OpenCloseRightSidePanelButtons, true);
-
-            ResourceManager.SetActive(CanvasLabel.C_OpenCloseLeftSidePanelButtons, true);
-            LeftSidePanel.Refresh();
-        };
-
-        Inited = true;
-    }
-
-
-    public static void OnStartEnterVisiteeGarden()
-    {
-        ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, false);
-        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, false);
-    }
-
-    public static void EnterVisiteeGarden(VisitData visitData)
-    {
-        IsPullConfigComplete = true;
-        VisiteePraiseAmt = int.Parse(visitData.JsonData["p"].ToString());
-        if (visitData.JsonData.Inst_Object.ContainsKey("i"))
-        {
-            VisiteeSerialNumber = visitData.JsonData["i"].ToString();
-        }
-
-        VisiteeDocument = visitData.Document;
-
-        SetVisiteeCommentPanel();
-
-        EnterVisiteeGarden();
-
-        OnEnterVisteeGarden.SafeInvoke();
-
-        if (Application.isEditor)
-        {
-            Debug.Log(VisiteeSerialNumber);
-        }
-    }
-
-    public static void StartExitVisiteeGarden()
-    {
-        ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
-
-		HideTip ();
-
-        ResourceManager.SetActive(CanvasLabel.C_Visit, true);
-        ResourceManager.SetActive(CanvasLabel.C_Coin, true);
-        ResourceManager.SetActive(CanvasLabel.C_Group1, true);
-        ResourceManager.SetActive(CanvasLabel.C_Group2, true);
-
-        ResourceManager.Get<Button>(CanvasLabel.C_NickNameBK).interactable = true;
-
-        ResourceManager.SetActive(CanvasLabel.C_Return, false);
-        ResourceManager.SetActive(CanvasLabel.C_Garden, false);
-
-        GardenManager.InMinigameFlag = true;
-
-        #region Garden
-
-        GardenManager.RetriveAllFlower();
-
-        for (int i = 0; i < GardenManager.SlotPageList.Count; i++)
-        {
-            ResourceManager.Save(GardenManager.SlotPageList[i]);
-        }
-
-        GardenManager.SlotPageList = new List<Transform>();
-
-        GardenManager.SlotList = new List<Slot>();
-        GardenManager.SlotPageList = new List<Transform>();
-
-
-        Garden.ResetPage();
-        Garden.PagePos = new List<Vector3>();
-
-        int pageAmt = GardenManager.DefaultSlotPage;
-
-        if (GardenManager.TotalSlot >= GardenManager.CriticalSlotIndex)
-        {
-            pageAmt = (GardenManager.TotalSlot - GardenManager.CriticalSlotIndex) / GardenManager.TotalSlotInOnePage + 3;
-        }
-
-        for (int i = 0; i < pageAmt; i++)
-        {
-            GardenManager.CreatePage();
-        }
-
-        for (int i = 0; i < GardenManager.SlotList.Count; i++)
-        {
-            if (i < GardenManager.TotalSlot)
-            {
-                GardenManager.SlotList[i].Lock = true;
-                GardenManager.SlotList[i].Available = true;
-            }
-            else
-            {
-                GardenManager.SlotList[i].Lock = false;
-                GardenManager.SlotList[i].Available = false;
-            }
-        }
-
-
-        List<KV<int, int>> plantList = ConfigManager.GetPlantList();
-
-        for (int i = 0; i < plantList.Count; i++)
-        {
-            GardenManager.PlantFlower(plantList[i].Key, plantList[i].Value);
-        }
-
-        #endregion
-
-        #region Bird Tree Rainbow
-
-        if (PlayerBirdFlag)
-        {
-            ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InDestination = true;
-        }
-        else
-        {
-            ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InOrigin = true;
-        }
-
-        if (PlayerTreeFlag)
-        {
-            ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InDestination = true;
-            ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InDestination = true;
-        }
-        else
-        {
-            ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InOrigin = true;
-            ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InOrigin = true;
-        }
-
-        if (PlayerRainbowFlag)
-        {
-            ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InDestination = true;
-        }
-        else
-        {
-            ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InOrigin = true;
-        }
-
-        #endregion
-
-        #region Player
-
-        DestroyImmediate(PlayerManager.Player.gameObject);
-        //ResourceManager.Save(PlayerManager.Player);
-
-        ResourceManager.TransformDictionary.Remove(PlayerLabel.Player);
-
-        PlayerManager.Instance.GetPlayer();
-        UIManager.SetEnterMinigameGameLabel();
-
-        Garden.PlayerPos = new List<Vector3>();
-
-        Garden.Player = ResourceManager.Get(PlayerLabel.Player);
-        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.RightPos].position);
-        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.LeftPos].position);
-
-        #endregion
-
-        GardenManager.ElfList = new List<ElfType>(PlayerElfList);
-
-        InVisit = false;
-        IsPullConfigComplete = false;
-        IsBlackMaskTweenComplete = false;
-
-        SetPlayerPraise();
-        SetPlayerCommentPanel();
-        SetPlayerRankPanel();
-        SetPlayerNickName();
-        OnExitVisteeGarden.SafeInvoke();
-    }
-
-    public static void OnStartExitVisiteeGarden()
-    {
-        if (Manager.GardenLevel >= TutorialManager.PlazaRoomTutorialLevel)
-        {
-            ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, true);
-            ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
-        }
-    }
-
-    public static void EnterVisiteeGarden()
-    {
-        if (!IsPullConfigComplete || !IsBlackMaskTweenComplete)
-        {
-            return;
-        }
-
-        //if (ConfigManager.GetConfigVersion(ConfigManager.ConfigDocument) < ConfigManager.GetConfigVersion(VisiteeDocument))
-        //{
-        //    ShowVisitFailPanelFromSelfGarden();
-        //    return;
-        //}
-
-        ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
-        //Debug.Log(Document.OuterXml);
-        SetVisiteePraise(VisiteeDocument);
-
-        VisiteeRootNode = VisiteeDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
-
-        ResourceManager.SetActive(CanvasLabel.C_Coin, false);
-        ResourceManager.SetActive(CanvasLabel.C_Group1, false);
-        ResourceManager.SetActive(CanvasLabel.C_Group2, false);
-
-        ResourceManager.Get<Button>(CanvasLabel.C_NickNameBK).interactable = false;
-
-        ResourceManager.SetActive(CanvasLabel.C_Garden, true);
-
-        if (!InVisit)
-        {
-            GardenManager.RetrieveAllStar();
-            GardenManager.RetrieveAllElf();
-            IAPManager.RetrieveADChest();
-
-            GardenManager.StarList = new List<Star>();
-        }
-
-        if (FriendPanel.FriendAccountDatas.MyContains(data => data.SerialNumber == VisiteeSerialNumber))
-        {
-            ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
-        }
-        else
-        {
-            ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, true);
-        }
-
-        ResourceManager.SetActive(CanvasLabel.C_Return, true);
-
-        GardenManager.InMinigameFlag = false;
-
-        #region Bird Tree Rainbow
-
-        if (!InVisit)
-        {
-            if (ResourceManager.Get(GardenLabel.BirdPivot).gameObject.activeSelf)
-            {
-                PlayerBirdFlag = true;
-            }
-
-            if (ResourceManager.Get(GardenLabel.GardenLeftTree).gameObject.activeSelf)
-            {
-                PlayerTreeFlag = true;
-            }
-
-            if (ResourceManager.Get(GardenLabel.GardenRainbow).gameObject.activeSelf)
-            {
-                PlayerRainbowFlag = true;
-            }
-        }
-
-        ResourceManager.SetActive(GardenLabel.BirdPivot, false);
-        ResourceManager.SetActive(GardenLabel.GardenLeftTree, false);
-        ResourceManager.SetActive(GardenLabel.GardenRightTree, false);
-        ResourceManager.SetActive(GardenLabel.GardenRainbow, false);
-
-        #endregion
-
-        #region Ability
-
-        VisiteeTotalSlot = GardenManager.DefaultUnlockSlot;
-        VisiteeTotalSlot += ConfigManager.GetIntFormConfig(PlayerConfigLabel.ExtraSlot);
-
-        if (!InVisit)
-        {
-            PlayerElfList = new List<ElfType>(GardenManager.ElfList);
-        }
-
-        GardenManager.ElfList = new List<ElfType>();
-
-        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList(VisiteeRootNode);
-
-        for (int i = 0; i < attributeList.Count; i++)
-        {
-            if (!attributeList[i][0].Value.Contains("Ability"))
-            {
-                continue;
-            }
-
-            if (attributeList[i][0].Value == "Ability1")
-            {
-                VisiteeLevel = int.Parse(attributeList[i][3].Value);
-
-                ResourceManager.SetText(CanvasLabel.C_GardenLab, Language.GetStr(LanguageLabel.UI__C_GardenLab) + VisiteeLevel);
-
-                continue;
-            }
-
-            if (int.Parse(attributeList[i][3].Value) == 0)
-            {
-                continue;
-            }
-
-            if (attributeList[i][0].Value == "Ability2")
-            {
-                ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InDestination = true;
-            }
-            else if (attributeList[i][0].Value == "Ability3")
-            {
-                ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InDestination = true;
-                ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InDestination = true;
-            }
-            else if (attributeList[i][0].Value == "Ability4")
-            {
-                ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InDestination = true;
-            }
-            else if (attributeList[i][0].Value == "Ability5")
-            {
-                GardenManager.ElfList.Add(ElfType.Bee_Yellow);
-            }
-            else if (attributeList[i][0].Value == "Ability6")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Bee_Purple);
-            }
-            else if (attributeList[i][0].Value == "Ability7")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Bee_Blue);
-            }
-            else if (attributeList[i][0].Value == "Ability8")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Bee_Red);
-            }
-            else if (attributeList[i][0].Value == "Ability9")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Bee_White);
-            }
-            else if (attributeList[i][0].Value == "Ability10")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_Yellow);
-            }
-            else if (attributeList[i][0].Value == "Ability11")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_Purple);
-            }
-            else if (attributeList[i][0].Value == "Ability12")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_Blue);
-            }
-            else if (attributeList[i][0].Value == "Ability13")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_Red);
-            }
-            else if (attributeList[i][0].Value == "Ability14")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Butterfly_White);
-            }
-            else if (attributeList[i][0].Value == "Ability15")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_Yellow);
-            }
-            else if (attributeList[i][0].Value == "Ability16")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_Purple);
-            }
-            else if (attributeList[i][0].Value == "Ability17")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_Blue);
-            }
-            else if (attributeList[i][0].Value == "Ability18")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_Red);
-            }
-            else if (attributeList[i][0].Value == "Ability19")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Dragonfly_White);
-            }
-            else if (attributeList[i][0].Value == "Ability20")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_Yellow);
-            }
-            else if (attributeList[i][0].Value == "Ability21")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_Purple);
-            }
-            else if (attributeList[i][0].Value == "Ability22")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_Blue);
-            }
-            else if (attributeList[i][0].Value == "Ability23")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_Red);
-            }
-            else if (attributeList[i][0].Value == "Ability24")
-            {
-                VisiteeTotalSlot++;
-
-                GardenManager.ElfList.Add(ElfType.Beetle_White);
-            }
-        }
-        
-        #endregion
-
-        #region Garden
-
-        if (!InVisit)
-        {
-            PlayerPlantList = new List<Slot>(GardenManager.PlantSlotList);
-
-            ConfigManager.SaveDress();
-            ConfigManager.SavePlantList();
-        }
-
-        GardenManager.RetriveAllFlower();
-
-        for (int i = 0; i < GardenManager.SlotPageList.Count; i++)
-        {
-            ResourceManager.Save(GardenManager.SlotPageList[i]);
-        }
-
-        GardenManager.SlotPageList = new List<Transform>();
-
-        GardenManager.SlotList = new List<Slot>();
-        GardenManager.SlotPageList = new List<Transform>();
-
-
-        Garden.ResetPage();
-        Garden.PagePos = new List<Vector3>();
-
-        int pageAmt = GardenManager.DefaultSlotPage;
-
-        if (VisiteeTotalSlot >= GardenManager.CriticalSlotIndex)
-        {
-            pageAmt = (VisiteeTotalSlot - GardenManager.CriticalSlotIndex) / GardenManager.TotalSlotInOnePage + 3;
-        }
-
-        for (int i = 0; i < pageAmt; i++)
-        {
-            GardenManager.CreatePage();
-        }
-        
-        for (int i = 0; i < GardenManager.SlotList.Count; i++)
-        {
-            if (i < VisiteeTotalSlot)
-            {
-                GardenManager.SlotList[i].Lock = true;
-                GardenManager.SlotList[i].Available = true;
-            }
-            else
-            {
-                GardenManager.SlotList[i].Lock = false;
-                GardenManager.SlotList[i].Available = false;
-            }
-        }
-
-        List<KV<int, int>> plantList = ConfigManager.GetPlantList(VisiteeRootNode);
-
-        for (int i = 0; i < plantList.Count; i++)
-        {
-            GardenManager.PlantFlower(plantList[i].Key, plantList[i].Value);
-        }
-
-        #endregion
-
-        #region Player
-
-        DestroyImmediate(PlayerManager.Player.gameObject);
-        //ResourceManager.Save(PlayerManager.Player);
-
-        ResourceManager.TransformDictionary.Remove(PlayerLabel.Player);
-
-        VisiteePlayer = PlayerManager.Instance.GetPlayer(VisiteeRootNode);
-        VisiteePlayer.SetAllCollider(false);
-
-        Garden.PlayerPos = new List<Vector3>();
-
-        Garden.Player = ResourceManager.Get(PlayerLabel.Player);
-        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.RightPos].position);
-        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.LeftPos].position);
-
-        #endregion
-
-        #region Award
-        
-        if (Random.Range(0f,1f) <= CreateAwardRate)
-        {
-            if (GardenManager.PlantSlotList.Count > 0)
-            {
-                GardenManager.PlantSlotList.Random()[0].PlantFlower.HaveAward = true;
-            }
-        }
-
-        #endregion
-
-        ShowTip();
-
-        XmlNode nicknameNode = VisiteeDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NickName);
-        if (nicknameNode == null || string.IsNullOrEmpty(nicknameNode.Attributes[0].Value))
-        {
-            SetVisiteeNickName(Language.GetStr(LanguageLabel.UI__Unnamed));
-        }
-        else
-        {
-            SetVisiteeNickName(nicknameNode.Attributes[0].Value);
-        }
-
-        InVisit = true;
-    }
-
-    public static void ShowVisitFailPanelFromSelfGarden()
-    {
-        //Debug.Log(0);
-        Bubble.Show
-        (
-            null,
-            Language.GetStr(LanguageLabel.UI__C_VisitFail),
-            null,
-            null,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
-                if (InVisit)
-                {
-                    ResourceManager.SetActive(CanvasLabel.C_Return, true);
-                }
-                else
-                {
-                    OnStartExitVisiteeGarden();
-                }
-            },
-            null,
-            false
-        );
-
-        Manager.AddCoin(VisitCost, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.VisitRefund);
-    }
-
-
-    public static void SetPlayerRankPanel()
-    {
-        SocialManager.RecoverRankPanel();
-    }
-
-
-    public static void SetPlayerPraise()
-    {
-        SocialManager.PraiseText.text = HttpManager.PraiseAmt.ToString();
-
-        SocialManager.PraiseButton.interactable = false;
-        SocialManager.PraiseButton.image.color = Color.white;
-        SocialManager.PraiseText.color =Lib.PraiseTextBlue;
-    }
-
-    public static void SetVisiteePraise(XmlDocument document)
-    {
-        SocialManager.PraiseText.text = VisiteePraiseAmt.ToString();
-        //Debug.Log(VisiteeSerialNumber);
-        HttpManager.CheckIsPraised
-        (
-            HttpManager.SerialNumber,
-            VisiteeSerialNumber,
-            jsonData =>
-            {
-                if (jsonData["i"].ToString() == "0")
-                {
-                    SocialManager.EnablePraise();
-                }
-                else if (jsonData["i"].ToString() == "1")
-                {
-                    SocialManager.DisablePraise();
-                }
-            }
-        );
-    }
-
-
-    public static void SetPlayerCommentPanel()
-    {
-        if (SocialManager.OpenCommentFlag)
-        {
-            SocialManager.RecoverCommentPanel();
-        }
-        else
-        {
-            //ManaSocial.UpdatePage(true);
-        }
-    }
-
-    public static void SetVisiteeCommentPanel()
-    {
-        SocialManager.ClearCommentPanel();
-
-        //ManaSocial.UpdatePage(false);
-    }
-
-
-    public static void SetPlayerNickName()
-    {
-        ResourceManager.SetText(CanvasLabel.C_NickNameLab, NickNameManager.NickName);
-    }
-
-    public static void SetVisiteeNickName(string nickname)
-    {
-        ResourceManager.SetText(CanvasLabel.C_NickNameLab, nickname);
-    }
-
-
-    public static void UpdateVisitCost()
-    {
-        if (Inited)
-        {
-            VisitCost = Mathf.FloorToInt((float)Auxiliary.FmlParse(VisitCostFml, "l", Manager.GardenLevel.ToString()));
-        }
-    }
-
-
-    public static void ReverseConfigData()
-    {
-        if (InVisit)
-        {
-            VisiteePlantList = new List<Slot>(GardenManager.PlantSlotList);
-
-            GardenManager.PlantSlotList = PlayerPlantList;
-        }
-    }
-
-    public static void RecoverConfigData()
-    {
-        if (InVisit)
-        {
-            GardenManager.PlantSlotList = VisiteePlantList;
-        }
-    }
-
-
-	public static void ShowTip()
-	{
-		ResourceManager.SetActive (CanvasLabel.C_Tip, true);
-
-        HudTarget hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).GetComponent<HudTarget>();
-        hudTarget.PosTra = VisiteePlayer.ChildDic[PlayerLabel.EnterGameTra];
-        
-        string languageID = LanguageLabel.Tip + Random.Range(1, MaxTipAmt);
-        ResourceManager.Get<Text> (CanvasLabel.C_TipLab).text = Language.GetStr (LanguageLabel.CombineLanguageLabel(LanguageLabel.Tip, languageID));
-    }
-
-	public static void HideTip()
-	{
-		ResourceManager.SetActive (CanvasLabel.C_Tip, false);
-	}
-
-
-    public static void Visit(ConfigSource configSource, string info = null)
-    {
-        if (Manager.SceneSwitchFlag)
-        {
-            return;
-        }
-
-        OnStartEnterVisiteeGarden();
-
-        Manager.Pay
-        (
-            "", 
-            VisitCost, 
-            Current.Coin,
-            () =>
-            {
-                ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG().Duration = 0.5f;
-
-                IsPullConfigComplete = false;
-                IsBlackMaskTweenComplete = false;
-
-                PullConfig(configSource, info);
-
-                AudioManager.PlayClip(AudioLabel.Bubble);
-
-                ResourceManager.SetActive(CanvasLabel.C_Return, false);
-
-                TweenRoot tween;
-
-                if (VisitCDTime != 0)
-                {
-                    ResourceManager.Get<Button>(CanvasLabel.C_Visit).interactable = false;
-
-                    tween = ResourceManager.Get(CanvasLabel.C_VisitLab).StreamReForScale();
-
-                    tween.AddEventOnetime
-                    (
-                        EventType.ForwardFinish,
-                        () =>
-                        {
-                            ResourceManager.Get<Button>(CanvasLabel.C_Visit).interactable = true;
-                        }
-                    );
-                }
-
-
-                tween = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
-
-                tween.AddEventOnetime
-                (
-                    EventType.BackwardFinish,
-                    () =>
-                    {
-                        IsBlackMaskTweenComplete = true;
-
-                        EnterVisiteeGarden();
-                    }
-                );
-            },
-            StaticsManager.ItemID.参观花费,
-            StaticsManager.ConsumeModule.Shop,
-            false
-        );
-    }
-
-    public static void PullConfig(ConfigSource configSource, string info = null)
-    {
-        if (configSource == ConfigSource.SerialNumber)
-        {
-            HttpManager.GetTargetConfig
-            (
-                info,
-                data =>
-                {
-                    VisiteeSerialNumber = info;
-                    PullConfigCallback
-                    (
-                        data,
-                        ShowVisitFailPanelFromSelfGarden,
-                        (jData) =>
-                        {
-                            //Debug.Log(jData.ToJson());
-                            XmlDocument document = new XmlDocument();
-                            document.LoadXml(data["l"].ToString());
-                            EnterVisiteeGarden(new VisitData(jData, document));
-                        }
-                    );
-                }
-            );
-        }
-        else if (configSource == ConfigSource.Random)
-        {
-            if (UnusedDataList.Count > 0)
-            {
-                EnterVisiteeGarden(UnusedDataList[0]);
-
-                UsedDataList.Add(UnusedDataList[0]);
-                UnusedDataList.RemoveAt(0);
-            }
-            else if (UsedDataList.Count > 0)
-            {
-                EnterVisiteeGarden(UsedDataList.Random()[0]);
-            }
-            else
-            {
-                ShowVisitFailPanelFromSelfGarden();
-            }
-        }
-    }
-
-    public static void PullConfigCallback(JsonData jsonData, Action failed, Action<JsonData> succeed)
-    {
-        if (jsonData.Inst_Object.ContainsKey("l"))
-        {
-            if (succeed != null)
-                succeed.Invoke(jsonData);
-        }
-        else
-        {
-            if (failed != null)
-                failed.Invoke();
-        }
-    }
-
-    public static void SavePulledConfig(JsonData jsonData)
-    {
-        //Debug.Log(jsonData.ToJson());
-        XmlDocument document = new XmlDocument();
-        document.LoadXml(jsonData["l"].ToString());
-        //Debug.Log(1);
-        if (ConfigManager.GetGardenLevel(document) == 0)
-        {
-            return;
-        }
-        //Debug.Log(2);
-        XmlNode xmlNode = document.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SerialNumber);
-        //UnusedDataList.Add(new VisitData(jsonData, document));
-        if (xmlNode != null && xmlNode.Attributes[0].Value != HttpManager.SerialNumber)
-        {
-            UnusedDataList.Add(new VisitData(jsonData, document));
-        }
-    }
-
-    public static string CreateFakeConfig()
-    {
-        XmlDocument doc = new XmlDocument();
-
-        doc.LoadXml(ConfigManager.ConfigDocument.OuterXml); //以自己的存档做模板进行修改
-
-        int newLevel = Random.Range(1, 450); //随机等级
-
-        #region 根据等级确定有多少土地解锁
-
-        int slot = 1; //解锁土地数量
-
-        XmlNodeList nodeList = doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
-
-        for (int i = 0; i < nodeList.Count; i++)
-        {
-            SkillType type = nodeList[i].Attributes[1].Value.ToEnum<SkillType>();
-
-            if (type == SkillType.Ability)
-            {
-                Ability ability = (Ability)Manager.SkillDictionary[nodeList[i].Attributes[0].Value];
-
-                int unlockLevel = ability.UnlockLv;
-
-                if (newLevel >= unlockLevel)
-                {
-                    if (ability.ID >= 6)
-                    {
-                        slot++;
-                    }
-
-                    nodeList[i].Attributes[2].Value = "Upgrade";
-                    nodeList[i].Attributes[3].Value = newLevel.ToString();
-                }
-                else
-                {
-                    nodeList[i].Attributes[2].Value = "Lock";
-                    nodeList[i].Attributes[3].Value = "0";
-                }
-            }
-        }
-
-        #endregion
-
-        #region 随机种一些花
-
-        bool fancy = Random.Range(0f, 1f) < FancyGardenRate; //fancy=True时 种的花比较多
-
-        List<int> flowerList = new List<int>();
-
-        for (int i = 1; i < 36; i++)
-        {
-            flowerList.Add(i);
-        }
-
-        int slotIndex = 0;
-        string plantList = "";
-
-        for (int i = 0; i < slot; i++)
-        {
-            if (fancy || Random.Range(0f, 1f) >= 0.35f)
-            {
-                int flowerID = slotIndex + 1;
-
-                plantList += string.Format("{0},{1} ", flowerID, slotIndex);
-
-                slotIndex++;
-            }
-        }
-
-        plantList = plantList.TrimEnd(' ');
-
-        doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.PlantList).Attributes[0].Value = plantList;
-
-        #endregion
-
-        #region 随机一套服装 等级越高拥有的服装越多 再随机选几件穿上
-
-        XmlNode xmlNode = doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.DressData);
-        xmlNode.Attributes[0].Value = "";
-
-
-        xmlNode.Attributes[0].Value = PlayerManager.CloseItemDictionary[Random.Range(2, (int)Mathf.Lerp(2, 30, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[1].Value = PlayerManager.CloseItemDictionary[Random.Range(201, (int)Mathf.Lerp(201, 217, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[2].Value = PlayerManager.CloseItemDictionary[Random.Range(401, (int)Mathf.Lerp(401, 415, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[3].Value = PlayerManager.CloseItemDictionary[Random.Range(601, (int)Mathf.Lerp(601, 612, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[4].Value = PlayerManager.CloseItemDictionary[Random.Range(801, (int)Mathf.Lerp(801, 817, newLevel / 449f) + 1)].ArmatureName;
-        xmlNode.Attributes[7].Value = PlayerManager.CloseItemDictionary[Random.Range(1001, (int)Mathf.Lerp(1001, 1003, newLevel / 449f) + 1)].ArmatureName;
-
-        #region 随机选一套眼睛嘴巴
-
-        float eyeMouseRate = Random.Range(0f, 1f);
-
-        if (eyeMouseRate <= 0.33f)
-        {
-            xmlNode.Attributes[5].Value = "眼睛1";
-            xmlNode.Attributes[6].Value = "嘴巴1";
-        }
-        else if (eyeMouseRate <= 0.66f)
-        {
-            xmlNode.Attributes[5].Value = "眼睛2";
-            xmlNode.Attributes[6].Value = "嘴巴2";
-        }
-        else
-        {
-            xmlNode.Attributes[5].Value = "眼睛3";
-            xmlNode.Attributes[6].Value = "嘴巴3";
-        }
-
-        #endregion
-
-        #endregion
-
-        return doc.OuterXml;
-    }
+using LitJson;
+
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.Events;
+
+using System;
+using System.Xml;
+using System.Collections;
+using System.Collections.Generic;
+
+using Random = UnityEngine.Random;
+
+public enum ConfigSource
+{
+    Fake,
+    Random,
+    SerialNumber,
+}
+
+public class VisitData
+{
+    //public bool Praised;
+
+    public JsonData JsonData;
+    public XmlDocument Document;
+
+    public VisitData(JsonData jsonData, XmlDocument document)
+    {
+        JsonData = jsonData;
+        Document = document;
+    }
+}
+
+public class VisitManager : Regist
+{
+    #region Config
+
+    #region 配置
+
+    public static int VisitCost
+    {
+        get { return visitCost; }
+        set
+        {
+            visitCost = value;
+
+            ResourceManager.Get<Text>(CanvasLabel.C_CostLab).text = TransferLabel.CoinSprite + VisitCost;
+        }
+    }
+    public static int visitCost;
+
+    public static int VisitCDTime;
+    public static float FancyGardenRate;
+    public static float CreateAwardRate;
+    public static float FakeGardenRate;
+    public static string VisitCostFml;
+    public static string AwardMinFml;
+    public static string AwardMaxFml;
+
+    #endregion
+
+    public static float moveTimer;
+    public static Player selfPlayer;
+
+    public static int MaxTipAmt = 10;
+    public static Action OnExitVisteeGarden;
+    public static Action OnEnterVisteeGarden;
+
+    public static int MaxStachConfigAmt = 8;
+    public static float PullArchiveTime = 0.5f;
+    public static float PullConfigTimer;
+    public static List<VisitData> UsedDataList = new List<VisitData>();
+    public static List<VisitData> UnusedDataList = new List<VisitData>();
+
+    public static bool Inited;
+    public static bool InVisit;
+    public static bool IsPullConfigComplete;
+    public static bool IsBlackMaskTweenComplete;
+
+    public static int VisiteeLevel;
+    public static int VisiteeTotalSlot;
+    public static int VisiteePraiseAmt;
+    public static string VisiteeSerialNumber;
+    public static Player VisiteePlayer;
+    public static XmlNode VisiteeRootNode;
+    public static XmlDocument VisiteeDocument;
+    public static List<Slot> VisiteePlantList;
+
+    public static bool PlayerBirdFlag;
+    public static bool PlayerTreeFlag;
+    public static bool PlayerRainbowFlag;
+    public static List<Slot> PlayerPlantList;
+    public static List<ElfType> PlayerElfList;
+
+    #endregion
+
+    public void Update()
+    {
+        if (selfPlayer != null)
+        {
+            moveTimer += Time.deltaTime;
+            if (moveTimer > 3f)
+            {
+                moveTimer = 0;
+
+                PlayerDirection direction = PlayerDirection.Right;
+                if (Random.Range(0f, 1f) > 0.5f)
+                {
+                    direction = PlayerDirection.Left;
+                }
+
+                Vector2 moveDist = new Vector2(Random.Range(0, 2.5f), 0);
+                if (direction == PlayerDirection.Left)
+                {
+                    moveDist.x *= -1;
+                }
+
+                selfPlayer.Flip(direction);
+                TweenVec tweenVec = selfPlayer.CreateTweenVecOffset2D(moveDist, 1f, true, true, true, Curve.EaseOutQuad);
+                selfPlayer.TweenForVec();
+                selfPlayer.PlayAnim(Player.WalkAnimationName);
+
+                tweenVec.OnForwardFinish += () => { selfPlayer.PlayAnim(Player.IdleAnimationName); };
+            }
+            selfPlayer.ResetDepth();
+        }
+
+
+        if (UnusedDataList.Count > MaxStachConfigAmt)
+        {
+            return;
+        }
+
+        PullConfigTimer += Time.deltaTime;
+
+        if (PullConfigTimer >= PullArchiveTime)
+        {
+            PullConfigTimer = 0;
+
+            HttpManager.GetRandomConfig
+            (
+                data =>
+                {
+                    PullConfigCallback(data, null, SavePulledConfig);
+                }
+            );
+        }
+    }
+
+
+    public static void Init()
+    {
+        MaxTipAmt = 0;
+        for (int i = 1; i < 100; i++)
+        {
+            if (Language.ContainNode(LanguageLabel.Tip, LanguageLabel.Tip + i))
+            {
+                MaxTipAmt++;
+            }
+        }
+        MaxTipAmt++;
+
+        XmlAttributeCollection attribute = ConfigManager.GetVisitConfig();
+
+        VisitCostFml = attribute[5].Value;
+
+        VisitCost = Mathf.FloorToInt((float)Auxiliary.FmlParse(VisitCostFml, "l", Manager.GardenLevel.ToString()));
+        AwardMinFml = attribute[2].Value;
+        AwardMaxFml = attribute[3].Value;
+
+        VisitCDTime = int.Parse(attribute[4].Value);
+        FancyGardenRate = float.Parse(attribute[7].Value);
+        CreateAwardRate = float.Parse(attribute[1].Value);
+        FakeGardenRate = float.Parse(attribute[6].Value);
+
+        #region 倒计时
+
+        if (VisitCDTime != 0)
+        {
+            Text text = ResourceManager.Get<Text>(CanvasLabel.C_VisitLab);
+
+            List<float> delayList = new List<float>();
+            List<float> durationList = new List<float>();
+            List<VecPair> pairList = new List<VecPair>();
+            List<UnityAction> actionList = new List<UnityAction>();
+
+            Vector3 v1 = new Vector3(0.75f, 0.75f, 0.75f);
+            Vector3 v2 = new Vector3(0.4f, 0.4f, 0.4f);
+            Vector3 v3 = new Vector3(0, 0, 0);
+
+            for (int i = 0; i < VisitCDTime - 1; i++)
+            {
+                delayList.Add(0.5f);
+                delayList.Add(0);
+            }
+
+            delayList.Add(0.5f);
+
+            for (int i = 0; i < VisitCDTime; i++)
+            {
+                durationList.Add(0.25f);
+                durationList.Add(0.25f);
+
+                pairList.Add(new VecPair(v1, v2));
+                pairList.Add(new VecPair(v2, v3));
+
+                var tempInt = i;
+                actionList.Add
+                (
+                    () =>
+                    {
+                        text.text = (VisitCDTime - tempInt).ToString();
+                        AudioManager.PlayClip(AudioLabel.ClickButton);
+                    }
+                );
+
+                actionList.Add(null);
+            }
+
+            TweenRoot tween = ResourceManager.Get(CanvasLabel.C_VisitLab).CreateStreamScale
+            (
+                delayList,
+                durationList,
+                pairList,
+                true,
+                false,
+                Curve.EaseOutQuad,
+                false,
+                actionList
+            );
+
+            tween.OnForwardFinish += () =>
+            {
+                AudioManager.PlayClip(AudioLabel.Bubble);
+            };
+        }
+
+        #endregion
+
+        OnEnterVisteeGarden += () =>
+        {
+            ResourceManager.SetActive(CanvasLabel.C_OpenCloseRightSidePanelButtons, false);
+            ResourceManager.Get<Button>(CanvasLabel.C_OpenSidePanelButton).onClick.Invoke();
+
+            if (LeftSidePanel.isOpen == false)
+            {
+                ResourceManager.Get<Button>(CanvasLabel.C_OpenLeftSidePanelButton).onClick.Invoke();
+            }
+            ResourceManager.SetActive(CanvasLabel.C_OpenCloseLeftSidePanelButtons, false);
+        };
+
+        OnExitVisteeGarden += () =>
+        {
+            ResourceManager.SetActive(CanvasLabel.C_OpenCloseRightSidePanelButtons, true);
+
+            ResourceManager.SetActive(CanvasLabel.C_OpenCloseLeftSidePanelButtons, true);
+            LeftSidePanel.Refresh();
+        };
+
+        Inited = true;
+    }
+
+
+    public static void OnStartEnterVisiteeGarden()
+    {
+        ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, false);
+        ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, false);
+    }
+
+    public static void EnterVisiteeGarden(VisitData visitData)
+    {
+        IsPullConfigComplete = true;
+        VisiteePraiseAmt = int.Parse(visitData.JsonData["p"].ToString());
+        if (visitData.JsonData.Inst_Object.ContainsKey("i"))
+        {
+            VisiteeSerialNumber = visitData.JsonData["i"].ToString();
+        }
+
+        VisiteeDocument = visitData.Document;
+
+        SetVisiteeCommentPanel();
+
+        EnterVisiteeGarden();
+
+        OnEnterVisteeGarden.SafeInvoke();
+
+        if (Application.isEditor)
+        {
+            Debug.Log(VisiteeSerialNumber);
+        }
+    }
+
+    public static void StartExitVisiteeGarden()
+    {
+        ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
+
+		HideTip ();
+
+        ResourceManager.SetActive(CanvasLabel.C_Visit, true);
+        ResourceManager.SetActive(CanvasLabel.C_Coin, true);
+        ResourceManager.SetActive(CanvasLabel.C_Group1, true);
+        ResourceManager.SetActive(CanvasLabel.C_Group2, true);
+
+        ResourceManager.Get<Button>(CanvasLabel.C_NickNameBK).interactable = true;
+
+        ResourceManager.SetActive(CanvasLabel.C_Return, false);
+        ResourceManager.SetActive(CanvasLabel.C_Garden, false);
+
+        GardenManager.InMinigameFlag = true;
+
+        #region Garden
+
+        GardenManager.RetriveAllFlower();
+
+        for (int i = 0; i < GardenManager.SlotPageList.Count; i++)
+        {
+            ResourceManager.Save(GardenManager.SlotPageList[i]);
+        }
+
+        GardenManager.SlotPageList = new List<Transform>();
+
+        GardenManager.SlotList = new List<Slot>();
+        GardenManager.SlotPageList = new List<Transform>();
+
+
+        Garden.ResetPage();
+        Garden.PagePos = new List<Vector3>();
+
+        int pageAmt = GardenManager.DefaultSlotPage;
+
+        if (GardenManager.TotalSlot >= GardenManager.CriticalSlotIndex)
+        {
+            pageAmt = (GardenManager.TotalSlot - GardenManager.CriticalSlotIndex) / GardenManager.TotalSlotInOnePage + 3;
+        }
+
+        for (int i = 0; i < pageAmt; i++)
+        {
+            GardenManager.CreatePage();
+        }
+
+        for (int i = 0; i < GardenManager.SlotList.Count; i++)
+        {
+            if (i < GardenManager.TotalSlot)
+            {
+                GardenManager.SlotList[i].Lock = true;
+                GardenManager.SlotList[i].Available = true;
+            }
+            else
+            {
+                GardenManager.SlotList[i].Lock = false;
+                GardenManager.SlotList[i].Available = false;
+            }
+        }
+
+
+        List<KV<int, int>> plantList = ConfigManager.GetPlantList();
+
+        for (int i = 0; i < plantList.Count; i++)
+        {
+            GardenManager.PlantFlower(plantList[i].Key, plantList[i].Value);
+        }
+
+        #endregion
+
+        #region Bird Tree Rainbow
+
+        if (PlayerBirdFlag)
+        {
+            ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InDestination = true;
+        }
+        else
+        {
+            ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InOrigin = true;
+        }
+
+        if (PlayerTreeFlag)
+        {
+            ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InDestination = true;
+            ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InDestination = true;
+        }
+        else
+        {
+            ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InOrigin = true;
+            ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InOrigin = true;
+        }
+
+        if (PlayerRainbowFlag)
+        {
+            ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InDestination = true;
+        }
+        else
+        {
+            ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InOrigin = true;
+        }
+
+        #endregion
+
+        #region Player
+
+        DestroyImmediate(selfPlayer.gameObject);
+
+        DestroyImmediate(PlayerManager.Player.gameObject);
+        //ResourceManager.Save(PlayerManager.Player);
+
+        ResourceManager.TransformDictionary.Remove(PlayerLabel.Player);
+
+        PlayerManager.Instance.GetPlayer();
+        UIManager.SetEnterMinigameGameLabel();
+
+        Garden.PlayerPos = new List<Vector3>();
+
+        Garden.Player = ResourceManager.Get(PlayerLabel.Player);
+        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.RightPos].position);
+        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.LeftPos].position);
+
+        #endregion
+
+        GardenManager.ElfList = new List<ElfType>(PlayerElfList);
+
+        InVisit = false;
+        IsPullConfigComplete = false;
+        IsBlackMaskTweenComplete = false;
+
+        SetPlayerPraise();
+        SetPlayerCommentPanel();
+        SetPlayerRankPanel();
+        SetPlayerNickName();
+        OnExitVisteeGarden.SafeInvoke();
+    }
+
+    public static void OnStartExitVisiteeGarden()
+    {
+        if (Manager.GardenLevel >= TutorialManager.PlazaRoomTutorialLevel)
+        {
+            ResourceManager.SetActive(CanvasLabel.C_FashionShowButton, true);
+            ResourceManager.SetActive(CanvasLabel.C_EnterPlazaRoom0, true);
+        }
+    }
+
+    public static void EnterVisiteeGarden()
+    {
+        if (!IsPullConfigComplete || !IsBlackMaskTweenComplete)
+        {
+            return;
+        }
+
+        //if (ConfigManager.GetConfigVersion(ConfigManager.ConfigDocument) < ConfigManager.GetConfigVersion(VisiteeDocument))
+        //{
+        //    ShowVisitFailPanelFromSelfGarden();
+        //    return;
+        //}
+
+        ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
+        //Debug.Log(Document.OuterXml);
+        SetVisiteePraise(VisiteeDocument);
+
+        VisiteeRootNode = VisiteeDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
+
+        ResourceManager.SetActive(CanvasLabel.C_Coin, false);
+        ResourceManager.SetActive(CanvasLabel.C_Group1, false);
+        ResourceManager.SetActive(CanvasLabel.C_Group2, false);
+
+        ResourceManager.Get<Button>(CanvasLabel.C_NickNameBK).interactable = false;
+
+        ResourceManager.SetActive(CanvasLabel.C_Garden, true);
+
+        if (!InVisit)
+        {
+            GardenManager.RetrieveAllStar();
+            GardenManager.RetrieveAllElf();
+            IAPManager.RetrieveADChest();
+
+            GardenManager.StarList = new List<Star>();
+        }
+
+        if (FriendPanel.FriendAccountDatas.MyContains(data => data.SerialNumber == VisiteeSerialNumber))
+        {
+            ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, false);
+        }
+        else
+        {
+            ResourceManager.SetActive(CanvasLabel.C_AddFriendButton, true);
+        }
+
+        ResourceManager.SetActive(CanvasLabel.C_Return, true);
+
+        GardenManager.InMinigameFlag = false;
+
+        #region Bird Tree Rainbow
+
+        if (!InVisit)
+        {
+            if (ResourceManager.Get(GardenLabel.BirdPivot).gameObject.activeSelf)
+            {
+                PlayerBirdFlag = true;
+            }
+
+            if (ResourceManager.Get(GardenLabel.GardenLeftTree).gameObject.activeSelf)
+            {
+                PlayerTreeFlag = true;
+            }
+
+            if (ResourceManager.Get(GardenLabel.GardenRainbow).gameObject.activeSelf)
+            {
+                PlayerRainbowFlag = true;
+            }
+        }
+
+        ResourceManager.SetActive(GardenLabel.BirdPivot, false);
+        ResourceManager.SetActive(GardenLabel.GardenLeftTree, false);
+        ResourceManager.SetActive(GardenLabel.GardenRightTree, false);
+        ResourceManager.SetActive(GardenLabel.GardenRainbow, false);
+
+        #endregion
+
+        #region Ability
+
+        VisiteeTotalSlot = GardenManager.DefaultUnlockSlot;
+        VisiteeTotalSlot += ConfigManager.GetIntFormConfig(PlayerConfigLabel.ExtraSlot);
+
+        if (!InVisit)
+        {
+            PlayerElfList = new List<ElfType>(GardenManager.ElfList);
+        }
+
+        GardenManager.ElfList = new List<ElfType>();
+
+        List<XmlAttributeCollection> attributeList = ConfigManager.GetSkillList(VisiteeRootNode);
+
+        for (int i = 0; i < attributeList.Count; i++)
+        {
+            if (!attributeList[i][0].Value.Contains("Ability"))
+            {
+                continue;
+            }
+
+            if (attributeList[i][0].Value == "Ability1")
+            {
+                VisiteeLevel = int.Parse(attributeList[i][3].Value);
+
+                ResourceManager.SetText(CanvasLabel.C_GardenLab, Language.GetStr(LanguageLabel.UI__C_GardenLab) + VisiteeLevel);
+
+                continue;
+            }
+
+            if (int.Parse(attributeList[i][3].Value) == 0)
+            {
+                continue;
+            }
+
+            if (attributeList[i][0].Value == "Ability2")
+            {
+                ResourceManager.Get(GardenLabel.GardenRainbow).GetTweenSr().InDestination = true;
+            }
+            else if (attributeList[i][0].Value == "Ability3")
+            {
+                ResourceManager.Get(GardenLabel.GardenLeftTree).GetTweenSr().InDestination = true;
+                ResourceManager.Get(GardenLabel.GardenRightTree).GetTweenSr().InDestination = true;
+            }
+            else if (attributeList[i][0].Value == "Ability4")
+            {
+                ResourceManager.Get(GardenLabel.BirdPivot).GetTweenSr().InDestination = true;
+            }
+            else if (attributeList[i][0].Value == "Ability5")
+            {
+                GardenManager.ElfList.Add(ElfType.Bee_Yellow);
+            }
+            else if (attributeList[i][0].Value == "Ability6")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Bee_Purple);
+            }
+            else if (attributeList[i][0].Value == "Ability7")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Bee_Blue);
+            }
+            else if (attributeList[i][0].Value == "Ability8")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Bee_Red);
+            }
+            else if (attributeList[i][0].Value == "Ability9")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Bee_White);
+            }
+            else if (attributeList[i][0].Value == "Ability10")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_Yellow);
+            }
+            else if (attributeList[i][0].Value == "Ability11")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_Purple);
+            }
+            else if (attributeList[i][0].Value == "Ability12")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_Blue);
+            }
+            else if (attributeList[i][0].Value == "Ability13")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_Red);
+            }
+            else if (attributeList[i][0].Value == "Ability14")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Butterfly_White);
+            }
+            else if (attributeList[i][0].Value == "Ability15")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_Yellow);
+            }
+            else if (attributeList[i][0].Value == "Ability16")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_Purple);
+            }
+            else if (attributeList[i][0].Value == "Ability17")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_Blue);
+            }
+            else if (attributeList[i][0].Value == "Ability18")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_Red);
+            }
+            else if (attributeList[i][0].Value == "Ability19")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Dragonfly_White);
+            }
+            else if (attributeList[i][0].Value == "Ability20")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_Yellow);
+            }
+            else if (attributeList[i][0].Value == "Ability21")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_Purple);
+            }
+            else if (attributeList[i][0].Value == "Ability22")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_Blue);
+            }
+            else if (attributeList[i][0].Value == "Ability23")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_Red);
+            }
+            else if (attributeList[i][0].Value == "Ability24")
+            {
+                VisiteeTotalSlot++;
+
+                GardenManager.ElfList.Add(ElfType.Beetle_White);
+            }
+        }
+        
+        #endregion
+
+        #region Garden
+
+        if (!InVisit)
+        {
+            PlayerPlantList = new List<Slot>(GardenManager.PlantSlotList);
+
+            ConfigManager.SaveDress();
+            ConfigManager.SavePlantList();
+        }
+
+        GardenManager.RetriveAllFlower();
+
+        for (int i = 0; i < GardenManager.SlotPageList.Count; i++)
+        {
+            ResourceManager.Save(GardenManager.SlotPageList[i]);
+        }
+
+        GardenManager.SlotPageList = new List<Transform>();
+
+        GardenManager.SlotList = new List<Slot>();
+        GardenManager.SlotPageList = new List<Transform>();
+
+
+        Garden.ResetPage();
+        Garden.PagePos = new List<Vector3>();
+
+        int pageAmt = GardenManager.DefaultSlotPage;
+
+        if (VisiteeTotalSlot >= GardenManager.CriticalSlotIndex)
+        {
+            pageAmt = (VisiteeTotalSlot - GardenManager.CriticalSlotIndex) / GardenManager.TotalSlotInOnePage + 3;
+        }
+
+        for (int i = 0; i < pageAmt; i++)
+        {
+            GardenManager.CreatePage();
+        }
+        
+        for (int i = 0; i < GardenManager.SlotList.Count; i++)
+        {
+            if (i < VisiteeTotalSlot)
+            {
+                GardenManager.SlotList[i].Lock = true;
+                GardenManager.SlotList[i].Available = true;
+            }
+            else
+            {
+                GardenManager.SlotList[i].Lock = false;
+                GardenManager.SlotList[i].Available = false;
+            }
+        }
+
+        List<KV<int, int>> plantList = ConfigManager.GetPlantList(VisiteeRootNode);
+
+        for (int i = 0; i < plantList.Count; i++)
+        {
+            GardenManager.PlantFlower(plantList[i].Key, plantList[i].Value);
+        }
+
+        #endregion
+
+        #region Player
+
+        if (selfPlayer == null)
+        {
+            selfPlayer = PlayerManager.Player;
+            selfPlayer.transform.position += new Vector3(Random.Range(-2.5f, 2.5f), 0, -0.01f);
+            selfPlayer.SetAllCollider(false);
+        }
+        else
+        {
+            Destroy(PlayerManager.Player.gameObject);
+        }
+
+        //DestroyImmediate(PlayerManager.Player.gameObject);
+        //ResourceManager.Save(PlayerManager.Player);
+
+        ResourceManager.TransformDictionary.Remove(PlayerLabel.Player);
+
+        VisiteePlayer = PlayerManager.Instance.GetPlayer(VisiteeRootNode);
+        VisiteePlayer.SetAllCollider(false);
+
+        Garden.PlayerPos = new List<Vector3>();
+
+        Garden.Player = ResourceManager.Get(PlayerLabel.Player);
+        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.RightPos].position);
+        Garden.PlayerPos.Add(PlayerManager.Player.ChildDic[PlayerLabel.LeftPos].position);
+
+        #endregion
+
+        #region Award
+        
+        if (Random.Range(0f,1f) <= CreateAwardRate)
+        {
+            if (GardenManager.PlantSlotList.Count > 0)
+            {
+                GardenManager.PlantSlotList.Random()[0].PlantFlower.HaveAward = true;
+            }
+        }
+
+        #endregion
+
+        ShowTip();
+
+        XmlNode nicknameNode = VisiteeDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NickName);
+        if (nicknameNode == null || string.IsNullOrEmpty(nicknameNode.Attributes[0].Value))
+        {
+            SetVisiteeNickName(Language.GetStr(LanguageLabel.UI__Unnamed));
+        }
+        else
+        {
+            SetVisiteeNickName(nicknameNode.Attributes[0].Value);
+        }
+
+        InVisit = true;
+    }
+
+    public static void ShowVisitFailPanelFromSelfGarden()
+    {
+        //Debug.Log(0);
+        Bubble.Show
+        (
+            null,
+            Language.GetStr(LanguageLabel.UI__C_VisitFail),
+            null,
+            null,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.I_BlackMask).TweenForCG();
+                if (InVisit)
+                {
+                    ResourceManager.SetActive(CanvasLabel.C_Return, true);
+                }
+                else
+                {
+                    OnStartExitVisiteeGarden();
+                }
+            },
+            null,
+            false
+        );
+
+        Manager.AddCoin(VisitCost, StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.VisitRefund);
+    }
+
+
+    public static void SetPlayerRankPanel()
+    {
+        SocialManager.RecoverRankPanel();
+    }
+
+
+    public static void SetPlayerPraise()
+    {
+        SocialManager.PraiseText.text = HttpManager.PraiseAmt.ToString();
+
+        SocialManager.PraiseButton.interactable = false;
+        SocialManager.PraiseButton.image.color = Color.white;
+        SocialManager.PraiseText.color =Lib.PraiseTextBlue;
+    }
+
+    public static void SetVisiteePraise(XmlDocument document)
+    {
+        SocialManager.PraiseText.text = VisiteePraiseAmt.ToString();
+        //Debug.Log(VisiteeSerialNumber);
+        HttpManager.CheckIsPraised
+        (
+            HttpManager.SerialNumber,
+            VisiteeSerialNumber,
+            jsonData =>
+            {
+                if (jsonData["i"].ToString() == "0")
+                {
+                    SocialManager.EnablePraise();
+                }
+                else if (jsonData["i"].ToString() == "1")
+                {
+                    SocialManager.DisablePraise();
+                }
+            }
+        );
+    }
+
+
+    public static void SetPlayerCommentPanel()
+    {
+        if (SocialManager.OpenCommentFlag)
+        {
+            SocialManager.RecoverCommentPanel();
+        }
+        else
+        {
+            //ManaSocial.UpdatePage(true);
+        }
+    }
+
+    public static void SetVisiteeCommentPanel()
+    {
+        SocialManager.ClearCommentPanel();
+
+        //ManaSocial.UpdatePage(false);
+    }
+
+
+    public static void SetPlayerNickName()
+    {
+        ResourceManager.SetText(CanvasLabel.C_NickNameLab, NickNameManager.NickName);
+    }
+
+    public static void SetVisiteeNickName(string nickname)
+    {
+        ResourceManager.SetText(CanvasLabel.C_NickNameLab, nickname);
+    }
+
+
+    public static void UpdateVisitCost()
+    {
+        if (Inited)
+        {
+            VisitCost = Mathf.FloorToInt((float)Auxiliary.FmlParse(VisitCostFml, "l", Manager.GardenLevel.ToString()));
+        }
+    }
+
+
+    public static void ReverseConfigData()
+    {
+        if (InVisit)
+        {
+            VisiteePlantList = new List<Slot>(GardenManager.PlantSlotList);
+
+            GardenManager.PlantSlotList = PlayerPlantList;
+        }
+    }
+
+    public static void RecoverConfigData()
+    {
+        if (InVisit)
+        {
+            GardenManager.PlantSlotList = VisiteePlantList;
+        }
+    }
+
+
+	public static void ShowTip()
+	{
+		ResourceManager.SetActive (CanvasLabel.C_Tip, true);
+
+        HudTarget hudTarget = ResourceManager.Get(CanvasLabel.C_Tip).GetComponent<HudTarget>();
+        hudTarget.PosTra = VisiteePlayer.ChildDic[PlayerLabel.EnterGameTra];
+
+        string languageID = LanguageLabel.Tip + Random.Range(1, MaxTipAmt);
+        ResourceManager.Get<Text> (CanvasLabel.C_TipLab).text = Language.GetStr (LanguageLabel.CombineLanguageLabel(LanguageLabel.Tip, languageID));
+    }
+
+	public static void HideTip()
+	{
+		ResourceManager.SetActive (CanvasLabel.C_Tip, false);
+	}
+
+
+    public static void Visit(ConfigSource configSource, string info = null)
+    {
+        if (Manager.SceneSwitchFlag)
+        {
+            return;
+        }
+
+        OnStartEnterVisiteeGarden();
+
+        Manager.Pay
+        (
+            "", 
+            VisitCost, 
+            Current.Coin,
+            () =>
+            {
+                ResourceManager.Get(CanvasLabel.I_BlackMask).GetTweenCG().Duration = 0.5f;
+
+                IsPullConfigComplete = false;
+                IsBlackMaskTweenComplete = false;
+
+                PullConfig(configSource, info);
+
+                AudioManager.PlayClip(AudioLabel.Bubble);
+
+                ResourceManager.SetActive(CanvasLabel.C_Return, false);
+
+                TweenRoot tween;
+
+                if (VisitCDTime != 0)
+                {
+                    ResourceManager.Get<Button>(CanvasLabel.C_Visit).interactable = false;
+
+                    tween = ResourceManager.Get(CanvasLabel.C_VisitLab).StreamReForScale();
+
+                    tween.AddEventOnetime
+                    (
+                        EventType.ForwardFinish,
+                        () =>
+                        {
+                            ResourceManager.Get<Button>(CanvasLabel.C_Visit).interactable = true;
+                        }
+                    );
+                }
+
+
+                tween = ResourceManager.Get(CanvasLabel.I_BlackMask).TweenBacCG();
+
+                tween.AddEventOnetime
+                (
+                    EventType.BackwardFinish,
+                    () =>
+                    {
+                        IsBlackMaskTweenComplete = true;
+
+                        EnterVisiteeGarden();
+                    }
+                );
+            },
+            StaticsManager.ItemID.参观花费,
+            StaticsManager.ConsumeModule.Shop,
+            false
+        );
+    }
+
+    public static void PullConfig(ConfigSource configSource, string info = null)
+    {
+        if (configSource == ConfigSource.SerialNumber)
+        {
+            HttpManager.GetTargetConfig
+            (
+                info,
+                data =>
+                {
+                    VisiteeSerialNumber = info;
+                    PullConfigCallback
+                    (
+                        data,
+                        ShowVisitFailPanelFromSelfGarden,
+                        (jData) =>
+                        {
+                            //Debug.Log(jData.ToJson());
+                            XmlDocument document = new XmlDocument();
+                            document.LoadXml(data["l"].ToString());
+                            EnterVisiteeGarden(new VisitData(jData, document));
+                        }
+                    );
+                }
+            );
+        }
+        else if (configSource == ConfigSource.Random)
+        {
+            if (UnusedDataList.Count > 0)
+            {
+                EnterVisiteeGarden(UnusedDataList[0]);
+
+                UsedDataList.Add(UnusedDataList[0]);
+                UnusedDataList.RemoveAt(0);
+            }
+            else if (UsedDataList.Count > 0)
+            {
+                EnterVisiteeGarden(UsedDataList.Random()[0]);
+            }
+            else
+            {
+                ShowVisitFailPanelFromSelfGarden();
+            }
+        }
+    }
+
+    public static void PullConfigCallback(JsonData jsonData, Action failed, Action<JsonData> succeed)
+    {
+        if (jsonData.Inst_Object.ContainsKey("l"))
+        {
+            if (succeed != null)
+                succeed.Invoke(jsonData);
+        }
+        else
+        {
+            if (failed != null)
+                failed.Invoke();
+        }
+    }
+
+    public static void SavePulledConfig(JsonData jsonData)
+    {
+        //Debug.Log(jsonData.ToJson());
+        XmlDocument document = new XmlDocument();
+        document.LoadXml(jsonData["l"].ToString());
+        //Debug.Log(1);
+        if (ConfigManager.GetGardenLevel(document) == 0)
+        {
+            return;
+        }
+        //Debug.Log(2);
+        XmlNode xmlNode = document.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SerialNumber);
+        //UnusedDataList.Add(new VisitData(jsonData, document));
+        if (xmlNode != null && xmlNode.Attributes[0].Value != HttpManager.SerialNumber)
+        {
+            UnusedDataList.Add(new VisitData(jsonData, document));
+        }
+    }
+
+    public static string CreateFakeConfig()
+    {
+        XmlDocument doc = new XmlDocument();
+
+        doc.LoadXml(ConfigManager.ConfigDocument.OuterXml); //以自己的存档做模板进行修改
+
+        int newLevel = Random.Range(1, 450); //随机等级
+
+        #region 根据等级确定有多少土地解锁
+
+        int slot = 1; //解锁土地数量
+
+        XmlNodeList nodeList = doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
+
+        for (int i = 0; i < nodeList.Count; i++)
+        {
+            SkillType type = nodeList[i].Attributes[1].Value.ToEnum<SkillType>();
+
+            if (type == SkillType.Ability)
+            {
+                Ability ability = (Ability)Manager.SkillDictionary[nodeList[i].Attributes[0].Value];
+
+                int unlockLevel = ability.UnlockLv;
+
+                if (newLevel >= unlockLevel)
+                {
+                    if (ability.ID >= 6)
+                    {
+                        slot++;
+                    }
+
+                    nodeList[i].Attributes[2].Value = "Upgrade";
+                    nodeList[i].Attributes[3].Value = newLevel.ToString();
+                }
+                else
+                {
+                    nodeList[i].Attributes[2].Value = "Lock";
+                    nodeList[i].Attributes[3].Value = "0";
+                }
+            }
+        }
+
+        #endregion
+
+        #region 随机种一些花
+
+        bool fancy = Random.Range(0f, 1f) < FancyGardenRate; //fancy=True时 种的花比较多
+
+        List<int> flowerList = new List<int>();
+
+        for (int i = 1; i < 36; i++)
+        {
+            flowerList.Add(i);
+        }
+
+        int slotIndex = 0;
+        string plantList = "";
+
+        for (int i = 0; i < slot; i++)
+        {
+            if (fancy || Random.Range(0f, 1f) >= 0.35f)
+            {
+                int flowerID = slotIndex + 1;
+
+                plantList += string.Format("{0},{1} ", flowerID, slotIndex);
+
+                slotIndex++;
+            }
+        }
+
+        plantList = plantList.TrimEnd(' ');
+
+        doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.PlantList).Attributes[0].Value = plantList;
+
+        #endregion
+
+        #region 随机一套服装 等级越高拥有的服装越多 再随机选几件穿上
+
+        XmlNode xmlNode = doc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.DressData);
+        xmlNode.Attributes[0].Value = "";
+
+
+        xmlNode.Attributes[0].Value = PlayerManager.CloseItemDictionary[Random.Range(2, (int)Mathf.Lerp(2, 30, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[1].Value = PlayerManager.CloseItemDictionary[Random.Range(201, (int)Mathf.Lerp(201, 217, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[2].Value = PlayerManager.CloseItemDictionary[Random.Range(401, (int)Mathf.Lerp(401, 415, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[3].Value = PlayerManager.CloseItemDictionary[Random.Range(601, (int)Mathf.Lerp(601, 612, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[4].Value = PlayerManager.CloseItemDictionary[Random.Range(801, (int)Mathf.Lerp(801, 817, newLevel / 449f) + 1)].ArmatureName;
+        xmlNode.Attributes[7].Value = PlayerManager.CloseItemDictionary[Random.Range(1001, (int)Mathf.Lerp(1001, 1003, newLevel / 449f) + 1)].ArmatureName;
+
+        #region 随机选一套眼睛嘴巴
+
+        float eyeMouseRate = Random.Range(0f, 1f);
+
+        if (eyeMouseRate <= 0.33f)
+        {
+            xmlNode.Attributes[5].Value = "眼睛1";
+            xmlNode.Attributes[6].Value = "嘴巴1";
+        }
+        else if (eyeMouseRate <= 0.66f)
+        {
+            xmlNode.Attributes[5].Value = "眼睛2";
+            xmlNode.Attributes[6].Value = "嘴巴2";
+        }
+        else
+        {
+            xmlNode.Attributes[5].Value = "眼睛3";
+            xmlNode.Attributes[6].Value = "嘴巴3";
+        }
+
+        #endregion
+
+        #endregion
+
+        return doc.OuterXml;
+    }
 }

+ 14 - 8
Assets/Script/Object/Player.cs

@@ -288,7 +288,7 @@ public class CloseItem
                     return;
                 }
 
-               ChangeDress(PlayerManager.Player);
+                ChangeDress(PlayerManager.Player);
             }
         );
     }
@@ -390,7 +390,7 @@ public class CloseItem
 
         if (type == 1)
         {
-            return CloseType.Hair; 
+            return CloseType.Hair;
         }
         else if (type == 2)
         {
@@ -514,9 +514,7 @@ public class CloseItem
     {
         if (Manager.Coin < VisitManager.VisitCost)
         {
-            Bubble.Show(null, null, null, Lib.GoldSprite);
-            Bubble.Lab3.text = Language.GetStr(LanguageLabel.Common__ShortCoin);
-            Bubble.Lab3.SetActive(true);
+            Bubble.Show(Language.GetStr(LanguageLabel.Common__ShortCoin), null, null, Lib.GoldSprite);
         }
         else
         {
@@ -724,7 +722,7 @@ public class CloseItem
         {
             return;
         }
-        
+
         if (BuyLevel <= Manager.GardenLevel)
         {
             BuyBtn.interactable = true;
@@ -1040,11 +1038,19 @@ public class Player : Regist , IPointerClickHandler
         }
     }
 
+    public Action onClick;
     public void OnPointerClick(PointerEventData eventData)
     {
-        AudioManager.PlayClip(AudioLabel.GetCurrent);
+        //AudioManager.PlayClip(AudioLabel.GetCurrent);
+
+        //PlayAnim(JumpAnimationName);
+
+        if (Manager.GardenLevel >= TutorialManager.ChangeMouseTutorialLevel)
+        {
+            ChangeMousePanel.Open();
+        }
 
-        PlayAnim(JumpAnimationName);
+        onClick.SafeInvoke();
     }
 
 

+ 189 - 188
Assets/Script/Social/FashionShowCommentPanel.cs

@@ -1,189 +1,190 @@
-using System.Collections;
-using System.Collections.Generic;
-
-using UnityEngine;
-using UnityEngine.UI;
-
-public class FashionShowCommentPanel : Regist
-{
-    #region Config
-
-    private static Text NicknameTitle;
-    private static Text ContentTitle;
-    private static Text Title;
-    private static Text CloseButtonText;
-    private static Text SendCommentButtonText;
-    private static Text Placeholder;
-    private static Button CloseButton;
-    private static Button SendCommentButton;
-    private static Transform Mask;
-    private static InputField commentInputField;
-    private static VirtualScrollRectPlus VirtualScrollRectPlus;
-
-    private static int currentCommentPage;
-    private static int currentCommentIndex;
-    private static bool requesting;
-    private static ShowCommentsHttp commentDataHttp;
-    private static GetFashionShowData showData;
-    private static List<ShowCommentData> commentDatas = new List<ShowCommentData>();
-    private static List<ShowComment> commentItems = new List<ShowComment>();
-
-    #endregion
-
-    public override void RegistReference()
-    {
-        base.RegistReference();
-
-        NicknameTitle = ResourceManager.Get<Text>(CanvasLabel.Ph_NicknameTitle);
-        ContentTitle = ResourceManager.Get<Text>(CanvasLabel.Ph_ContentTitle);
-        Title = ResourceManager.Get<Text>(CanvasLabel.Ph_Title);
-        CloseButtonText = ResourceManager.Get<Text>(CanvasLabel.Ph_CloseButtonText);
-        SendCommentButtonText = ResourceManager.Get<Text>(CanvasLabel.Ph_SendCommentButtonText);
-        Placeholder = ResourceManager.Get<Text>(CanvasLabel.Ph_Placeholder);
-        CloseButton = ResourceManager.Get<Button>(CanvasLabel.Ph_CloseButton);
-        SendCommentButton = ResourceManager.Get<Button>(CanvasLabel.Ph_SendCommentButton);
-        Mask = ResourceManager.Get(CanvasLabel.Ph_CommentMask);
-        commentInputField = ResourceManager.Get<InputField>(CanvasLabel.Ph_InputField);
-        VirtualScrollRectPlus = ResourceManager.Get<VirtualScrollRectPlus>(CanvasLabel.Ph_ScrollRect);
-
-        LanguageManager.Add(Title, new MulLanStr(LanguageLabel.UI__Ph_Tit));
-        LanguageManager.Add(NicknameTitle, new MulLanStr(LanguageLabel.UI__Ph_NicknameTitle));
-        LanguageManager.Add(ContentTitle, new MulLanStr(LanguageLabel.UI__Ph_ContentTitle));
-        LanguageManager.Add(CloseButtonText, new MulLanStr(LanguageLabel.UI__Ph_CloseLab));
-        LanguageManager.Add(SendCommentButtonText, new MulLanStr(LanguageLabel.UI__Ph_CommentLab));
-        LanguageManager.Add(Placeholder, new MulLanStr(LanguageLabel.UI__Ph_Placeholder));
-
-        Mask.CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
-
-        VirtualScrollRectPlus.Init(1, 1000000);
-        VirtualScrollRectPlus.OnGetNextItem += OnGetNextItem;
-        CloseButton.onClick.AddListener(OnCloseButtonClick);
-        SendCommentButton.onClick.AddListener(OnSendCommentButtonClick);
-    }
-
-
-    public static void ShowPanel(GetFashionShowData data)
-    {
-        ResetPanel(data);
-        Mask.TweenForCG();
-    }
-
-    private static void ResetPanel(GetFashionShowData data)
-    {
-        showData = data;
-        requesting = false;
-        currentCommentPage = 0;
-        currentCommentIndex = 0;
-        commentDatas = new List<ShowCommentData>();
-        foreach (var commentItem in commentItems)
-        {
-            DestroyImmediate(commentItem.gameObject);
-        }
-        commentItems = new List<ShowComment>();
-        commentInputField.text = "";
-        OnGetNextItem(0);
-    }
-
-    public static void HidePanel()
-    {
-        Mask.TweenBacCG();
-    }
-
-
-    private static void OnCloseButtonClick()
-    {
-        if (commentDataHttp != null)
-        {
-            commentDataHttp.disable = true;
-        }
-        AudioManager.PlayClip(ResourceLabel.CloseClip);
-        HidePanel();
-    }
-
-
-    private static VirtualScrollRectItem OnGetNextItem(int index)
-    {
-        if (commentDatas.Count > currentCommentIndex)
-        {
-            ShowCommentData data = commentDatas[currentCommentIndex];
-            ShowComment item = ResourceManager.GetShowComment(data);
-            commentItems.Add(item);
-            currentCommentIndex++;
-            return null;
-        }
-        else
-        {
-            GetCommentData();
-            return null;
-        }
-    }
-
-
-    private static void OnSendCommentButtonClick()
-    {
-        AudioManager.PlayClip(ResourceLabel.BtnClip);
-        SendComment();
-    }
-
-    private static void SendComment()
-    {
-        string comment = commentInputField.text;
-        if (StringFilter.ContainSensitiveWord(comment))
-        {
-            Bubble.Show(null, Language.GetStr(LanguageLabel.Common__ContainSensitiveWord));
-            return;
-        }
-        SendCommentButton.interactable = false;
-        long playerId = HttpManager.GetPlayerId();
-        CommentShowHttp.Comment(playerId, showData.showId, comment, 
-            OnSendCommentSuccees, OnSendCommentFail);
-    }
-
-    private static void OnSendCommentSuccees()
-    {
-        commentInputField.text = "";
-        SendCommentButton.interactable = true;
-        ResetPanel(showData);
-    }
-
-    private static void OnSendCommentFail()
-    {
-        SendCommentButton.interactable = true;
-    }
-
-
-    private static void GetCommentData()
-    {
-        if (requesting)
-        {
-            return;
-        }
-        requesting = true;
-        commentDataHttp = ShowCommentsHttp.Get(currentCommentPage, showData.showId, 
-            OnGetCommentDataSuccess, OnGetCommentDataFail);
-    }
-
-    private static void OnGetCommentDataSuccess(object obj)
-    {
-        requesting = false;
-        currentCommentPage++;
-        List<ShowCommentData> datas = (List<ShowCommentData>) obj;
-        foreach (var data in datas)
-        {
-            commentDatas.AddUnique(data, (data0, data1) => data0.id == data1.id);
-        }
-        if (commentItems.Count == 0)
-        {
-            OnGetNextItem(0);
-            OnGetNextItem(0);
-            OnGetNextItem(0);
-            OnGetNextItem(0);
-            OnGetNextItem(0);
-        }
-    }
-
-    private static void OnGetCommentDataFail()
-    {
-        requesting = false;
-    }
+using System.Collections;
+using System.Collections.Generic;
+
+using UnityEngine;
+using UnityEngine.UI;
+
+public class FashionShowCommentPanel : Regist
+{
+    #region Config
+
+    private static Text NicknameTitle;
+    private static Text ContentTitle;
+    private static Text Title;
+    private static Text CloseButtonText;
+    private static Text SendCommentButtonText;
+    private static Text Placeholder;
+    private static Button CloseButton;
+    private static Button SendCommentButton;
+    private static Transform Mask;
+    private static InputField commentInputField;
+    private static VirtualScrollRectPlus VirtualScrollRectPlus;
+
+    private static int currentCommentPage;
+    private static int currentCommentIndex;
+    private static bool requesting;
+    private static ShowCommentsHttp commentDataHttp;
+    private static GetFashionShowData showData;
+    private static List<ShowCommentData> commentDatas = new List<ShowCommentData>();
+    private static List<ShowComment> commentItems = new List<ShowComment>();
+
+    #endregion
+
+    public override void RegistReference()
+    {
+        base.RegistReference();
+
+        NicknameTitle = ResourceManager.Get<Text>(CanvasLabel.Ph_NicknameTitle);
+        ContentTitle = ResourceManager.Get<Text>(CanvasLabel.Ph_ContentTitle);
+        Title = ResourceManager.Get<Text>(CanvasLabel.Ph_Title);
+        CloseButtonText = ResourceManager.Get<Text>(CanvasLabel.Ph_CloseButtonText);
+        SendCommentButtonText = ResourceManager.Get<Text>(CanvasLabel.Ph_SendCommentButtonText);
+        Placeholder = ResourceManager.Get<Text>(CanvasLabel.Ph_Placeholder);
+        CloseButton = ResourceManager.Get<Button>(CanvasLabel.Ph_CloseButton);
+        SendCommentButton = ResourceManager.Get<Button>(CanvasLabel.Ph_SendCommentButton);
+        Mask = ResourceManager.Get(CanvasLabel.Ph_CommentMask);
+        commentInputField = ResourceManager.Get<InputField>(CanvasLabel.Ph_InputField);
+        VirtualScrollRectPlus = ResourceManager.Get<VirtualScrollRectPlus>(CanvasLabel.Ph_ScrollRect);
+
+        LanguageManager.Add(Title, new MulLanStr(LanguageLabel.UI__Ph_Tit));
+        LanguageManager.Add(NicknameTitle, new MulLanStr(LanguageLabel.UI__Ph_NicknameTitle));
+        LanguageManager.Add(ContentTitle, new MulLanStr(LanguageLabel.UI__Ph_ContentTitle));
+        LanguageManager.Add(CloseButtonText, new MulLanStr(LanguageLabel.UI__Ph_CloseLab));
+        LanguageManager.Add(SendCommentButtonText, new MulLanStr(LanguageLabel.UI__Ph_CommentLab));
+        LanguageManager.Add(Placeholder, new MulLanStr(LanguageLabel.UI__Ph_Placeholder));
+
+        Mask.CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        VirtualScrollRectPlus.Init(1, 1000000);
+        VirtualScrollRectPlus.OnGetNextItem += OnGetNextItem;
+        CloseButton.onClick.AddListener(OnCloseButtonClick);
+        SendCommentButton.onClick.AddListener(OnSendCommentButtonClick);
+    }
+
+
+    public static void ShowPanel(GetFashionShowData data)
+    {
+        ResetPanel(data);
+        Mask.TweenForCG();
+    }
+
+    private static void ResetPanel(GetFashionShowData data)
+    {
+        showData = data;
+        requesting = false;
+        currentCommentPage = 0;
+        currentCommentIndex = 0;
+        commentDatas = new List<ShowCommentData>();
+        foreach (var commentItem in commentItems)
+        {
+            DestroyImmediate(commentItem.gameObject);
+        }
+        commentItems = new List<ShowComment>();
+        commentInputField.text = "";
+        OnGetNextItem(0);
+    }
+
+    public static void HidePanel()
+    {
+        Mask.TweenBacCG();
+    }
+
+
+    private static void OnCloseButtonClick()
+    {
+        if (commentDataHttp != null)
+        {
+            commentDataHttp.disable = true;
+        }
+        AudioManager.PlayClip(ResourceLabel.CloseClip);
+        HidePanel();
+    }
+
+
+    private static VirtualScrollRectItem OnGetNextItem(int index)
+    {
+        if (commentDatas.Count > currentCommentIndex)
+        {
+            ShowCommentData data = commentDatas[currentCommentIndex];
+            ShowComment item = ResourceManager.GetShowComment(data);
+            commentItems.Add(item);
+            currentCommentIndex++;
+            return null;
+        }
+        else
+        {
+            GetCommentData();
+            return null;
+        }
+    }
+
+
+    private static void OnSendCommentButtonClick()
+    {
+        AudioManager.PlayClip(ResourceLabel.BtnClip);
+        SendComment();
+    }
+
+    private static void SendComment()
+    {
+        string comment = commentInputField.text;
+        if (StringFilter.ContainSensitiveWord(comment))
+        {
+            Bubble.Show(null, Language.GetStr(LanguageLabel.Common__ContainSensitiveWord));
+            return;
+        }
+        SendCommentButton.interactable = false;
+        long playerId = HttpManager.GetPlayerId();
+        CommentShowHttp.Comment(playerId, showData.showId, comment, 
+            OnSendCommentSuccees, OnSendCommentFail);
+    }
+
+    private static void OnSendCommentSuccees()
+    {
+        commentInputField.text = "";
+        SendCommentButton.interactable = true;
+        ResetPanel(showData);
+        CommentRewardManager.GetReward();
+    }
+
+    private static void OnSendCommentFail()
+    {
+        SendCommentButton.interactable = true;
+    }
+
+
+    private static void GetCommentData()
+    {
+        if (requesting)
+        {
+            return;
+        }
+        requesting = true;
+        commentDataHttp = ShowCommentsHttp.Get(currentCommentPage, showData.showId, 
+            OnGetCommentDataSuccess, OnGetCommentDataFail);
+    }
+
+    private static void OnGetCommentDataSuccess(object obj)
+    {
+        requesting = false;
+        currentCommentPage++;
+        List<ShowCommentData> datas = (List<ShowCommentData>) obj;
+        foreach (var data in datas)
+        {
+            commentDatas.AddUnique(data, (data0, data1) => data0.id == data1.id);
+        }
+        if (commentItems.Count == 0)
+        {
+            OnGetNextItem(0);
+            OnGetNextItem(0);
+            OnGetNextItem(0);
+            OnGetNextItem(0);
+            OnGetNextItem(0);
+        }
+    }
+
+    private static void OnGetCommentDataFail()
+    {
+        requesting = false;
+    }
 }

+ 270 - 260
Assets/Script/Tool/Anim/TweenVec.cs

@@ -1,261 +1,271 @@
-using UnityEngine;
-
-using System;
-using System.Collections;
-
-public class TweenVec : TweenRoot
-{
-    #region
-
-    public override bool InOrigin
-    {
-        get
-        {
-            if (Local)
-            {
-                if (Target.localPosition.Equal(Origin))
-                {
-                    InOrigin_ = true;
-                }
-                else
-                {
-                    InOrigin_ = false;
-                }
-            }
-            else
-            {
-                if (Target.position.Equal(Origin))
-                {
-                    InOrigin_ = true;
-                }
-                else
-                {
-                    InOrigin_ = false;
-                }
-            }
-
-            BackwardFinish();
-
-            return InOrigin_;
-        }
-        set
-        {
-            InOrigin_ = value;
-
-            InPause = false;
-            InForward = false;
-            InBackward = false;
-
-            if (InOrigin_)
-            {
-                if (Local)
-                {
-                    Target.localPosition = Origin;
-                }
-                else
-                {
-                    Target.position = Origin;
-                }
-
-                BackwardFinish();
-            }
-        }
-    }
-
-    public override bool InDestination
-    {
-        get
-        {
-            if (Local)
-            {
-                if (Target.localPosition.Equal(Destination))
-                {
-                    InDestination_ = true;
-                }
-                else
-                {
-                    InDestination_ = false;
-                }
-            }
-            else
-            {
-                if (Target.position.Equal(Destination))
-                {
-                    InDestination_ = true;
-                }
-                else
-                {
-                    InDestination_ = false;
-                }
-            }
-
-            ForwardFinish();
-
-            return InDestination_;
-        }
-        set
-        {
-            InDestination_ = value;
-
-            InPause = false;
-            InForward = false;
-            InBackward = false;
-
-            if (InDestination_)
-            {
-                if (Local)
-                {
-                    Target.localPosition = Destination;
-                }
-                else
-                {
-                    Target.position = Destination;
-                }
-
-                ForwardFinish();
-            }
-        }
-    }
-
-    public bool Local;
-    public Vector3 Delta;
-    public Vector3 Origin;
-    public Vector3 Destination;
-    public Transform Target;
-    public CurveFunctionV Func;
-
-    #endregion
-
-    public TweenVec(Transform target, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve, bool cg = false) : base(cg, curve, target)
-    {
-        CanvasGroup = target.GetComponent<CanvasGroup>();
-
-        Curve = curve;
-        Func = AnimManager.CurveFuncDicV[curve];
-        Target = target;
-
-        InForward = false;
-        InBackward = false;
-
-        Local = local;
-        Delta = destination - origin;
-        Origin = origin;
-        Duration = duration;
-        DestActive = destActive;
-        Destination = destination;
-        OriginActive = originActive;
-    }
-
-
-    public override bool StartForward()
-    {
-        if (base.StartForward())
-        {
-            return true;
-        }
-
-        if (InBackward)
-        {
-            InBackward = false;
-
-            if (Local)
-            {
-                Timer = AnimManager.GetTimerVec(Target.localPosition, Duration, Origin, Delta, Curve);
-            }
-            else
-            {
-                Timer = AnimManager.GetTimerVec(Target.position, Duration, Origin, Delta, Curve);
-            }
-        }
-
-        return false;
-    }
-
-    public override bool StartBackward()
-    {
-        if (base.StartBackward())
-        {
-            return true;
-        }
-
-        if (InForward)
-        {
-            InForward = false;
-
-            if (Local)
-            {
-                Timer = AnimManager.GetTimerVec(Target.localPosition, Duration, Destination, -Delta, Curve);
-            }
-            else
-            {
-                Timer = AnimManager.GetTimerVec(Target.position, Duration, Destination, -Delta, Curve);
-            }
-        }
-
-        return false;
-    }
-
-    public override bool DoForward()
-    {
-        Timer += Time.deltaTime;
-
-        if (Timer > Duration)
-        {
-            InDestination = true;
-
-            if (OnForwardFinish != null)
-            {
-                OnForwardFinish.Invoke();
-            }
-
-            SetLoop(EventType.ForwardFinish);
-
-            return true;
-        }
-        else
-        {
-            if (Local)
-            {
-                Target.localPosition = Func(Timer, Duration, Origin, Delta);
-            }
-            else
-            {
-                Target.position = Func(Timer, Duration, Origin, Delta);
-            }
-
-            return false;
-        }
-    }
-
-    public override bool DoBackward()
-    {
-        Timer += Time.deltaTime;
-
-        if (Timer > Duration)
-        {
-            InOrigin = true;
-
-            if (OnBackwardFinish != null)
-            {
-                OnBackwardFinish.Invoke();
-            }
-
-            SetLoop(EventType.BackwardFinish);
-
-            return true;
-        }
-        else
-        {
-            if (Local)
-            {
-                Target.localPosition = Func(Timer, Duration, Destination, -Delta);
-            }
-            else
-            {
-                Target.position = Func(Timer, Duration, Destination, -Delta);
-            }
-
-            return false;
-        }
-    }
+using UnityEngine;
+
+using System;
+using System.Collections;
+
+public class TweenVec : TweenRoot
+{
+    #region
+
+    public override bool InOrigin
+    {
+        get
+        {
+            if (Local)
+            {
+                if (Target.localPosition.Equal(Origin))
+                {
+                    InOrigin_ = true;
+                }
+                else
+                {
+                    InOrigin_ = false;
+                }
+            }
+            else
+            {
+                if (Target.position.Equal(Origin))
+                {
+                    InOrigin_ = true;
+                }
+                else
+                {
+                    InOrigin_ = false;
+                }
+            }
+
+            BackwardFinish();
+
+            return InOrigin_;
+        }
+        set
+        {
+            InOrigin_ = value;
+
+            InPause = false;
+            InForward = false;
+            InBackward = false;
+
+            if (InOrigin_)
+            {
+                if (Local)
+                {
+                    Target.localPosition = Origin;
+                }
+                else
+                {
+                    Target.position = Origin;
+                }
+
+                BackwardFinish();
+            }
+        }
+    }
+
+    public override bool InDestination
+    {
+        get
+        {
+            if (Local)
+            {
+                if (Target.localPosition.Equal(Destination))
+                {
+                    InDestination_ = true;
+                }
+                else
+                {
+                    InDestination_ = false;
+                }
+            }
+            else
+            {
+                if (Target.position.Equal(Destination))
+                {
+                    InDestination_ = true;
+                }
+                else
+                {
+                    InDestination_ = false;
+                }
+            }
+
+            ForwardFinish();
+
+            return InDestination_;
+        }
+        set
+        {
+            InDestination_ = value;
+
+            InPause = false;
+            InForward = false;
+            InBackward = false;
+
+            if (InDestination_)
+            {
+                if (Local)
+                {
+                    Target.localPosition = Destination;
+                }
+                else
+                {
+                    Target.position = Destination;
+                }
+
+                ForwardFinish();
+            }
+        }
+    }
+
+    public bool Local;
+    public Vector3 Delta;
+    public Vector3 Origin;
+    public Vector3 Destination;
+    public Transform Target;
+    public CurveFunctionV Func;
+
+    #endregion
+
+    public TweenVec(Transform target, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve, bool cg = false) : base(cg, curve, target)
+    {
+        CanvasGroup = target.GetComponent<CanvasGroup>();
+
+        Curve = curve;
+        Func = AnimManager.CurveFuncDicV[curve];
+        Target = target;
+
+        InForward = false;
+        InBackward = false;
+
+        Local = local;
+        Delta = destination - origin;
+        Origin = origin;
+        Duration = duration;
+        DestActive = destActive;
+        Destination = destination;
+        OriginActive = originActive;
+    }
+
+
+    public override bool StartForward()
+    {
+        if (base.StartForward())
+        {
+            return true;
+        }
+
+        if (InBackward)
+        {
+            InBackward = false;
+
+            if (Local)
+            {
+                Timer = AnimManager.GetTimerVec(Target.localPosition, Duration, Origin, Delta, Curve);
+            }
+            else
+            {
+                Timer = AnimManager.GetTimerVec(Target.position, Duration, Origin, Delta, Curve);
+            }
+        }
+
+        return false;
+    }
+
+    public override bool StartBackward()
+    {
+        if (base.StartBackward())
+        {
+            return true;
+        }
+
+        if (InForward)
+        {
+            InForward = false;
+
+            if (Local)
+            {
+                Timer = AnimManager.GetTimerVec(Target.localPosition, Duration, Destination, -Delta, Curve);
+            }
+            else
+            {
+                Timer = AnimManager.GetTimerVec(Target.position, Duration, Destination, -Delta, Curve);
+            }
+        }
+
+        return false;
+    }
+
+    public override bool DoForward()
+    {
+        if (Target  == null)
+        {
+            return true;
+        }
+
+        Timer += Time.deltaTime;
+
+        if (Timer > Duration)
+        {
+            InDestination = true;
+
+            if (OnForwardFinish != null)
+            {
+                OnForwardFinish.Invoke();
+            }
+
+            SetLoop(EventType.ForwardFinish);
+
+            return true;
+        }
+        else
+        {
+            if (Local)
+            {
+                Target.localPosition = Func(Timer, Duration, Origin, Delta);
+            }
+            else
+            {
+                Target.position = Func(Timer, Duration, Origin, Delta);
+            }
+
+            return false;
+        }
+    }
+
+    public override bool DoBackward()
+    {
+        if (Target == null)
+        {
+            return true;
+        }
+
+        Timer += Time.deltaTime;
+
+        if (Timer > Duration)
+        {
+            InOrigin = true;
+
+            if (OnBackwardFinish != null)
+            {
+                OnBackwardFinish.Invoke();
+            }
+
+            SetLoop(EventType.BackwardFinish);
+
+            return true;
+        }
+        else
+        {
+            if (Local)
+            {
+                Target.localPosition = Func(Timer, Duration, Destination, -Delta);
+            }
+            else
+            {
+                Target.position = Func(Timer, Duration, Destination, -Delta);
+            }
+
+            return false;
+        }
+    }
 }

+ 4 - 145
Assets/Script/Tool/Auxiliary.cs

@@ -157,8 +157,11 @@ public class Auxiliary : Regist
 
         if (Input.GetKeyDown(KeyCode.Space))
         {
-            PlayerManager.Player.UAC.anim.Stop();
+            TutorialManager.changeMouseTutorial = true;
+            //PlayerManager.Player.UAC.anim.Stop();
             //Manager.Coin = 0;
+            //Manager.Diamond = 0;
+            //CommentRewardManager.GetReward();
             //Manager.AddCoin(1000000000000, StaticsManager.ItemID.None, StaticsManager.ConsumeModule.None);
             //DebugManager.ResetGardenLevel(50);
             //HttpManager.GetTargetConfig
@@ -172,150 +175,6 @@ public class Auxiliary : Regist
             //);
         }
 
-        //if (Input.GetKeyDown(KeyCode.A))
-        //{
-        //    TutorialManager.fashionShowTutorial = true;
-        //    XmlDocument document = new XmlDocument();
-        //    Debug.Log(ConfigManager.ConfigDocument.InnerXml);
-        //    Debug.Log(ConfigManager.ConfigDocument.OuterXml);
-        //    document.LoadXml(ConfigManager.ConfigDocument.InnerXml);
-        //    XmlNode rootNode = document.SelectSingleNode(PlayerConfigLabel.RootNode);
-        //    rootNode.RemoveChild(rootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial));
-        //    rootNode.RemoveChild(rootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorialIndex));
-        //    rootNode.SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 15.ToString();
-        //    rootNode.SelectSingleNode(PlayerConfigLabel.ID).Attributes[0].Value = "jrjL84";
-        //    rootNode.SelectSingleNode(PlayerConfigLabel.SerialNumber).Attributes[0].Value = "1708014471457405866";
-
-        //    URLRequestData urlData = new URLRequestData();
-        //    urlData.Add("u", "1708014471457405866");
-        //    urlData.Add("v", "1");
-        //    urlData.Add("l", rootNode.OuterXml);
-        //    URLRequest.CreateStrURLRequest(false, HttpManager.SaveURL, urlData, data => { Debug.Log(data); }, URLRequest.Method.POST);
-
-        //    StringFilter.ContainSensitiveWord("真");
-        //    TutorialManager.findMissingMinigameTutorial = true;
-        //    DebugManager.ResetGardenLevel(30);
-        //    Manager.Diamond = 1000;
-        //    PlayerManager.Player.ChangeClose(BodyPart.Eye, "眼睛3");
-        //    FashionShowEditPage.DisplayPlayer.ChangeClose(BodyPart.Eye, "眼睛3");
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.S))
-        //{
-        //    Manager.CoinPerson = 10000050000;
-        //    DebugManager.ResetGardenLevel(49);
-        //    PlayerManager.Player.ChangeClose(BodyPart.Top, "上衣14");
-        //    PlayerManager.Player.DisplayInScene();
-        //    Manager.Coin = 0;
-        //    Manager.Diamond = 0;
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.D))
-        //{
-        //    PlayerPrefManager.SaveBool(PlayerPrefManager.INTERACT_CONFIG, false);
-        //    DebugManager.ResetElf();
-        //    Manager.Coin = 100000;
-        //    Manager.Diamond = 1000;
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.Z))
-        //{
-        //    Manager.MinigameCDTimer = 0;
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.X))
-        //{
-        //    MiniGameManager.GameTimer = 45;
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.C))
-        //{
-        //    ConfigManager.SaveStringToConfig(PlayerConfigLabel.OneTimeReward, "");
-
-        //    SignManager.LastSignTime = DateTime.MinValue;
-
-        //    DebugManager.ResetAbilityAnim();
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.V))
-        //{
-        //    AccountData accountData = new AccountData("测试名字", "1710065808151506837", DateTime.Now.ToString());
-        //    MessagePanel.OpenPanel(accountData);
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.B))
-        //{
-        //    ManaPlayer.Player.PlayAnim("newAnimation3");
-
-        //    ManaPlayer.Player.Flip(PlayerDirection.Left);
-
-        //    foreach (var VARIABLE in ManaPlayer.CloseUnitDic)
-        //    {
-        //        VARIABLE.Value.Unlock();
-        //    }
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.M))
-        //{
-        //    ManaReso.Get(PrefabLabel.G_Flower).SetActive(false);
-
-        //    Debug.Log(ManaGarden.Slot);
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.N))
-        //{
-        //    ManaCenter.Coin = 0;
-        //    ManaCenter.Diamond = 0;
-
-        //    foreach (var VARIABLE in ManaGarden.FlowerInfoDic)
-        //    {
-        //        VARIABLE.Value.Unlock = true;
-        //    }
-
-        //    foreach (var VARIABLE in ManaGarden.FlowerInfoDic)
-        //    {
-        //        VARIABLE.Value.Unlock = false;
-        //    }
-
-        //    ManaGarden.FlowerInfoDic.First().Value.Unlock = true;
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.P))
-        //{
-        //    ManaData.Level += 20;
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.O))
-        //{
-        //    for (int i = 0; i < ManaCenter.CoolList.Count; i++)
-        //    {
-        //        ManaCenter.CoolList[i].CoolTimer = 0;
-        //    }
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.I))
-        //{
-        //    ManaCenter.Coin += 1000;
-        //    ManaCenter.Diamond += 1000;
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.U))
-        //{
-        //    Data.SavePlayerConfig();
-        //    Data.SaveXml();
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.Y))
-        //{
-        //    Data.ResetPlayerConfig();
-        //    Data.SaveXml();
-        //}
-
-        //if (Input.GetKeyDown(KeyCode.T))
-        //{
-        //    ManaData.Pause = !ManaData.Pause;
-        //}
-
         #endregion
 
         #region 输入检测

+ 1113 - 1113
Assets/Script/Tool/Bundle.cs

@@ -1,1114 +1,1114 @@
-using System;
-using UnityEngine;
-using UnityEngine.Events;
-
-using System.Collections;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Xml;
-using assetBundleUtility;
-using DragonBones;
-#if UNITY_EDITOR
-using UnityEditor;
-#endif
-
-using Debug = UnityEngine.Debug;
-using Object = UnityEngine.Object;
-
-public class Bundle : MonoBehaviour
-{
-    #region
-
-    public static string version = "1_3_2";
-
-    public static bool CopyComplete
-    {
-        get { return CopyCount == 0; }
-    }
-    public static bool UpdateComplete;
-    //public static AssetBundle NewDressConfig;
-    public static AssetBundle NewDressSke;
-    public static AssetBundle NewDressTex;
-    //public static AssetBundle NewLanguage;
-    //public static AssetBundle NewFlowerConfig;
-    public static AssetBundle NewFlowerTex;
-    //public static List<XmlAttributeCollection> NewDressroomConfigs = new List<XmlAttributeCollection>();
-    //public static List<XmlAttributeCollection> NewFlowerConfigs = new List<XmlAttributeCollection>();
-
-    public static List<string> HotUpdateAssetBundleNames=new List<string>
-    {
-        ResourceLabel.Config,
-        //ResourceLabel.NewDressConfig,
-        ResourceLabel.NewDressSke,
-        ResourceLabel.NewDressTex,
-        //ResourceLabel.NewLanguage,
-        //ResourceLabel.NewFlowerConfig,
-        ResourceLabel.NewFlowerTex,
-    };
-
-    //public List<Object> NewDressConfigList;
-    public List<Object> NewDressSkeList;
-    public List<Object> NewDressTexList;
-    public List<Object> NewDressTexConfigList;
-    public List<Object> NewDressSpriteList;
-    //public List<Object> NewLanguageList;
-    //public List<Object> NewFlowerConfigList;
-    public List<Object> NewFlowerSpriteList;
-
-    public static Bundle Instance;
-
-    public static bool Complete;
-
-    public static AssetBundle Atlas;
-    public static AssetBundle Atlas2;
-
-    public static AssetBundle Defaul;
-    public static AssetBundle UI;
-    public static AssetBundle Effect;
-    public static AssetBundle Audio;
-    public static AssetBundle Scene;
-    public static AssetBundle Config;
-    public static AssetBundle Discard;
-    public static AssetBundle PlazaRoom;
-
-    public Texture2D AtlasTexture;
-    public Texture2D ExpressionTexture;
-    public List<Object> DefaultList;
-    public List<Object> UiList;
-    public List<Object> AtlasList;
-    public List<Sprite> Atlas2List;
-    public List<Object> EffectList;
-    public List<Object> AudioList;
-    public List<Object> SceneList;
-    public List<Object> ConfigList;
-    public List<Object> DiscardList;
-    public List<Object> PlazaRoomList;
-
-    #endregion
-
-    public void Begin()
-    {
-        Instance = this;
-        LoadAll
-        (
-            () => Complete = true
-        );
-    }
-
-    public static T Load<T>(string goName, Folder folder) where T : Object
-    {
-        if (Initializer.Instance.DebugMode)
-        {
-            #region MyRegion
-
-            if (folder == Folder.UI)
-            {
-                for (int i = 0; i < Instance.UiList.Count; i++)
-                {
-                    if (Instance.UiList[i].name == goName)
-                    {
-                        return (T) Instance.UiList[i];
-                    }
-                }
-            }
-            if (folder == Folder.Default)
-            {
-                for (int i = 0; i < Instance.DefaultList.Count; i++)
-                {
-                    if (Instance.DefaultList[i].name == goName)
-                    {
-                        return (T)Instance.DefaultList[i];
-                    }
-                }
-            }
-            else if (folder == Folder.Audio)
-            {
-                for (int i = 0; i < Instance.AudioList.Count; i++)
-                {
-                    if (Instance.AudioList[i].name == goName)
-                    {
-                        return (T) Instance.AudioList[i];
-                    }
-                }
-            }
-            else if (folder == Folder.Config)
-            {
-                for (int i = 0; i < Instance.ConfigList.Count; i++)
-                {
-                    if (Instance.ConfigList[i].name == goName)
-                    {
-                        return (T) Instance.ConfigList[i];
-                    }
-                }
-            }
-            else if (folder == Folder.Effect)
-            {
-                for (int i = 0; i < Instance.EffectList.Count; i++)
-                {
-                    if (Instance.EffectList[i].name == goName)
-                    {
-                        return (T) Instance.EffectList[i];
-                    }
-                }
-            }
-            else if (folder == Folder.Scene)
-            {
-                if (goName == "Expression")
-                {
-                    return (T) (Object) Sprite.Create(Instance.ExpressionTexture, new Rect(0, 0, Instance.AtlasTexture.width, Instance.AtlasTexture.height), new Vector2(0.5f, 0.5f));
-                }
-
-                for (int i = 0; i < Instance.SceneList.Count; i++)
-                {
-                    if (Instance.SceneList[i].name == goName)
-                    {
-                        return (T) Instance.SceneList[i];
-                    }
-                }
-            }
-            else if (folder == Folder.Discard)
-            {
-                for (int i = 0; i < Instance.DiscardList.Count; i++)
-                {
-                    if (Instance.DiscardList[i].name == goName)
-                    {
-                        return (T) Instance.DiscardList[i];
-                    }
-                }
-            }
-            else if (folder == Folder.Atlas)
-            {
-                if (goName == "Atlas")
-                {
-                    return (T) (Object) Sprite.Create(Instance.AtlasTexture, new Rect(0, 0, Instance.AtlasTexture.width, Instance.AtlasTexture.height), new Vector2(0.5f, 0.5f));
-                }
-
-                for (int i = 0; i < Instance.AtlasList.Count; i++)
-                {
-                    if (Instance.AtlasList[i].name == goName)
-                    {
-                        return (T) Instance.AtlasList[i];
-                    }
-                }
-            }
-            else if (folder == Folder.PlazaRoom)
-            {
-                for (int i = 0; i < Instance.PlazaRoomList.Count; i++)
-                {
-                    if (Instance.PlazaRoomList[i].name == goName)
-                    {
-                        return (T) Instance.PlazaRoomList[i];
-                    }
-                }
-            }
-            //else if (folder == Folder.Dress)
-            //{
-            //    for (int i = 0; i < Instance.DressList.Count; i++)
-            //    {
-            //        if (Instance.DressList[i].name == goName)
-            //        {
-            //            return (T)Instance.DressList[i];
-            //        }
-            //    }
-            //}
-
-            #endregion
-        }
-        else
-        {
-            #region MyRegion
-
-            if (folder == Folder.UI)
-            {
-                return UI.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Audio)
-            {
-                return Audio.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Default)
-            {
-                return Defaul.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Config)
-            {
-                return Config.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Effect)
-            {
-                return Effect.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Scene)
-            {
-                return Scene.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Atlas)
-            {
-                return Atlas.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Atlas2)
-            {
-                return Atlas2.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Discard)
-            {
-                return Discard.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.PlazaRoom)
-            {
-                return PlazaRoom.LoadAsset<T>(goName);
-            }
-
-            #endregion
-        }
-        DebugManager.Log(goName + " " + folder);
-        throw new Exception(goName + " " + folder);
-    }
-
-    public static void LoadAtlasSprites()
-    {
-        if (Initializer.Instance.DebugMode)
-        {
-            for (int i = 0; i < Instance.Atlas2List.Count; i++)
-            {
-                ResourceManager.ObjectDictionary.UniqueAdd(Instance.Atlas2List[i].name, Instance.Atlas2List[i]);
-            }
-
-#if UNITY_EDITOR
-
-
-            List<Object> objects = new List<Object>();
-            string assetPath = AssetDatabase.GetAssetPath(ResourceManager.Load<Texture2D>("stand_texture_0", Folder.Scene));
-            objects.AddRange(AssetDatabase.LoadAllAssetsAtPath(assetPath));
-
-            assetPath = AssetDatabase.GetAssetPath(ResourceManager.Load<Texture2D>("stand_texture_1", Folder.Scene));
-            objects.AddRange(AssetDatabase.LoadAllAssetsAtPath(assetPath));
-
-            for (int i = 0; i < objects.Count; i++)
-            {
-                Sprite sprite = objects[i] as Sprite;
-
-                if (sprite != null)
-                {
-                    PlayerManager.CloseSpriteDictionary.Add(sprite.name, sprite);
-                    ResourceManager.ObjectDictionary.UniqueAdd(sprite.name, sprite);
-                }
-            }
-
-#endif
-        }
-        else
-        {
-            #region MyRegion
-
-            Sprite[] sprites = Atlas2.LoadAllAssets<Sprite>();
-
-            for (int i = 0; i < sprites.Length; i++)
-            {
-                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
-            }
-
-            sprites = Atlas.LoadAllAssets<Sprite>();
-
-            for (int i = 0; i < sprites.Length; i++)
-            {
-                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
-            }
-
-            sprites = Scene.LoadAssetWithSubAssets<Sprite>("FlowerItemAtlas1");
-
-            for (int i = 0; i < sprites.Length; i++)
-            {
-                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
-            }
-
-            List<Object> objects = new List<Object>();
-            objects.AddRange(Scene.LoadAssetWithSubAssets("stand_texture_0", typeof(Sprite)));
-            objects.AddRange(Scene.LoadAssetWithSubAssets("stand_texture_1", typeof(Sprite)));
-
-            for (int i = 0; i < objects.Count; i++)
-            {
-                Sprite sprite = (Sprite) objects[i];
-
-                PlayerManager.CloseSpriteDictionary.Add(sprite.name, sprite);
-                ResourceManager.SpriteDictionary.UniqueAdd(sprite.name, sprite);
-            }
-
-            #endregion
-        }
-    }
-
-    //public static void LoadAllDressBundleAssetsIntoDragonbone()
-    //{
-    //    UnityFactory.factory.LoadDragonBonesData(ResourceManager.Load<TextAsset>(DressLabel.Dress_ske, Folder.Dress));
-
-    //    foreach (var dressName in DressLabel.dressNames)
-    //    {
-    //        ResourceManager.Load<Texture2D>(dressName, Folder.Dress);
-    //        UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(dressName + "_tex", Folder.Dress), dressName);
-    //    }
-
-    //    Sprite[] sprites = Dress.LoadAllAssets<Sprite>();
-
-    //    if (Initializer.Instance.DebugMode)
-    //    {
-    //        for (int i = 0; i < Instance.DressList.Count; i++)
-    //        {
-    //            Sprite sprite = Instance.DressList[i] as Sprite;
-    //            if (sprite != null)
-    //            {
-    //                PlayerManager.CloseSpriteDictionary.Add(sprite.name, sprite);
-    //                ResourceManager.ObjectDictionary.UniqueAdd(sprite.name, sprite);
-    //            }
-    //        }
-    //    }
-    //    else
-    //    {
-    //        for (int i = 0; i < sprites.Length; i++)
-    //        {
-    //            PlayerManager.CloseSpriteDictionary.Add(sprites[i].name, sprites[i]);
-    //            ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
-    //        }
-    //    }
-    //}
-
-
-    public static AssetBundleRequest LoadAsync<T>(string goName, Folder folder)
-    {
-        if (folder == Folder.UI)
-        {
-            return UI.LoadAssetAsync<T>(goName);
-        }
-        else if (folder == Folder.Audio)
-        {
-            return Audio.LoadAssetAsync<T>(goName);
-        }
-        else if (folder == Folder.Default)
-        {
-            return Defaul.LoadAssetAsync<T>(goName);
-        }
-        else if (folder == Folder.Config)
-        {
-            return Config.LoadAssetAsync<T>(goName);
-        }
-        else if (folder == Folder.Effect)
-        {
-            return Effect.LoadAssetAsync<T>(goName);
-        }
-        else if (folder == Folder.Scene)
-        {
-            return Scene.LoadAssetAsync<T>(goName);
-        }
-        else if (folder == Folder.Atlas)
-        {
-            return Atlas.LoadAssetAsync<T>(goName);
-        }
-        else if (folder == Folder.Discard)
-        {
-            return Discard.LoadAssetAsync<T>(goName);
-        }
-        else
-        {
-            throw new Exception();
-        }
-    }
-
-    public static AssetBundleRequest LoadAllAsync<T>(Folder folder)
-    {
-        if (folder == Folder.Atlas2)
-        {
-            return Atlas2.LoadAllAssetsAsync<T>();
-        }
-        else
-        {
-            throw new Exception();
-        }
-    }
-
-
-    public static string GetStreamPath()
-    {
-        if (Application.isEditor)
-            //			return "file://" +  System.Environment.CurrentDirectory.Replace("\\", "/"); // Use the build output folder directly.
-            return "file://" + Application.streamingAssetsPath + "/Bundle/Windows/"; //user local stream
-
-        //else if (Application.isWebPlayer)
-        //    return System.IO.Path.GetDirectoryName(Application.absoluteURL).Replace("\\", "/") + "/StreamingAssets";
-
-        else if (Application.platform == RuntimePlatform.IPhonePlayer)
-            return "file://" + Application.streamingAssetsPath + "/Bundle/IOS/";
-
-        else if (Application.isMobilePlatform || Application.isConsolePlatform)
-            return Application.streamingAssetsPath + "/Bundle/Android/";
-
-        else // For standalone player.
-            return "file://" + Application.streamingAssetsPath;
-
-        //return "file://" + Application.streamingAssetsPath + "/Bundle/Windows/";
-    }
-
-    public static string GetPersistingPath()
-    {
-        if (Application.platform == RuntimePlatform.IPhonePlayer)
-            return "file://" + Application.persistentDataPath;
-        else if (Application.isMobilePlatform)
-            return Application.streamingAssetsPath;
-        else
-            return "file://" + Application.persistentDataPath;
-    }
-
-    public static string GetStreamingUrlPath()
-    {
-        if (Application.platform == RuntimePlatform.IPhonePlayer)
-            return "file://" + Application.streamingAssetsPath;
-        else if (Application.isMobilePlatform)
-            return Application.streamingAssetsPath;
-        else
-            return "file://" + Application.streamingAssetsPath;
-    }
-
-
-    public void LoadAll(UnityAction callback)
-    {
-        Initializer.Instance.StartCoroutine(ILoadAll(callback));
-    }
-
-    public static IEnumerator ILoadAll(UnityAction callback)
-    {
-        yield return LoadDefaul();
-
-        if (!Logo.Complete && !Initializer.Instance.DebugMode)
-        {
-            ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default, () =>
-            {
-                ConfigManager.ConfigDocument = ConfigManager.ConfigDocument;
-                HttpManager.GetBuyPackLimitFlag();
-            });
-        }
-        else
-        {
-            ConfigManager.ConfigDocument = ConfigManager.ConfigDocument;
-            HttpManager.GetBuyPackLimitFlag();
-        }
-
-        //yield return LoadDiscard();
-
-        yield return LoadUI();
-
-        //if (!Logo.Complete && !Initializer.Instance.DebugMode)
-        //{
-        //    ResourceManager.AddAsyncLoad(ResourceLabel.Canvas, 1, Folder.UI, ObjType.Canvas);
-
-        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupA, 1, Folder.UI, ObjType.GroupA, true);
-        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupB, 1, Folder.UI, ObjType.GroupB, true);
-        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupC, 1, Folder.UI, ObjType.GroupC, true);
-        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupE, 1, Folder.UI, ObjType.GroupE, true);
-        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupD, 1, Folder.UI, ObjType.GroupD, true);
-
-        //    ResourceManager.AddAsyncLoad(ResourceLabel.EventSystem, 1, Folder.UI, ObjType.EventSystem);
-        //    ResourceManager.AddAsyncLoad(ResourceLabel.MainCamera, 1, Folder.UI, ObjType.MainCamera);
-
-        //    //ResourceManager.AddAsyncLoad("SkillItem", 31, Folder.UI, ObjType.SkillItem, true);
-        //    //ResourceManager.AddAsyncLoad("SignItem", 21, Folder.UI, ObjType.SignItem, true);
-        //    //ResourceManager.AddAsyncLoad("FlowerItem", 17, Folder.UI, ObjType.FlowerItem, true);
-        //    //ResourceManager.AddAsyncLoad("AchieveItem", 2, Folder.UI, ObjType.AchieveItem, true);
-        //}
-
-        yield return LoadScene();
-
-        //if (!Logo.Complete && !Initializer.Instance.DebugMode)
-        //{
-        //    ResourceManager.AddAsyncLoad(ResourceLabel.Flower, 9, Folder.Scene, ObjType.Flower);
-
-        //    ResourceManager.AddAsyncLoad(ResourceLabel.Page, 2, Folder.Scene, ObjType.SlotPage);
-        //    ResourceManager.AddAsyncLoad(ResourceLabel.Garden, 1, Folder.Scene, ObjType.Garden);
-        //    ResourceManager.AddAsyncLoad(ResourceLabel.DressRoom, 1, Folder.UI, ObjType.DressRoom);
-        //}
-
-        yield return LoadAudio();
-
-        //if (!Logo.Complete && !Initializer.Instance.DebugMode)
-        //{
-        //    ResourceManager.AddAsyncLoad(ResourceLabel.Music, 1, Folder.Audio, ObjType.Music);
-        //}
-
-        yield return LoadAtlas2();
-
-        //if (!Logo.Complete && !Initializer.Instance.DebugMode)
-        //{
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.SkillConfig, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.PackConfig, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.AbilityConfig, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.AchieveConfig, Folder.Config);
-
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.VisitConfig, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.AwardConfig, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.FlowerConfig, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.OfflineConfig, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.SigninConfig, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.DressroomConfig, Folder.Config);
-
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.English, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.ChineseSimplified, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.ChineseTraditional, Folder.Config);
-
-        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.BtnClip, Folder.Audio);
-        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.SkillClip, Folder.Audio);
-        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.ErrorClip, Folder.Audio);
-        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.DropClip, Folder.Audio);
-        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.CloseClip, Folder.Audio);
-        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.FlowerClip, Folder.Audio);
-        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.BubbleClip, Folder.Audio);
-        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.CurrentClip, Folder.Audio);
-        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.MiniEndClip, Folder.Audio);
-
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.StandTex, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.StandSke, Folder.Config);
-        //    ResourceManager.AddAsyncLoad<Texture2D>(ResourceLabel.StandTexture, Folder.Scene);
-        //}
-
-        yield return LoadAtlas();
-        yield return LoadEffect();
-
-        SpriteAsset.AddAllBundleSpriteInfo();
-
-        if (callback != null)
-        {
-            callback.Invoke();
-        }
-    }
-
-
-    public static IEnumerator LoadUI()
-    {
-        WWW www = new WWW(GetStreamPath() + "ui");
-
-        yield return www;
-
-        if (string.IsNullOrEmpty(www.error))
-        {
-            UI = www.assetBundle;
-        }
-        else
-        {
-            Debug.Log(www.error);
-        }
-    }
-
-    public static IEnumerator LoadAtlas()
-    {
-        WWW www = new WWW(GetStreamPath() + "atlas");
-
-        yield return www;
-
-        if (string.IsNullOrEmpty(www.error))
-        {
-            Atlas = www.assetBundle;
-        }
-        else
-        {
-            Debug.Log(www.error);
-        }
-    }
-
-    public static IEnumerator LoadAtlas2()
-    {
-        WWW www = new WWW(GetStreamPath() + "atlas2");
-
-        yield return www;
-
-        if (string.IsNullOrEmpty(www.error))
-        {
-            Atlas2 = www.assetBundle;
-        }
-        else
-        {
-            Debug.Log(www.error);
-        }
-    }
-
-    public static IEnumerator LoadAudio()
-    {
-        WWW www = new WWW(GetStreamPath() + "audio");
-
-        yield return www;
-
-        if (string.IsNullOrEmpty(www.error))
-        {
-            Audio = www.assetBundle;
-        }
-        else
-        {
-            Debug.Log(www.error);
-        }
-    }
-
-    public static IEnumerator LoadDefaul()
-    {
-        WWW www = new WWW(GetStreamPath() + "default");
-
-        yield return www;
-
-        if (string.IsNullOrEmpty(www.error))
-        {
-            Defaul = www.assetBundle;
-        }
-        else
-        {
-            Debug.Log(www.error);
-        }
-    }
-
-    public static IEnumerator LoadEffect()
-    {
-        WWW www = new WWW(GetStreamPath() + "effect");
-
-        yield return www;
-
-        if (string.IsNullOrEmpty(www.error))
-        {
-            Effect = www.assetBundle;
-        }
-        else
-        {
-            Debug.Log(www.error);
-        }
-    }
-
-    public static IEnumerator LoadScene()
-    {
-        WWW www = new WWW(GetStreamPath() + "scene");
-
-        yield return www;
-
-        if (string.IsNullOrEmpty(www.error))
-        {
-            Scene = www.assetBundle;
-        }
-        else
-        {
-            Debug.Log(www.error);
-        }
-    }
-
-    public static IEnumerator LoadDiscard()
-    {
-        WWW www = new WWW(GetStreamPath() + "discard");
-
-        yield return www;
-
-        if (string.IsNullOrEmpty(www.error))
-        {
-            Discard = www.assetBundle;
-        }
-        else
-        {
-            Debug.Log(www.error);
-        }
-    }
-
-    public static IEnumerator LoadPlazaRoom()
-    {
-        WWW www = new WWW(GetStreamPath() + "plazaroom");
-
-        yield return www;
-
-        if (string.IsNullOrEmpty(www.error))
-        {
-            PlazaRoom = www.assetBundle;
-        }
-        else
-        {
-            Debug.Log(www.error);
-        }
-    }
-
-
-    private static int CopyCount = 0;
-    public static void CopyAssetBundles()
-    {
-        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-        if (!Directory.Exists(persistentFolderPath))
-        {
-            Directory.CreateDirectory(persistentFolderPath);
-        }
-        string streamingFolder;
-        if (Application.platform == RuntimePlatform.IPhonePlayer)
-        {
-            streamingFolder = "IOS";
-        }
-        else if (Application.platform == RuntimePlatform.Android)
-        {
-            streamingFolder = "Android";
-        }
-        else
-        {
-            streamingFolder = "Windows";
-        }
-        foreach (var assetBundleName in HotUpdateAssetBundleNames)
-        {
-            if (!File.Exists(persistentFolderPath + Path.DirectorySeparatorChar + assetBundleName))
-            {
-                CopyCount++;
-                Initializer.Instance.StartCoroutine
-                (
-                    LoadAssetBundleFromStream
-                    (
-                        streamingFolder,
-                        assetBundleName,
-                        www =>
-                        {
-                            File.WriteAllBytes(persistentFolderPath + Path.DirectorySeparatorChar + assetBundleName, www.bytes);
-                            CopyOneAssetBundleFinish();
-                        }
-                    )
-                );
-            }
-        }
-    }
-
-    private static void CopyOneAssetBundleFinish()
-    {
-        CopyCount--;
-    }
-
-    public static IEnumerator LoadAssetBundleFromStream(string folder, string name, Action<WWW> callback)
-    {
-        WWW www = new WWW(GetStreamingUrlPath() + Path.DirectorySeparatorChar + "Bundle" + Path.DirectorySeparatorChar + folder + Path.DirectorySeparatorChar + "HotUpdate" + Path.DirectorySeparatorChar + name);
-        yield return www;
-        if (string.IsNullOrEmpty(www.error))
-        {
-            callback.Invoke(www);
-        }
-        else
-        {
-            Debug.Log(www.error);
-            Initializer.DebugText.text = www.error;
-            Initializer.DebugText.SetActive(true);
-            Initializer.DebugText.enabled = true;
-        }
-    }
-
-    public static int UpdateAmt;
-    public static int UpdateFinishAmt;
-    public static bool UpdateAssetBundles()
-    {
-        //Debug.Log(HttpManager.Md5);
-        //Debug.Log(HttpManager.Md5Dictionnary);
-        //Debug.Log(HttpManager.AssetbundleUrl);
-        try
-        {
-            Initializer.DebugText.text = "U0";
-            if (Initializer.Instance.DebugMode)
-            {
-                SkipUpdateForDebugMode();
-                return false;
-            }
-
-            Initializer.DebugText.text = "U1";
-            string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
-
-            Initializer.DebugText.text = "U2";
-            List<AssetBundleSet> assetBundleSets = AssetBundleUtility.GetAssetBundleSetsFromFolders
-            (
-                persistentFolderPath
-            );
-            Initializer.DebugText.text = "U3";
-            string localMD5 = AssetBundleUtility.GetMD5OfAssetBundleSets(assetBundleSets);
-            bool needUpdate; 
-            if (string.IsNullOrEmpty(HttpManager.Md5) || string.IsNullOrEmpty(HttpManager.Md5Dictionnary) || string.IsNullOrEmpty(HttpManager.AssetbundleUrl))
-            {
-                needUpdate = false;
-                Debug.LogWarning(string.Format("NeedUpdate : {0} connection error", needUpdate));
-            }
-            else
-            {
-                //Debug.Log(localMD5);
-                //Debug.Log(HttpManager.Md5);
-                needUpdate = localMD5 != HttpManager.Md5;
-                //Debug.LogWarning(string.Format("NeedUpdate : {0}", needUpdate));
-            }
-            //if (Application.isEditor || Application.isMobilePlatform)
-            //{
-            //    needUpdate = false;
-            //}
-            AssetBundleUtility.OnDownloadOrUpdateFinish += FinishDownloadAndLoad;
-            if (needUpdate)
-            {
-                Initializer.DebugText.text = "U4";
-                UpdateAmt = AssetBundleUtility.UpdateAllAssetBundle
-                (
-                    HttpManager.Md5Dictionnary,
-                    persistentFolderPath,
-                    assetBundleSets,
-                    DownloadAllAssetBundleSucceed,
-                    DownloadAllAssetBundleFailed,
-                    DownloadAssetBundleSucceed,
-                    DownloadAssetBundleFailed
-                );
-                UpdatePanel.Show();
-                UpdatePanel.SetProgress(UpdateAmt, 0);
-            }
-            else
-            {
-                Initializer.DebugText.text = "U5";
-                AssetBundleUtility.LoadAllAssetBundle
-                (
-                    assetBundleSets,
-                    DownloadAllAssetBundleSucceed,
-                    DownloadAllAssetBundleFailed,
-                    DownloadAssetBundleSucceed,
-                    DownloadAssetBundleFailed
-                );
-            }
-            return false;
-        }
-        catch (Exception)
-        {
-            Initializer.EnableDebugLab();
-            return true;
-        }
-    }
-
-    private static void FinishDownloadAndLoad()
-    {
-        try
-        {
-            Initializer.DebugText.text = "01";
-            //NewDressroomConfigs = ConfigManager.GetDressRoomConfig(NewDressConfig.LoadAsset<TextAsset>(ResourceLabel.NewDressroomConfig));
-
-            Initializer.DebugText.text = "02";
-            TextAsset[] textAssets = NewDressSke.LoadAllAssets<TextAsset>();
-            foreach (var textAsset in textAssets)
-            {
-                UnityFactory.factory.LoadDragonBonesData(textAsset);
-            }
-
-            Initializer.DebugText.text = "03";
-            textAssets = NewDressTex.LoadAllAssets<TextAsset>();
-            Texture2D[] textures = NewDressTex.LoadAllAssets<Texture2D>();
-            for (int i = 0; i < textAssets.Length; i++)
-            {
-                ResourceManager.ObjectDictionary.Add(textures[i].name, textures[i]);
-                UnityFactory.factory.LoadTextureAtlasData(textAssets[i], textures[i].name);
-            }
-
-            Initializer.DebugText.text = "04";
-            Sprite[] sprites = NewDressTex.LoadAllAssets<Sprite>();
-            for (int i = 0; i < sprites.Length; i++)
-            {
-                PlayerManager.CloseSpriteDictionary.Add(sprites[i].name, sprites[i]);
-                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
-            }
-
-            Initializer.DebugText.text = "051";
-            TextAsset language = Config.LoadAsset<TextAsset>(ResourceLabel.English);
-            XmlDocument document = new XmlDocument();
-            document.LoadXml(language.text);
-            Language.AddLanguageDocument(CurrentLanguage.English, document);
-
-            Initializer.DebugText.text = "061";
-            language = Config.LoadAsset<TextAsset>(ResourceLabel.ChineseSimplified);
-            document = new XmlDocument();
-            document.LoadXml(language.text);
-            Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
-
-            Initializer.DebugText.text = "071";
-            language = Config.LoadAsset<TextAsset>(ResourceLabel.ChineseTraditional);
-            document = new XmlDocument();
-            document.LoadXml(language.text);
-            Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
-
-            //Initializer.DebugText.text = "052";
-            //language = NewLanguage.LoadAsset<TextAsset>(ResourceLabel.NewEnglish);
-            //document = new XmlDocument();
-            //document.LoadXml(language.text);
-            //Language.AddLanguageDocument(CurrentLanguage.English, document);
-
-            //Initializer.DebugText.text = "062";
-            //language = NewLanguage.LoadAsset<TextAsset>(ResourceLabel.NewChineseSimplified);
-            //document = new XmlDocument();
-            //document.LoadXml(language.text);
-            //Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
-
-            //Initializer.DebugText.text = "072";
-            //language = NewLanguage.LoadAsset<TextAsset>(ResourceLabel.NewChineseTraditional);
-            //document = new XmlDocument();
-            //document.LoadXml(language.text);
-            //Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
-
-            Initializer.DebugText.text = "08";
-            //NewFlowerConfigs = ConfigManager.GetFlowerConfig(NewFlowerConfig.LoadAsset<TextAsset>(ResourceLabel.NewFlowerConfig));
-
-            Initializer.DebugText.text = "09";
-            sprites = NewFlowerTex.LoadAllAssets<Sprite>();
-            for (int i = 0; i < sprites.Length; i++)
-            {
-                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
-            }
-
-            UpdateComplete = true;
-
-            DelayCall.Call(1f, UpdatePanel.Hide);
-        }
-        catch (Exception e)
-        {
-            Debug.Log(e);
-            Initializer.DebugText.text += e.ToString();
-            Initializer.EnableDebugLab();
-        }
-    }
-
-    public static void DownloadAllAssetBundleSucceed()
-    {
-        //Debug.Log("succeed");
-    }
-
-    public static void DownloadAllAssetBundleFailed()
-    {
-        Debug.Log("failed");
-    }
-
-    public static void DownloadAssetBundleSucceed(AssetBundleSet assetBundleSet, bool isDownload)
-    {
-        //Debug.Log(assetBundleSet.AssetBundle.name);
-        //if (assetBundleSet.Name == ResourceLabel.NewDressConfig)
-        //{
-        //    NewDressConfig = assetBundleSet.AssetBundle;
-        //}
-        if (assetBundleSet.Name == ResourceLabel.NewDressSke)
-        {
-            NewDressSke = assetBundleSet.AssetBundle;
-        }
-        else if (assetBundleSet.Name == ResourceLabel.NewDressTex)
-        {
-            NewDressTex = assetBundleSet.AssetBundle;
-        }
-        else if (assetBundleSet.Name == ResourceLabel.Config)
-        {
-            Config = assetBundleSet.AssetBundle;
-        }
-        //else if (assetBundleSet.Name == ResourceLabel.NewLanguage)
-        //{
-        //    NewLanguage = assetBundleSet.AssetBundle;
-        //}
-        //else if (assetBundleSet.Name == ResourceLabel.NewFlowerConfig)
-        //{
-        //    NewFlowerConfig = assetBundleSet.AssetBundle;
-        //}
-        else if (assetBundleSet.Name == ResourceLabel.NewFlowerTex)
-        {
-            NewFlowerTex = assetBundleSet.AssetBundle;
-        }
-
-        if (isDownload)
-        {
-            UpdateFinishAmt++;
-            UpdatePanel.SetProgress(UpdateAmt, UpdateFinishAmt);
-        }
-    }
-
-    public static void DownloadAssetBundleFailed(AssetBundleSet assetBundleSet, string error)
-    {
-        Debug.Log(assetBundleSet.Name + "  " + error);
-        string path = assetBundleSet.PersistentPath;
-        path = path.Replace("/", Path.DirectorySeparatorChar.ToString());
-        path = path.Replace("\\", Path.DirectorySeparatorChar.ToString());
-        path = path.Replace("\\\\", Path.DirectorySeparatorChar.ToString());
-        path = "file://" + path;
-        WWW www = new WWW(path);
-        AssetBundleSet bundleSet = new AssetBundleSet();
-        bundleSet.Name = assetBundleSet.Name;
-        bundleSet.AssetBundle = www.assetBundle;
-        DownloadAssetBundleSucceed(bundleSet, false);
-
-        //string str = Language.GetStr(LanguageLabel.UI__AJ_UpdateFailed, Application.systemLanguage) + "    "  + error;
-        //UpdatePanel.SetContent(str);
-
-        //Initializer.DebugText.text = assetBundleSet.Name;
-        //Initializer.DebugText.text += error;
-        //Initializer.EnableDebugLab();
-    }
-
-    public static void SkipUpdateForDebugMode()
-    {
-        //NewDressroomConfigs = ConfigManager.GetDressRoomConfig(Instance.NewDressConfigList[0] as TextAsset);
-
-        foreach (var textAsset in Instance.NewDressSkeList)
-        {
-            UnityFactory.factory.LoadDragonBonesData(textAsset as TextAsset);
-        }
-
-        for (int i = 0; i < Instance.NewDressTexList.Count; i++)
-        {
-            TextAsset textAsset = Instance.NewDressTexConfigList[i] as TextAsset;
-            Texture2D texture = Instance.NewDressTexList[i] as Texture2D;
-            ResourceManager.ObjectDictionary.Add(texture.name, texture);
-            UnityFactory.factory.LoadTextureAtlasData(textAsset, texture.name);
-        }
-
-        for (int i = 0; i < Instance.NewDressSpriteList.Count; i++)
-        {
-            Sprite sprite = Instance.NewDressSpriteList[i] as  Sprite;
-            PlayerManager.CloseSpriteDictionary.Add(sprite.name, sprite);
-            ResourceManager.ObjectDictionary.UniqueAdd(sprite.name, sprite);
-        }
-
-        for (int i = 0; i < Instance.ConfigList.Count; i++)
-        {
-            TextAsset textAsset = Instance.ConfigList[i] as TextAsset;
-            if (textAsset.name == ResourceLabel.English)
-            {
-                XmlDocument document = new XmlDocument();
-                document.LoadXml(textAsset.text);
-                Language.AddLanguageDocument(CurrentLanguage.English, document);
-            }
-            else if (textAsset.name == ResourceLabel.ChineseSimplified)
-            {
-                XmlDocument document = new XmlDocument();
-                document.LoadXml(textAsset.text);
-                Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
-            }
-            else if (textAsset.name == ResourceLabel.ChineseTraditional)
-            {
-                XmlDocument document = new XmlDocument();
-                document.LoadXml(textAsset.text);
-                Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
-            }
-        }
-
-        for (int i = 0; i < Instance.DefaultList.Count; i++)
-        {
-            TextAsset textAsset = Instance.ConfigList[i] as TextAsset;
-            if (textAsset.name == ResourceLabel.English)
-            {
-                XmlDocument document = new XmlDocument();
-                document.LoadXml(textAsset.text);
-                Language.AddLanguageDocument(CurrentLanguage.English, document);
-            }
-            else if (textAsset.name == ResourceLabel.ChineseSimplified)
-            {
-                XmlDocument document = new XmlDocument();
-                document.LoadXml(textAsset.text);
-                Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
-            }
-            else if (textAsset.name == ResourceLabel.ChineseTraditional)
-            {
-                XmlDocument document = new XmlDocument();
-                document.LoadXml(textAsset.text);
-                Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
-            }
-        }
-
-        //NewFlowerConfigs = ConfigManager.GetDressRoomConfig(Instance.NewFlowerConfigList[0] as TextAsset);
-
-        foreach (var obj in Instance.NewFlowerSpriteList)
-        {
-            Sprite sprite = obj as  Sprite;
-            ResourceManager.ObjectDictionary.UniqueAdd(sprite.name, sprite);
-        }
-
-        UpdateComplete = true;
-    }
+using System;
+using UnityEngine;
+using UnityEngine.Events;
+
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Xml;
+using assetBundleUtility;
+using DragonBones;
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+using Debug = UnityEngine.Debug;
+using Object = UnityEngine.Object;
+
+public class Bundle : MonoBehaviour
+{
+    #region
+
+    public static string version = "1_3_3";
+
+    public static bool CopyComplete
+    {
+        get { return CopyCount == 0; }
+    }
+    public static bool UpdateComplete;
+    //public static AssetBundle NewDressConfig;
+    public static AssetBundle NewDressSke;
+    public static AssetBundle NewDressTex;
+    //public static AssetBundle NewLanguage;
+    //public static AssetBundle NewFlowerConfig;
+    public static AssetBundle NewFlowerTex;
+    //public static List<XmlAttributeCollection> NewDressroomConfigs = new List<XmlAttributeCollection>();
+    //public static List<XmlAttributeCollection> NewFlowerConfigs = new List<XmlAttributeCollection>();
+
+    public static List<string> HotUpdateAssetBundleNames=new List<string>
+    {
+        ResourceLabel.Config,
+        //ResourceLabel.NewDressConfig,
+        ResourceLabel.NewDressSke,
+        ResourceLabel.NewDressTex,
+        //ResourceLabel.NewLanguage,
+        //ResourceLabel.NewFlowerConfig,
+        ResourceLabel.NewFlowerTex,
+    };
+
+    //public List<Object> NewDressConfigList;
+    public List<Object> NewDressSkeList;
+    public List<Object> NewDressTexList;
+    public List<Object> NewDressTexConfigList;
+    public List<Object> NewDressSpriteList;
+    //public List<Object> NewLanguageList;
+    //public List<Object> NewFlowerConfigList;
+    public List<Object> NewFlowerSpriteList;
+
+    public static Bundle Instance;
+
+    public static bool Complete;
+
+    public static AssetBundle Atlas;
+    public static AssetBundle Atlas2;
+
+    public static AssetBundle Defaul;
+    public static AssetBundle UI;
+    public static AssetBundle Effect;
+    public static AssetBundle Audio;
+    public static AssetBundle Scene;
+    public static AssetBundle Config;
+    public static AssetBundle Discard;
+    public static AssetBundle PlazaRoom;
+
+    public Texture2D AtlasTexture;
+    public Texture2D ExpressionTexture;
+    public List<Object> DefaultList;
+    public List<Object> UiList;
+    public List<Object> AtlasList;
+    public List<Sprite> Atlas2List;
+    public List<Object> EffectList;
+    public List<Object> AudioList;
+    public List<Object> SceneList;
+    public List<Object> ConfigList;
+    public List<Object> DiscardList;
+    public List<Object> PlazaRoomList;
+
+    #endregion
+
+    public void Begin()
+    {
+        Instance = this;
+        LoadAll
+        (
+            () => Complete = true
+        );
+    }
+
+    public static T Load<T>(string goName, Folder folder) where T : Object
+    {
+        if (Initializer.Instance.DebugMode)
+        {
+            #region MyRegion
+
+            if (folder == Folder.UI)
+            {
+                for (int i = 0; i < Instance.UiList.Count; i++)
+                {
+                    if (Instance.UiList[i].name == goName)
+                    {
+                        return (T) Instance.UiList[i];
+                    }
+                }
+            }
+            if (folder == Folder.Default)
+            {
+                for (int i = 0; i < Instance.DefaultList.Count; i++)
+                {
+                    if (Instance.DefaultList[i].name == goName)
+                    {
+                        return (T)Instance.DefaultList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Audio)
+            {
+                for (int i = 0; i < Instance.AudioList.Count; i++)
+                {
+                    if (Instance.AudioList[i].name == goName)
+                    {
+                        return (T) Instance.AudioList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Config)
+            {
+                for (int i = 0; i < Instance.ConfigList.Count; i++)
+                {
+                    if (Instance.ConfigList[i].name == goName)
+                    {
+                        return (T) Instance.ConfigList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Effect)
+            {
+                for (int i = 0; i < Instance.EffectList.Count; i++)
+                {
+                    if (Instance.EffectList[i].name == goName)
+                    {
+                        return (T) Instance.EffectList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Scene)
+            {
+                if (goName == "Expression")
+                {
+                    return (T) (Object) Sprite.Create(Instance.ExpressionTexture, new Rect(0, 0, Instance.AtlasTexture.width, Instance.AtlasTexture.height), new Vector2(0.5f, 0.5f));
+                }
+
+                for (int i = 0; i < Instance.SceneList.Count; i++)
+                {
+                    if (Instance.SceneList[i].name == goName)
+                    {
+                        return (T) Instance.SceneList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Discard)
+            {
+                for (int i = 0; i < Instance.DiscardList.Count; i++)
+                {
+                    if (Instance.DiscardList[i].name == goName)
+                    {
+                        return (T) Instance.DiscardList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Atlas)
+            {
+                if (goName == "Atlas")
+                {
+                    return (T) (Object) Sprite.Create(Instance.AtlasTexture, new Rect(0, 0, Instance.AtlasTexture.width, Instance.AtlasTexture.height), new Vector2(0.5f, 0.5f));
+                }
+
+                for (int i = 0; i < Instance.AtlasList.Count; i++)
+                {
+                    if (Instance.AtlasList[i].name == goName)
+                    {
+                        return (T) Instance.AtlasList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.PlazaRoom)
+            {
+                for (int i = 0; i < Instance.PlazaRoomList.Count; i++)
+                {
+                    if (Instance.PlazaRoomList[i].name == goName)
+                    {
+                        return (T) Instance.PlazaRoomList[i];
+                    }
+                }
+            }
+            //else if (folder == Folder.Dress)
+            //{
+            //    for (int i = 0; i < Instance.DressList.Count; i++)
+            //    {
+            //        if (Instance.DressList[i].name == goName)
+            //        {
+            //            return (T)Instance.DressList[i];
+            //        }
+            //    }
+            //}
+
+            #endregion
+        }
+        else
+        {
+            #region MyRegion
+
+            if (folder == Folder.UI)
+            {
+                return UI.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Audio)
+            {
+                return Audio.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Default)
+            {
+                return Defaul.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Config)
+            {
+                return Config.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Effect)
+            {
+                return Effect.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Scene)
+            {
+                return Scene.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Atlas)
+            {
+                return Atlas.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Atlas2)
+            {
+                return Atlas2.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Discard)
+            {
+                return Discard.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.PlazaRoom)
+            {
+                return PlazaRoom.LoadAsset<T>(goName);
+            }
+
+            #endregion
+        }
+        DebugManager.Log(goName + " " + folder);
+        throw new Exception(goName + " " + folder);
+    }
+
+    public static void LoadAtlasSprites()
+    {
+        if (Initializer.Instance.DebugMode)
+        {
+            for (int i = 0; i < Instance.Atlas2List.Count; i++)
+            {
+                ResourceManager.ObjectDictionary.UniqueAdd(Instance.Atlas2List[i].name, Instance.Atlas2List[i]);
+            }
+
+#if UNITY_EDITOR
+
+
+            List<Object> objects = new List<Object>();
+            string assetPath = AssetDatabase.GetAssetPath(ResourceManager.Load<Texture2D>("stand_texture_0", Folder.Scene));
+            objects.AddRange(AssetDatabase.LoadAllAssetsAtPath(assetPath));
+
+            assetPath = AssetDatabase.GetAssetPath(ResourceManager.Load<Texture2D>("stand_texture_1", Folder.Scene));
+            objects.AddRange(AssetDatabase.LoadAllAssetsAtPath(assetPath));
+
+            for (int i = 0; i < objects.Count; i++)
+            {
+                Sprite sprite = objects[i] as Sprite;
+
+                if (sprite != null)
+                {
+                    PlayerManager.CloseSpriteDictionary.Add(sprite.name, sprite);
+                    ResourceManager.ObjectDictionary.UniqueAdd(sprite.name, sprite);
+                }
+            }
+
+#endif
+        }
+        else
+        {
+            #region MyRegion
+
+            Sprite[] sprites = Atlas2.LoadAllAssets<Sprite>();
+
+            for (int i = 0; i < sprites.Length; i++)
+            {
+                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
+            }
+
+            sprites = Atlas.LoadAllAssets<Sprite>();
+
+            for (int i = 0; i < sprites.Length; i++)
+            {
+                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
+            }
+
+            sprites = Scene.LoadAssetWithSubAssets<Sprite>("FlowerItemAtlas1");
+
+            for (int i = 0; i < sprites.Length; i++)
+            {
+                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
+            }
+
+            List<Object> objects = new List<Object>();
+            objects.AddRange(Scene.LoadAssetWithSubAssets("stand_texture_0", typeof(Sprite)));
+            objects.AddRange(Scene.LoadAssetWithSubAssets("stand_texture_1", typeof(Sprite)));
+
+            for (int i = 0; i < objects.Count; i++)
+            {
+                Sprite sprite = (Sprite) objects[i];
+
+                PlayerManager.CloseSpriteDictionary.Add(sprite.name, sprite);
+                ResourceManager.SpriteDictionary.UniqueAdd(sprite.name, sprite);
+            }
+
+            #endregion
+        }
+    }
+
+    //public static void LoadAllDressBundleAssetsIntoDragonbone()
+    //{
+    //    UnityFactory.factory.LoadDragonBonesData(ResourceManager.Load<TextAsset>(DressLabel.Dress_ske, Folder.Dress));
+
+    //    foreach (var dressName in DressLabel.dressNames)
+    //    {
+    //        ResourceManager.Load<Texture2D>(dressName, Folder.Dress);
+    //        UnityFactory.factory.LoadTextureAtlasData(ResourceManager.Load<TextAsset>(dressName + "_tex", Folder.Dress), dressName);
+    //    }
+
+    //    Sprite[] sprites = Dress.LoadAllAssets<Sprite>();
+
+    //    if (Initializer.Instance.DebugMode)
+    //    {
+    //        for (int i = 0; i < Instance.DressList.Count; i++)
+    //        {
+    //            Sprite sprite = Instance.DressList[i] as Sprite;
+    //            if (sprite != null)
+    //            {
+    //                PlayerManager.CloseSpriteDictionary.Add(sprite.name, sprite);
+    //                ResourceManager.ObjectDictionary.UniqueAdd(sprite.name, sprite);
+    //            }
+    //        }
+    //    }
+    //    else
+    //    {
+    //        for (int i = 0; i < sprites.Length; i++)
+    //        {
+    //            PlayerManager.CloseSpriteDictionary.Add(sprites[i].name, sprites[i]);
+    //            ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
+    //        }
+    //    }
+    //}
+
+
+    public static AssetBundleRequest LoadAsync<T>(string goName, Folder folder)
+    {
+        if (folder == Folder.UI)
+        {
+            return UI.LoadAssetAsync<T>(goName);
+        }
+        else if (folder == Folder.Audio)
+        {
+            return Audio.LoadAssetAsync<T>(goName);
+        }
+        else if (folder == Folder.Default)
+        {
+            return Defaul.LoadAssetAsync<T>(goName);
+        }
+        else if (folder == Folder.Config)
+        {
+            return Config.LoadAssetAsync<T>(goName);
+        }
+        else if (folder == Folder.Effect)
+        {
+            return Effect.LoadAssetAsync<T>(goName);
+        }
+        else if (folder == Folder.Scene)
+        {
+            return Scene.LoadAssetAsync<T>(goName);
+        }
+        else if (folder == Folder.Atlas)
+        {
+            return Atlas.LoadAssetAsync<T>(goName);
+        }
+        else if (folder == Folder.Discard)
+        {
+            return Discard.LoadAssetAsync<T>(goName);
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static AssetBundleRequest LoadAllAsync<T>(Folder folder)
+    {
+        if (folder == Folder.Atlas2)
+        {
+            return Atlas2.LoadAllAssetsAsync<T>();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+
+    public static string GetStreamPath()
+    {
+        if (Application.isEditor)
+            //			return "file://" +  System.Environment.CurrentDirectory.Replace("\\", "/"); // Use the build output folder directly.
+            return "file://" + Application.streamingAssetsPath + "/Bundle/Windows/"; //user local stream
+
+        //else if (Application.isWebPlayer)
+        //    return System.IO.Path.GetDirectoryName(Application.absoluteURL).Replace("\\", "/") + "/StreamingAssets";
+
+        else if (Application.platform == RuntimePlatform.IPhonePlayer)
+            return "file://" + Application.streamingAssetsPath + "/Bundle/IOS/";
+
+        else if (Application.isMobilePlatform || Application.isConsolePlatform)
+            return Application.streamingAssetsPath + "/Bundle/Android/";
+
+        else // For standalone player.
+            return "file://" + Application.streamingAssetsPath;
+
+        //return "file://" + Application.streamingAssetsPath + "/Bundle/Windows/";
+    }
+
+    public static string GetPersistingPath()
+    {
+        if (Application.platform == RuntimePlatform.IPhonePlayer)
+            return "file://" + Application.persistentDataPath;
+        else if (Application.isMobilePlatform)
+            return Application.streamingAssetsPath;
+        else
+            return "file://" + Application.persistentDataPath;
+    }
+
+    public static string GetStreamingUrlPath()
+    {
+        if (Application.platform == RuntimePlatform.IPhonePlayer)
+            return "file://" + Application.streamingAssetsPath;
+        else if (Application.isMobilePlatform)
+            return Application.streamingAssetsPath;
+        else
+            return "file://" + Application.streamingAssetsPath;
+    }
+
+
+    public void LoadAll(UnityAction callback)
+    {
+        Initializer.Instance.StartCoroutine(ILoadAll(callback));
+    }
+
+    public static IEnumerator ILoadAll(UnityAction callback)
+    {
+        yield return LoadDefaul();
+
+        if (!Logo.Complete && !Initializer.Instance.DebugMode)
+        {
+            ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.PlayerConfig, Folder.Default, () =>
+            {
+                ConfigManager.ConfigDocument = ConfigManager.ConfigDocument;
+                HttpManager.GetBuyPackLimitFlag();
+            });
+        }
+        else
+        {
+            ConfigManager.ConfigDocument = ConfigManager.ConfigDocument;
+            HttpManager.GetBuyPackLimitFlag();
+        }
+
+        //yield return LoadDiscard();
+
+        yield return LoadUI();
+
+        //if (!Logo.Complete && !Initializer.Instance.DebugMode)
+        //{
+        //    ResourceManager.AddAsyncLoad(ResourceLabel.Canvas, 1, Folder.UI, ObjType.Canvas);
+
+        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupA, 1, Folder.UI, ObjType.GroupA, true);
+        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupB, 1, Folder.UI, ObjType.GroupB, true);
+        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupC, 1, Folder.UI, ObjType.GroupC, true);
+        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupE, 1, Folder.UI, ObjType.GroupE, true);
+        //    //ResourceManager.AddAsyncLoad(ResourceLabel.GroupD, 1, Folder.UI, ObjType.GroupD, true);
+
+        //    ResourceManager.AddAsyncLoad(ResourceLabel.EventSystem, 1, Folder.UI, ObjType.EventSystem);
+        //    ResourceManager.AddAsyncLoad(ResourceLabel.MainCamera, 1, Folder.UI, ObjType.MainCamera);
+
+        //    //ResourceManager.AddAsyncLoad("SkillItem", 31, Folder.UI, ObjType.SkillItem, true);
+        //    //ResourceManager.AddAsyncLoad("SignItem", 21, Folder.UI, ObjType.SignItem, true);
+        //    //ResourceManager.AddAsyncLoad("FlowerItem", 17, Folder.UI, ObjType.FlowerItem, true);
+        //    //ResourceManager.AddAsyncLoad("AchieveItem", 2, Folder.UI, ObjType.AchieveItem, true);
+        //}
+
+        yield return LoadScene();
+
+        //if (!Logo.Complete && !Initializer.Instance.DebugMode)
+        //{
+        //    ResourceManager.AddAsyncLoad(ResourceLabel.Flower, 9, Folder.Scene, ObjType.Flower);
+
+        //    ResourceManager.AddAsyncLoad(ResourceLabel.Page, 2, Folder.Scene, ObjType.SlotPage);
+        //    ResourceManager.AddAsyncLoad(ResourceLabel.Garden, 1, Folder.Scene, ObjType.Garden);
+        //    ResourceManager.AddAsyncLoad(ResourceLabel.DressRoom, 1, Folder.UI, ObjType.DressRoom);
+        //}
+
+        yield return LoadAudio();
+
+        //if (!Logo.Complete && !Initializer.Instance.DebugMode)
+        //{
+        //    ResourceManager.AddAsyncLoad(ResourceLabel.Music, 1, Folder.Audio, ObjType.Music);
+        //}
+
+        yield return LoadAtlas2();
+
+        //if (!Logo.Complete && !Initializer.Instance.DebugMode)
+        //{
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.SkillConfig, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.PackConfig, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.AbilityConfig, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.AchieveConfig, Folder.Config);
+
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.VisitConfig, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.AwardConfig, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.FlowerConfig, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.OfflineConfig, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.SigninConfig, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.DressroomConfig, Folder.Config);
+
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.English, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.ChineseSimplified, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.ChineseTraditional, Folder.Config);
+
+        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.BtnClip, Folder.Audio);
+        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.SkillClip, Folder.Audio);
+        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.ErrorClip, Folder.Audio);
+        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.DropClip, Folder.Audio);
+        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.CloseClip, Folder.Audio);
+        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.FlowerClip, Folder.Audio);
+        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.BubbleClip, Folder.Audio);
+        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.CurrentClip, Folder.Audio);
+        //    ResourceManager.AddAsyncLoad<AudioClip>(ResourceLabel.MiniEndClip, Folder.Audio);
+
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.StandTex, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<TextAsset>(ResourceLabel.StandSke, Folder.Config);
+        //    ResourceManager.AddAsyncLoad<Texture2D>(ResourceLabel.StandTexture, Folder.Scene);
+        //}
+
+        yield return LoadAtlas();
+        yield return LoadEffect();
+
+        SpriteAsset.AddAllBundleSpriteInfo();
+
+        if (callback != null)
+        {
+            callback.Invoke();
+        }
+    }
+
+
+    public static IEnumerator LoadUI()
+    {
+        WWW www = new WWW(GetStreamPath() + "ui");
+
+        yield return www;
+
+        if (string.IsNullOrEmpty(www.error))
+        {
+            UI = www.assetBundle;
+        }
+        else
+        {
+            Debug.Log(www.error);
+        }
+    }
+
+    public static IEnumerator LoadAtlas()
+    {
+        WWW www = new WWW(GetStreamPath() + "atlas");
+
+        yield return www;
+
+        if (string.IsNullOrEmpty(www.error))
+        {
+            Atlas = www.assetBundle;
+        }
+        else
+        {
+            Debug.Log(www.error);
+        }
+    }
+
+    public static IEnumerator LoadAtlas2()
+    {
+        WWW www = new WWW(GetStreamPath() + "atlas2");
+
+        yield return www;
+
+        if (string.IsNullOrEmpty(www.error))
+        {
+            Atlas2 = www.assetBundle;
+        }
+        else
+        {
+            Debug.Log(www.error);
+        }
+    }
+
+    public static IEnumerator LoadAudio()
+    {
+        WWW www = new WWW(GetStreamPath() + "audio");
+
+        yield return www;
+
+        if (string.IsNullOrEmpty(www.error))
+        {
+            Audio = www.assetBundle;
+        }
+        else
+        {
+            Debug.Log(www.error);
+        }
+    }
+
+    public static IEnumerator LoadDefaul()
+    {
+        WWW www = new WWW(GetStreamPath() + "default");
+
+        yield return www;
+
+        if (string.IsNullOrEmpty(www.error))
+        {
+            Defaul = www.assetBundle;
+        }
+        else
+        {
+            Debug.Log(www.error);
+        }
+    }
+
+    public static IEnumerator LoadEffect()
+    {
+        WWW www = new WWW(GetStreamPath() + "effect");
+
+        yield return www;
+
+        if (string.IsNullOrEmpty(www.error))
+        {
+            Effect = www.assetBundle;
+        }
+        else
+        {
+            Debug.Log(www.error);
+        }
+    }
+
+    public static IEnumerator LoadScene()
+    {
+        WWW www = new WWW(GetStreamPath() + "scene");
+
+        yield return www;
+
+        if (string.IsNullOrEmpty(www.error))
+        {
+            Scene = www.assetBundle;
+        }
+        else
+        {
+            Debug.Log(www.error);
+        }
+    }
+
+    public static IEnumerator LoadDiscard()
+    {
+        WWW www = new WWW(GetStreamPath() + "discard");
+
+        yield return www;
+
+        if (string.IsNullOrEmpty(www.error))
+        {
+            Discard = www.assetBundle;
+        }
+        else
+        {
+            Debug.Log(www.error);
+        }
+    }
+
+    public static IEnumerator LoadPlazaRoom()
+    {
+        WWW www = new WWW(GetStreamPath() + "plazaroom");
+
+        yield return www;
+
+        if (string.IsNullOrEmpty(www.error))
+        {
+            PlazaRoom = www.assetBundle;
+        }
+        else
+        {
+            Debug.Log(www.error);
+        }
+    }
+
+
+    private static int CopyCount = 0;
+    public static void CopyAssetBundles()
+    {
+        string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+        if (!Directory.Exists(persistentFolderPath))
+        {
+            Directory.CreateDirectory(persistentFolderPath);
+        }
+        string streamingFolder;
+        if (Application.platform == RuntimePlatform.IPhonePlayer)
+        {
+            streamingFolder = "IOS";
+        }
+        else if (Application.platform == RuntimePlatform.Android)
+        {
+            streamingFolder = "Android";
+        }
+        else
+        {
+            streamingFolder = "Windows";
+        }
+        foreach (var assetBundleName in HotUpdateAssetBundleNames)
+        {
+            if (!File.Exists(persistentFolderPath + Path.DirectorySeparatorChar + assetBundleName))
+            {
+                CopyCount++;
+                Initializer.Instance.StartCoroutine
+                (
+                    LoadAssetBundleFromStream
+                    (
+                        streamingFolder,
+                        assetBundleName,
+                        www =>
+                        {
+                            File.WriteAllBytes(persistentFolderPath + Path.DirectorySeparatorChar + assetBundleName, www.bytes);
+                            CopyOneAssetBundleFinish();
+                        }
+                    )
+                );
+            }
+        }
+    }
+
+    private static void CopyOneAssetBundleFinish()
+    {
+        CopyCount--;
+    }
+
+    public static IEnumerator LoadAssetBundleFromStream(string folder, string name, Action<WWW> callback)
+    {
+        WWW www = new WWW(GetStreamingUrlPath() + Path.DirectorySeparatorChar + "Bundle" + Path.DirectorySeparatorChar + folder + Path.DirectorySeparatorChar + "HotUpdate" + Path.DirectorySeparatorChar + name);
+        yield return www;
+        if (string.IsNullOrEmpty(www.error))
+        {
+            callback.Invoke(www);
+        }
+        else
+        {
+            Debug.Log(www.error);
+            Initializer.DebugText.text = www.error;
+            Initializer.DebugText.SetActive(true);
+            Initializer.DebugText.enabled = true;
+        }
+    }
+
+    public static int UpdateAmt;
+    public static int UpdateFinishAmt;
+    public static bool UpdateAssetBundles()
+    {
+        //Debug.Log(HttpManager.Md5);
+        //Debug.Log(HttpManager.Md5Dictionnary);
+        //Debug.Log(HttpManager.AssetbundleUrl);
+        try
+        {
+            Initializer.DebugText.text = "U0";
+            if (Initializer.Instance.DebugMode)
+            {
+                SkipUpdateForDebugMode();
+                return false;
+            }
+
+            Initializer.DebugText.text = "U1";
+            string persistentFolderPath = string.Format("{0}{1}HotUpdate", Application.persistentDataPath, Path.DirectorySeparatorChar);
+
+            Initializer.DebugText.text = "U2";
+            List<AssetBundleSet> assetBundleSets = AssetBundleUtility.GetAssetBundleSetsFromFolders
+            (
+                persistentFolderPath
+            );
+            Initializer.DebugText.text = "U3";
+            string localMD5 = AssetBundleUtility.GetMD5OfAssetBundleSets(assetBundleSets);
+            bool needUpdate; 
+            if (string.IsNullOrEmpty(HttpManager.Md5) || string.IsNullOrEmpty(HttpManager.Md5Dictionnary) || string.IsNullOrEmpty(HttpManager.AssetbundleUrl))
+            {
+                needUpdate = false;
+                Debug.LogWarning(string.Format("NeedUpdate : {0} connection error", needUpdate));
+            }
+            else
+            {
+                //Debug.Log(localMD5);
+                //Debug.Log(HttpManager.Md5);
+                needUpdate = localMD5 != HttpManager.Md5;
+                //Debug.LogWarning(string.Format("NeedUpdate : {0}", needUpdate));
+            }
+            if (Application.isEditor || Application.isMobilePlatform)
+            {
+                needUpdate = false;
+            }
+            AssetBundleUtility.OnDownloadOrUpdateFinish += FinishDownloadAndLoad;
+            if (needUpdate)
+            {
+                Initializer.DebugText.text = "U4";
+                UpdateAmt = AssetBundleUtility.UpdateAllAssetBundle
+                (
+                    HttpManager.Md5Dictionnary,
+                    persistentFolderPath,
+                    assetBundleSets,
+                    DownloadAllAssetBundleSucceed,
+                    DownloadAllAssetBundleFailed,
+                    DownloadAssetBundleSucceed,
+                    DownloadAssetBundleFailed
+                );
+                UpdatePanel.Show();
+                UpdatePanel.SetProgress(UpdateAmt, 0);
+            }
+            else
+            {
+                Initializer.DebugText.text = "U5";
+                AssetBundleUtility.LoadAllAssetBundle
+                (
+                    assetBundleSets,
+                    DownloadAllAssetBundleSucceed,
+                    DownloadAllAssetBundleFailed,
+                    DownloadAssetBundleSucceed,
+                    DownloadAssetBundleFailed
+                );
+            }
+            return false;
+        }
+        catch (Exception)
+        {
+            Initializer.EnableDebugLab();
+            return true;
+        }
+    }
+
+    private static void FinishDownloadAndLoad()
+    {
+        try
+        {
+            Initializer.DebugText.text = "01";
+            //NewDressroomConfigs = ConfigManager.GetDressRoomConfig(NewDressConfig.LoadAsset<TextAsset>(ResourceLabel.NewDressroomConfig));
+
+            Initializer.DebugText.text = "02";
+            TextAsset[] textAssets = NewDressSke.LoadAllAssets<TextAsset>();
+            foreach (var textAsset in textAssets)
+            {
+                UnityFactory.factory.LoadDragonBonesData(textAsset);
+            }
+
+            Initializer.DebugText.text = "03";
+            textAssets = NewDressTex.LoadAllAssets<TextAsset>();
+            Texture2D[] textures = NewDressTex.LoadAllAssets<Texture2D>();
+            for (int i = 0; i < textAssets.Length; i++)
+            {
+                ResourceManager.ObjectDictionary.Add(textures[i].name, textures[i]);
+                UnityFactory.factory.LoadTextureAtlasData(textAssets[i], textures[i].name);
+            }
+
+            Initializer.DebugText.text = "04";
+            Sprite[] sprites = NewDressTex.LoadAllAssets<Sprite>();
+            for (int i = 0; i < sprites.Length; i++)
+            {
+                PlayerManager.CloseSpriteDictionary.Add(sprites[i].name, sprites[i]);
+                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
+            }
+
+            Initializer.DebugText.text = "051";
+            TextAsset language = Config.LoadAsset<TextAsset>(ResourceLabel.English);
+            XmlDocument document = new XmlDocument();
+            document.LoadXml(language.text);
+            Language.AddLanguageDocument(CurrentLanguage.English, document);
+
+            Initializer.DebugText.text = "061";
+            language = Config.LoadAsset<TextAsset>(ResourceLabel.ChineseSimplified);
+            document = new XmlDocument();
+            document.LoadXml(language.text);
+            Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
+
+            Initializer.DebugText.text = "071";
+            language = Config.LoadAsset<TextAsset>(ResourceLabel.ChineseTraditional);
+            document = new XmlDocument();
+            document.LoadXml(language.text);
+            Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
+
+            //Initializer.DebugText.text = "052";
+            //language = NewLanguage.LoadAsset<TextAsset>(ResourceLabel.NewEnglish);
+            //document = new XmlDocument();
+            //document.LoadXml(language.text);
+            //Language.AddLanguageDocument(CurrentLanguage.English, document);
+
+            //Initializer.DebugText.text = "062";
+            //language = NewLanguage.LoadAsset<TextAsset>(ResourceLabel.NewChineseSimplified);
+            //document = new XmlDocument();
+            //document.LoadXml(language.text);
+            //Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
+
+            //Initializer.DebugText.text = "072";
+            //language = NewLanguage.LoadAsset<TextAsset>(ResourceLabel.NewChineseTraditional);
+            //document = new XmlDocument();
+            //document.LoadXml(language.text);
+            //Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
+
+            Initializer.DebugText.text = "08";
+            //NewFlowerConfigs = ConfigManager.GetFlowerConfig(NewFlowerConfig.LoadAsset<TextAsset>(ResourceLabel.NewFlowerConfig));
+
+            Initializer.DebugText.text = "09";
+            sprites = NewFlowerTex.LoadAllAssets<Sprite>();
+            for (int i = 0; i < sprites.Length; i++)
+            {
+                ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
+            }
+
+            UpdateComplete = true;
+
+            DelayCall.Call(1f, UpdatePanel.Hide);
+        }
+        catch (Exception e)
+        {
+            Debug.Log(e);
+            Initializer.DebugText.text += e.ToString();
+            Initializer.EnableDebugLab();
+        }
+    }
+
+    public static void DownloadAllAssetBundleSucceed()
+    {
+        //Debug.Log("succeed");
+    }
+
+    public static void DownloadAllAssetBundleFailed()
+    {
+        Debug.Log("failed");
+    }
+
+    public static void DownloadAssetBundleSucceed(AssetBundleSet assetBundleSet, bool isDownload)
+    {
+        //Debug.Log(assetBundleSet.AssetBundle.name);
+        //if (assetBundleSet.Name == ResourceLabel.NewDressConfig)
+        //{
+        //    NewDressConfig = assetBundleSet.AssetBundle;
+        //}
+        if (assetBundleSet.Name == ResourceLabel.NewDressSke)
+        {
+            NewDressSke = assetBundleSet.AssetBundle;
+        }
+        else if (assetBundleSet.Name == ResourceLabel.NewDressTex)
+        {
+            NewDressTex = assetBundleSet.AssetBundle;
+        }
+        else if (assetBundleSet.Name == ResourceLabel.Config)
+        {
+            Config = assetBundleSet.AssetBundle;
+        }
+        //else if (assetBundleSet.Name == ResourceLabel.NewLanguage)
+        //{
+        //    NewLanguage = assetBundleSet.AssetBundle;
+        //}
+        //else if (assetBundleSet.Name == ResourceLabel.NewFlowerConfig)
+        //{
+        //    NewFlowerConfig = assetBundleSet.AssetBundle;
+        //}
+        else if (assetBundleSet.Name == ResourceLabel.NewFlowerTex)
+        {
+            NewFlowerTex = assetBundleSet.AssetBundle;
+        }
+
+        if (isDownload)
+        {
+            UpdateFinishAmt++;
+            UpdatePanel.SetProgress(UpdateAmt, UpdateFinishAmt);
+        }
+    }
+
+    public static void DownloadAssetBundleFailed(AssetBundleSet assetBundleSet, string error)
+    {
+        Debug.Log(assetBundleSet.Name + "  " + error);
+        string path = assetBundleSet.PersistentPath;
+        path = path.Replace("/", Path.DirectorySeparatorChar.ToString());
+        path = path.Replace("\\", Path.DirectorySeparatorChar.ToString());
+        path = path.Replace("\\\\", Path.DirectorySeparatorChar.ToString());
+        path = "file://" + path;
+        WWW www = new WWW(path);
+        AssetBundleSet bundleSet = new AssetBundleSet();
+        bundleSet.Name = assetBundleSet.Name;
+        bundleSet.AssetBundle = www.assetBundle;
+        DownloadAssetBundleSucceed(bundleSet, false);
+
+        //string str = Language.GetStr(LanguageLabel.UI__AJ_UpdateFailed, Application.systemLanguage) + "    "  + error;
+        //UpdatePanel.SetContent(str);
+
+        //Initializer.DebugText.text = assetBundleSet.Name;
+        //Initializer.DebugText.text += error;
+        //Initializer.EnableDebugLab();
+    }
+
+    public static void SkipUpdateForDebugMode()
+    {
+        //NewDressroomConfigs = ConfigManager.GetDressRoomConfig(Instance.NewDressConfigList[0] as TextAsset);
+
+        foreach (var textAsset in Instance.NewDressSkeList)
+        {
+            UnityFactory.factory.LoadDragonBonesData(textAsset as TextAsset);
+        }
+
+        for (int i = 0; i < Instance.NewDressTexList.Count; i++)
+        {
+            TextAsset textAsset = Instance.NewDressTexConfigList[i] as TextAsset;
+            Texture2D texture = Instance.NewDressTexList[i] as Texture2D;
+            ResourceManager.ObjectDictionary.Add(texture.name, texture);
+            UnityFactory.factory.LoadTextureAtlasData(textAsset, texture.name);
+        }
+
+        for (int i = 0; i < Instance.NewDressSpriteList.Count; i++)
+        {
+            Sprite sprite = Instance.NewDressSpriteList[i] as  Sprite;
+            PlayerManager.CloseSpriteDictionary.Add(sprite.name, sprite);
+            ResourceManager.ObjectDictionary.UniqueAdd(sprite.name, sprite);
+        }
+
+        for (int i = 0; i < Instance.ConfigList.Count; i++)
+        {
+            TextAsset textAsset = Instance.ConfigList[i] as TextAsset;
+            if (textAsset.name == ResourceLabel.English)
+            {
+                XmlDocument document = new XmlDocument();
+                document.LoadXml(textAsset.text);
+                Language.AddLanguageDocument(CurrentLanguage.English, document);
+            }
+            else if (textAsset.name == ResourceLabel.ChineseSimplified)
+            {
+                XmlDocument document = new XmlDocument();
+                document.LoadXml(textAsset.text);
+                Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
+            }
+            else if (textAsset.name == ResourceLabel.ChineseTraditional)
+            {
+                XmlDocument document = new XmlDocument();
+                document.LoadXml(textAsset.text);
+                Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
+            }
+        }
+
+        for (int i = 0; i < Instance.DefaultList.Count; i++)
+        {
+            TextAsset textAsset = Instance.ConfigList[i] as TextAsset;
+            if (textAsset.name == ResourceLabel.English)
+            {
+                XmlDocument document = new XmlDocument();
+                document.LoadXml(textAsset.text);
+                Language.AddLanguageDocument(CurrentLanguage.English, document);
+            }
+            else if (textAsset.name == ResourceLabel.ChineseSimplified)
+            {
+                XmlDocument document = new XmlDocument();
+                document.LoadXml(textAsset.text);
+                Language.AddLanguageDocument(CurrentLanguage.ChineseSimplified, document);
+            }
+            else if (textAsset.name == ResourceLabel.ChineseTraditional)
+            {
+                XmlDocument document = new XmlDocument();
+                document.LoadXml(textAsset.text);
+                Language.AddLanguageDocument(CurrentLanguage.ChineseTraditional, document);
+            }
+        }
+
+        //NewFlowerConfigs = ConfigManager.GetDressRoomConfig(Instance.NewFlowerConfigList[0] as TextAsset);
+
+        foreach (var obj in Instance.NewFlowerSpriteList)
+        {
+            Sprite sprite = obj as  Sprite;
+            ResourceManager.ObjectDictionary.UniqueAdd(sprite.name, sprite);
+        }
+
+        UpdateComplete = true;
+    }
 }

+ 58 - 55
Assets/Script/Tool/SceneMask.cs

@@ -1,56 +1,59 @@
-using UnityEngine;
-
-using System.Collections;
-using System.Collections.Generic;
-
-public class SceneMask : Regist
-{
-    #region 变量
-
-    public static Material Material;
-    public static BoxCollider2D BoxCollider;
-
-    #endregion
-
-    public override bool InitAtOnce()
-    {
-        if (base.InitAtOnce())
-        {
-            return true;
-        }
-
-        enabled = true;
-        Material = GetComponent<SpriteRenderer>().material;
-        BoxCollider = ResourceManager.Get<BoxCollider2D>("TutorialCollider");
-
-        return false;
-    }
-
-    public static void SetArea(Transform tra, Vector3 screenPos, float radiusX, float radiusY)
-    {
-        Material.SetFloat("_RadiusX", radiusX);
-        Material.SetFloat("_RadiusY", radiusY);
-        Material.SetVector("_Center", screenPos);
-
-        BoxCollider.transform.SetX(tra.position.x);
-        BoxCollider.transform.SetY(tra.position.y);
-
-        BoxCollider.size = new Vector2(36*radiusX, 20*radiusY);
-
-        ResourceManager.Get("TutorialMask").TweenForSr();
-    }
-
-    public static void ClearArea()
-    {
-        Material.SetFloat("_RadiusX", 0);
-        Material.SetFloat("_RadiusY", 0);
-        Material.SetVector("_Center", new Vector2(0, 0));
-
-        BoxCollider.transform.SetX(0);
-        BoxCollider.transform.SetY(0);
-
-        BoxCollider.size = new Vector2();
-
-        ResourceManager.Get("TutorialMask").TweenBacSr();
-    }
+using UnityEngine;
+
+using System.Collections;
+using System.Collections.Generic;
+
+public class SceneMask : Regist
+{
+    #region 变量
+
+    public static SceneMask inst;
+
+    public static Material Material;
+    public static BoxCollider2D BoxCollider;
+
+    #endregion
+
+    public override bool InitAtOnce()
+    {
+        if (base.InitAtOnce())
+        {
+            return true;
+        }
+
+        inst = this;
+        enabled = true;
+        Material = GetComponent<SpriteRenderer>().material;
+        BoxCollider = ResourceManager.Get<BoxCollider2D>("TutorialCollider");
+
+        return false;
+    }
+
+    public static void SetArea(Transform tra, Vector3 screenPos, float radiusX, float radiusY)
+    {
+        Material.SetFloat("_RadiusX", radiusX);
+        Material.SetFloat("_RadiusY", radiusY);
+        Material.SetVector("_Center", screenPos);
+
+        BoxCollider.transform.SetX(tra.position.x);
+        BoxCollider.transform.SetY(tra.position.y);
+
+        BoxCollider.size = new Vector2(36*radiusX, 20*radiusY);
+
+        ResourceManager.Get("TutorialMask").TweenForSr();
+    }
+
+    public static void ClearArea()
+    {
+        Material.SetFloat("_RadiusX", 0);
+        Material.SetFloat("_RadiusY", 0);
+        Material.SetVector("_Center", new Vector2(0, 0));
+
+        BoxCollider.transform.SetX(0);
+        BoxCollider.transform.SetY(0);
+
+        BoxCollider.size = new Vector2();
+
+        ResourceManager.Get("TutorialMask").TweenBacSr();
+    }
 }

+ 25 - 25
Assets/Script/Tool/UI/HudTarget.cs

@@ -1,26 +1,26 @@
-using UnityEngine;
-
-using System.Collections;
-
-public class HudTarget : MonoBehaviour 
-{
-    #region 变量
-
-    public Transform PosTra;
-
-    #endregion
-
-    private void Update()
-    {
-        SetPosition();
-    }
-
-    public void SetPosition()
-    {
-        if (PosTra == null)
-        {
-            return;
-        }
-        transform.position = Camera.main.WorldToScreenPoint(PosTra.position);
-    }
+using UnityEngine;
+
+using System.Collections;
+
+public class HudTarget : MonoBehaviour 
+{
+    #region 变量
+
+    public Transform PosTra;
+
+    #endregion
+
+    private void Update()
+    {
+        SetPosition();
+    }
+
+    public void SetPosition()
+    {
+        if (PosTra == null)
+        {
+            return;
+        }
+        transform.position = Camera.main.WorldToScreenPoint(PosTra.position);
+    }
 }

+ 3 - 3
ProjectSettings/ProjectSettings.asset

@@ -125,7 +125,7 @@ PlayerSettings:
     16:10: 1
     16:9: 1
     Others: 1
-  bundleVersion: 1.3.2
+  bundleVersion: 1.3.3
   preloadedAssets: []
   metroInputSource: 0
   m_HolographicPauseOnTrackingLoss: 1
@@ -156,8 +156,8 @@ PlayerSettings:
     iOS: com.dashgame.garden
     tvOS: com.dashgame.garden
   buildNumber:
-    iOS: 18
-  AndroidBundleVersionCode: 26
+    iOS: 19
+  AndroidBundleVersionCode: 27
   AndroidMinSdkVersion: 16
   AndroidTargetSdkVersion: 24
   AndroidPreferredInstallLocation: 1

Some files were not shown because too many files changed in this diff