slambb 4 anni fa
parent
commit
e6e741030c
47 ha cambiato i file con 4486 aggiunte e 1810 eliminazioni
  1. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30101_ColdDrinkStall.prefab
  2. 54 48
      assets/Prefabs/NBuildings/Shop/Shops_30102_SalesMachine.prefab
  3. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30103_Bakery.prefab
  4. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30104_BreakfastCar.prefab
  5. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30201_TeaShop.prefab
  6. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30202_confectaurant.prefab
  7. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30203_GourmetRestaurant.prefab
  8. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30204_WesternRestaurant.prefab
  9. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30301_Florist.prefab
  10. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30302_HairSalon.prefab
  11. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30303_DressShop.prefab
  12. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30304_JewelryStore.prefab
  13. 64 92
      assets/Prefabs/NBuildings/Shop/Shops_30305_Cinema.prefab
  14. 2 4
      assets/Prefabs/UI/lease/BuyDogInfo.prefab
  15. 3 3
      assets/Prefabs/UI/lease/GrantPanel.prefab
  16. 22 326
      assets/Prefabs/UI/lease/SalePanel.prefab
  17. 64 99
      assets/Prefabs/UI/seed/HolyFarmlandFruit.prefab
  18. 69 104
      assets/Prefabs/UI/seed/HolyFarmlandSeed.prefab
  19. 4 20
      assets/Prefabs/UI/seed/StoreHolyFarmlandEquip.prefab
  20. 45 80
      assets/Prefabs/UI/seed/StoreHolyFarmlandSeed.prefab
  21. 15 15
      assets/Scene/MyCityScene - 004.fire
  22. 10 0
      assets/Script/Network/dapp.js
  23. 4 4
      assets/Script/Network/netUtils.ts
  24. 2 2
      assets/Script/UI/StoreView.js
  25. 6 1
      assets/Script/adpp/dappListInfo.js
  26. 52 0
      assets/Script/build/CommodityItem.js
  27. 9 0
      assets/Script/build/CommodityItem.js.meta
  28. 712 0
      assets/Script/build/DynamicBuilding.js
  29. 9 0
      assets/Script/build/DynamicBuilding.js.meta
  30. 53 0
      assets/Script/build/Farmland.js
  31. 9 0
      assets/Script/build/Farmland.js.meta
  32. 92 0
      assets/Script/build/HighwayInfo.js
  33. 9 0
      assets/Script/build/HighwayInfo.js.meta
  34. 704 0
      assets/Script/build/LeaseFarmlandInfo.js
  35. 9 0
      assets/Script/build/LeaseFarmlandInfo.js.meta
  36. 53 0
      assets/Script/build/ObjTouch.js
  37. 9 0
      assets/Script/build/ObjTouch.js.meta
  38. 94 0
      assets/Script/build/TipSprite.js
  39. 9 0
      assets/Script/build/TipSprite.js.meta
  40. 213 0
      assets/Script/build/WorkingBuilding.js
  41. 9 0
      assets/Script/build/WorkingBuilding.js.meta
  42. 305 0
      assets/Script/build/buildingInfoView.js
  43. 9 0
      assets/Script/build/buildingInfoView.js.meta
  44. 620 0
      assets/Script/build/buildingsInfo.js
  45. 9 0
      assets/Script/build/buildingsInfo.js.meta
  46. 421 0
      assets/Script/build/buildingsTouch.js
  47. 9 0
      assets/Script/build/buildingsTouch.js.meta

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30101_ColdDrinkStall.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 0.8,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 3,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 10,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 54 - 48
assets/Prefabs/NBuildings/Shop/Shops_30102_SalesMachine.prefab

@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 0.8,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -316,18 +316,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -358,7 +357,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 100,
-      "height": 50
+      "height": 63
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -377,16 +376,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +396,11 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +410,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -435,11 +437,10 @@
       "__id__": 7
     },
     "_enabled": true,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
+    "_spriteFrame": null,
     "_type": 0,
     "_sizeMode": 1,
     "_fillType": 0,
@@ -451,7 +452,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -495,7 +495,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +514,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -536,8 +534,11 @@
       "__id__": 13
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +548,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +575,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +592,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -716,6 +719,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +727,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30103_Bakery.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 3,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 15,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30104_BreakfastCar.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 3,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 20,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30201_TeaShop.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 3,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 20,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30202_confectaurant.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 5,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 25,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30203_GourmetRestaurant.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 5,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 30,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30204_WesternRestaurant.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 5,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 30,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30301_Florist.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 5,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 30,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30302_HairSalon.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 1,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 1000,
     "goodsSalesRate": 30,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30303_DressShop.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 2,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 10,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 100,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30304_JewelryStore.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 2,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 10,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 1000,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 64 - 92
assets/Prefabs/NBuildings/Shop/Shops_30305_Cinema.prefab

@@ -27,30 +27,30 @@
         "__id__": 7
       },
       {
-        "__id__": 13
+        "__id__": 12
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
+      {
+        "__id__": 15
+      },
       {
         "__id__": 16
       },
       {
-        "__id__": 17
+        "__id__": 22
       },
       {
         "__id__": 23
       },
       {
         "__id__": 24
-      },
-      {
-        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 26
+      "__id__": 25
     },
     "_opacity": 255,
     "_color": {
@@ -82,16 +82,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -140,18 +138,17 @@
       "y": 1,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -212,18 +209,17 @@
       "y": 2,
       "z": 1
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Sprite",
@@ -233,6 +229,11 @@
       "__id__": 4
     },
     "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -249,7 +250,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -278,13 +278,9 @@
     ],
     "_active": false,
     "_level": 5,
-    "_components": [
-      {
-        "__id__": 11
-      }
-    ],
+    "_components": [],
     "_prefab": {
-      "__id__": 12
+      "__id__": 11
     },
     "_opacity": 255,
     "_color": {
@@ -316,18 +312,17 @@
       "y": 0.6,
       "z": 0.6
     },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_zIndex": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": "",
     "_eulerAngles": {
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
       "z": 0
-    }
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "groupIndex": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.Node",
@@ -377,16 +372,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -399,8 +392,7 @@
       "__id__": 8
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [],
     "_useOriginalSize": false,
     "_string": "售罄",
     "_N$string": "售罄",
@@ -410,10 +402,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -427,34 +421,6 @@
     "fileId": "e1UUO4ZdxKl7hZsfbxik/C",
     "sync": false
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 7
-    },
-    "_enabled": true,
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "a9f5aa98-eb86-4632-b863-e46ce1584809"
-    },
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_state": 0,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {
@@ -478,11 +444,11 @@
     "_level": 4,
     "_components": [
       {
-        "__id__": 14
+        "__id__": 13
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 14
     },
     "_opacity": 255,
     "_color": {
@@ -495,7 +461,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 97.87,
-      "height": 40
+      "height": 50.4
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -514,16 +480,14 @@
       "y": 1,
       "z": 1
     },
-    "_quat": {
-      "__type__": "cc.Quat",
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 0,
-      "w": 1
+      "z": 0
     },
     "_skewX": 0,
     "_skewY": 0,
-    "_zIndex": 0,
     "_is3DNode": false,
     "groupIndex": 0,
     "_id": ""
@@ -533,11 +497,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 13
+      "__id__": 12
     },
     "_enabled": true,
-    "_srcBlendFactor": 1,
-    "_dstBlendFactor": 771,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
     "_useOriginalSize": false,
     "_string": "Label",
     "_N$string": "Label",
@@ -547,10 +514,12 @@
     "_N$file": null,
     "_isSystemFontUsed": true,
     "_spacingX": 0,
+    "_batchAsBitmap": false,
     "_N$horizontalAlign": 1,
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
+    "_N$cacheMode": 0,
     "_id": ""
   },
   {
@@ -572,6 +541,7 @@
       "__id__": 1
     },
     "_enabled": false,
+    "_materials": [],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
@@ -588,7 +558,6 @@
     "_fillStart": 0,
     "_fillRange": 0,
     "_isTrimmedMode": true,
-    "_state": 0,
     "_atlas": null,
     "_id": ""
   },
@@ -601,10 +570,10 @@
     },
     "_enabled": true,
     "title": {
-      "__id__": 14
+      "__id__": 13
     },
     "buildInfo": {
-      "__id__": 18
+      "__id__": 17
     },
     "buildZone": {
       "__id__": 2
@@ -659,10 +628,10 @@
     "totalInventory": 10,
     "goodsArray": [
       {
-        "__id__": 19
+        "__id__": 18
       },
       {
-        "__id__": 21
+        "__id__": 20
       }
     ],
     "_goods": null,
@@ -682,7 +651,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 25,
     "goodsMaterial": {
-      "__id__": 20
+      "__id__": 19
     }
   },
   {
@@ -699,7 +668,7 @@
     "goodsPrice": 1500,
     "goodsSalesRate": 50,
     "goodsMaterial": {
-      "__id__": 22
+      "__id__": 21
     }
   },
   {
@@ -716,6 +685,7 @@
       "__id__": 1
     },
     "_enabled": true,
+    "isHiddenTouch": false,
     "isShowBuildingInfo": false,
     "_isInstance": false,
     "_ifCanEdit": false,
@@ -723,6 +693,8 @@
     "isAutoMove": false,
     "targetNode": null,
     "_OldIndex": 0,
+    "isShowInfo": false,
+    "infoNode": null,
     "_id": ""
   },
   {

+ 2 - 4
assets/Prefabs/UI/lease/BuyDogInfo.prefab

@@ -715,7 +715,7 @@
       "__id__": 18
     },
     "_children": [],
-    "_active": true,
+    "_active": false,
     "_level": 6,
     "_components": [
       {
@@ -782,9 +782,7 @@
     ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "e55aaaa4-d461-4fe1-a9fb-1ab98afe4124"
-    },
+    "_spriteFrame": null,
     "_type": 0,
     "_sizeMode": 0,
     "_fillType": 0,

+ 3 - 3
assets/Prefabs/UI/lease/GrantPanel.prefab

@@ -239,8 +239,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 594,
-      "height": 538
+      "width": 655,
+      "height": 616
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -3174,7 +3174,7 @@
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
-      "__uuid__": "6255e000-b232-46fd-9bb5-5b905fc61fe7"
+      "__uuid__": "54b4e7c0-796d-4f50-8ca4-5c7ae26a3348"
     },
     "_type": 0,
     "_sizeMode": 1,

+ 22 - 326
assets/Prefabs/UI/lease/SalePanel.prefab

@@ -28,11 +28,11 @@
     "_level": 1,
     "_components": [
       {
-        "__id__": 82
+        "__id__": 73
       }
     ],
     "_prefab": {
-      "__id__": 83
+      "__id__": 74
     },
     "_opacity": 255,
     "_color": {
@@ -211,20 +211,17 @@
       },
       {
         "__id__": 60
-      },
-      {
-        "__id__": 69
       }
     ],
     "_active": true,
     "_level": 6,
     "_components": [
       {
-        "__id__": 80
+        "__id__": 71
       }
     ],
     "_prefab": {
-      "__id__": 81
+      "__id__": 72
     },
     "_opacity": 255,
     "_color": {
@@ -1997,9 +1994,7 @@
     ],
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "e55aaaa4-d461-4fe1-a9fb-1ab98afe4124"
-    },
+    "_spriteFrame": null,
     "_type": 1,
     "_sizeMode": 0,
     "_fillType": 0,
@@ -2025,305 +2020,6 @@
     "fileId": "fboEEKqlFOIKbnUC9X3ZdA",
     "sync": false
   },
-  {
-    "__type__": "cc.Node",
-    "_name": "tip",
-    "_objFlags": 0,
-    "_parent": {
-      "__id__": 6
-    },
-    "_children": [
-      {
-        "__id__": 61
-      },
-      {
-        "__id__": 64
-      }
-    ],
-    "_active": false,
-    "_level": 7,
-    "_components": [],
-    "_prefab": {
-      "__id__": 68
-    },
-    "_opacity": 255,
-    "_color": {
-      "__type__": "cc.Color",
-      "r": 255,
-      "g": 255,
-      "b": 255,
-      "a": 255
-    },
-    "_contentSize": {
-      "__type__": "cc.Size",
-      "width": 0,
-      "height": 0
-    },
-    "_anchorPoint": {
-      "__type__": "cc.Vec2",
-      "x": 0.5,
-      "y": 0.5
-    },
-    "_position": {
-      "__type__": "cc.Vec3",
-      "x": -162.8,
-      "y": -95,
-      "z": 0
-    },
-    "_scale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1,
-      "z": 1
-    },
-    "_eulerAngles": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "warning",
-    "_objFlags": 0,
-    "_parent": {
-      "__id__": 60
-    },
-    "_children": [],
-    "_active": true,
-    "_level": 8,
-    "_components": [
-      {
-        "__id__": 62
-      }
-    ],
-    "_prefab": {
-      "__id__": 63
-    },
-    "_opacity": 255,
-    "_color": {
-      "__type__": "cc.Color",
-      "r": 255,
-      "g": 255,
-      "b": 255,
-      "a": 255
-    },
-    "_contentSize": {
-      "__type__": "cc.Size",
-      "width": 32,
-      "height": 32
-    },
-    "_anchorPoint": {
-      "__type__": "cc.Vec2",
-      "x": 0.5,
-      "y": 0.5
-    },
-    "_position": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": -8.371,
-      "z": 0
-    },
-    "_scale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1,
-      "z": 1
-    },
-    "_eulerAngles": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 61
-    },
-    "_enabled": true,
-    "_materials": [
-      {
-        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
-      }
-    ],
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": {
-      "__uuid__": "0d173446-0535-495f-833a-0cb85bb3ab12"
-    },
-    "_type": 0,
-    "_sizeMode": 0,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_atlas": null,
-    "_id": ""
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__uuid__": "c5974de4-05d0-443b-a59f-911cb68a6c1c"
-    },
-    "fileId": "f5mPfF9dpD5ZgNYF2N702l",
-    "sync": false
-  },
-  {
-    "__type__": "cc.Node",
-    "_name": "tipText",
-    "_objFlags": 0,
-    "_parent": {
-      "__id__": 60
-    },
-    "_children": [],
-    "_active": true,
-    "_level": 8,
-    "_components": [
-      {
-        "__id__": 65
-      },
-      {
-        "__id__": 66
-      }
-    ],
-    "_prefab": {
-      "__id__": 67
-    },
-    "_opacity": 255,
-    "_color": {
-      "__type__": "cc.Color",
-      "r": 252,
-      "g": 41,
-      "b": 41,
-      "a": 255
-    },
-    "_contentSize": {
-      "__type__": "cc.Size",
-      "width": 331.03,
-      "height": 26.2
-    },
-    "_anchorPoint": {
-      "__type__": "cc.Vec2",
-      "x": 0.5,
-      "y": 0.5
-    },
-    "_position": {
-      "__type__": "cc.Vec3",
-      "x": 191.487,
-      "y": -9.417,
-      "z": 0
-    },
-    "_scale": {
-      "__type__": "cc.Vec3",
-      "x": 1,
-      "y": 1,
-      "z": 1
-    },
-    "_eulerAngles": {
-      "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
-      "z": 0
-    },
-    "_skewX": 0,
-    "_skewY": 0,
-    "_is3DNode": false,
-    "groupIndex": 0,
-    "_id": ""
-  },
-  {
-    "__type__": "cc.Label",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 64
-    },
-    "_enabled": true,
-    "_materials": [
-      {
-        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
-      }
-    ],
-    "_useOriginalSize": false,
-    "_string": "果实售出需要收取5%SNB作为手续费",
-    "_N$string": "果实售出需要收取5%SNB作为手续费",
-    "_fontSize": 20,
-    "_lineHeight": 20,
-    "_enableWrapText": true,
-    "_N$file": null,
-    "_isSystemFontUsed": true,
-    "_spacingX": 0,
-    "_batchAsBitmap": false,
-    "_N$horizontalAlign": 1,
-    "_N$verticalAlign": 1,
-    "_N$fontFamily": "Arial",
-    "_N$overflow": 0,
-    "_N$cacheMode": 0,
-    "_id": ""
-  },
-  {
-    "__type__": "cc.LabelOutline",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 64
-    },
-    "_enabled": true,
-    "_color": {
-      "__type__": "cc.Color",
-      "r": 252,
-      "g": 41,
-      "b": 41,
-      "a": 255
-    },
-    "_width": 0.5,
-    "_id": ""
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__uuid__": "c5974de4-05d0-443b-a59f-911cb68a6c1c"
-    },
-    "fileId": "089iunqfBCd79Qe1OVneMp",
-    "sync": false
-  },
-  {
-    "__type__": "cc.PrefabInfo",
-    "root": {
-      "__id__": 1
-    },
-    "asset": {
-      "__uuid__": "c5974de4-05d0-443b-a59f-911cb68a6c1c"
-    },
-    "fileId": "52uJLBnSdFsYqMkbEX+M3d",
-    "sync": false
-  },
   {
     "__type__": "cc.Node",
     "_name": "button",
@@ -2333,18 +2029,18 @@
     },
     "_children": [
       {
-        "__id__": 70
+        "__id__": 61
       }
     ],
     "_active": true,
     "_level": 7,
     "_components": [
       {
-        "__id__": 77
+        "__id__": 68
       }
     ],
     "_prefab": {
-      "__id__": 79
+      "__id__": 70
     },
     "_opacity": 255,
     "_color": {
@@ -2393,25 +2089,25 @@
     "_name": "Background",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 69
+      "__id__": 60
     },
     "_children": [
       {
-        "__id__": 71
+        "__id__": 62
       }
     ],
     "_active": true,
     "_level": 2,
     "_components": [
       {
-        "__id__": 74
+        "__id__": 65
       },
       {
-        "__id__": 75
+        "__id__": 66
       }
     ],
     "_prefab": {
-      "__id__": 76
+      "__id__": 67
     },
     "_opacity": 255,
     "_color": {
@@ -2460,18 +2156,18 @@
     "_name": "Label",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 70
+      "__id__": 61
     },
     "_children": [],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 72
+        "__id__": 63
       }
     ],
     "_prefab": {
-      "__id__": 73
+      "__id__": 64
     },
     "_opacity": 255,
     "_color": {
@@ -2520,7 +2216,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 71
+      "__id__": 62
     },
     "_enabled": true,
     "_materials": [
@@ -2561,7 +2257,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 70
+      "__id__": 61
     },
     "_enabled": true,
     "_materials": [
@@ -2593,7 +2289,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 70
+      "__id__": 61
     },
     "_enabled": true,
     "alignMode": 0,
@@ -2631,14 +2327,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 69
+      "__id__": 60
     },
     "_enabled": true,
     "duration": 0.1,
     "zoomScale": 0.8,
     "clickEvents": [
       {
-        "__id__": 78
+        "__id__": 69
       }
     ],
     "_N$interactable": true,
@@ -2706,7 +2402,7 @@
       "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
     },
     "_N$target": {
-      "__id__": 70
+      "__id__": 61
     },
     "_id": ""
   },

+ 64 - 99
assets/Prefabs/UI/seed/HolyFarmlandFruit.prefab

@@ -25,17 +25,17 @@
     "_level": 1,
     "_components": [
       {
-        "__id__": 56
+        "__id__": 55
       },
       {
-        "__id__": 58
+        "__id__": 57
       },
       {
-        "__id__": 60
+        "__id__": 59
       }
     ],
     "_prefab": {
-      "__id__": 61
+      "__id__": 60
     },
     "_opacity": 255,
     "_color": {
@@ -100,20 +100,20 @@
         "__id__": 16
       },
       {
-        "__id__": 22
+        "__id__": 21
       },
       {
-        "__id__": 28
+        "__id__": 27
       },
       {
-        "__id__": 47
+        "__id__": 46
       }
     ],
     "_active": true,
     "_level": 2,
     "_components": [],
     "_prefab": {
-      "__id__": 55
+      "__id__": 54
     },
     "_opacity": 255,
     "_color": {
@@ -608,13 +608,10 @@
       },
       {
         "__id__": 19
-      },
-      {
-        "__id__": 20
       }
     ],
     "_prefab": {
-      "__id__": 21
+      "__id__": 20
     },
     "_opacity": 255,
     "_color": {
@@ -740,36 +737,6 @@
     "handler": "onPressedInfo",
     "customEventData": "1"
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 16
-    },
-    "_enabled": true,
-    "_materials": [
-      {
-        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
-      }
-    ],
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": null,
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.BlockInputEvents",
     "_name": "",
@@ -800,18 +767,18 @@
     },
     "_children": [
       {
-        "__id__": 23
+        "__id__": 22
       }
     ],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 26
+        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 27
+      "__id__": 26
     },
     "_opacity": 255,
     "_color": {
@@ -860,18 +827,18 @@
     "_name": "Num",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 22
+      "__id__": 21
     },
     "_children": [],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 24
+        "__id__": 23
       }
     ],
     "_prefab": {
-      "__id__": 25
+      "__id__": 24
     },
     "_opacity": 255,
     "_color": {
@@ -920,7 +887,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 23
+      "__id__": 22
     },
     "_enabled": true,
     "_materials": [
@@ -961,7 +928,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 22
+      "__id__": 21
     },
     "_enabled": true,
     "_materials": [
@@ -1006,21 +973,21 @@
     },
     "_children": [
       {
-        "__id__": 29
+        "__id__": 28
       },
       {
-        "__id__": 37
+        "__id__": 36
       }
     ],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 45
+        "__id__": 44
       }
     ],
     "_prefab": {
-      "__id__": 46
+      "__id__": 45
     },
     "_opacity": 255,
     "_color": {
@@ -1069,22 +1036,22 @@
     "_name": "sale",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 28
+      "__id__": 27
     },
     "_children": [
       {
-        "__id__": 30
+        "__id__": 29
       }
     ],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 34
+        "__id__": 33
       }
     ],
     "_prefab": {
-      "__id__": 36
+      "__id__": 35
     },
     "_opacity": 255,
     "_color": {
@@ -1133,21 +1100,21 @@
     "_name": "Background",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 29
+      "__id__": 28
     },
     "_children": [],
     "_active": true,
     "_level": 2,
     "_components": [
       {
-        "__id__": 31
+        "__id__": 30
       },
       {
-        "__id__": 32
+        "__id__": 31
       }
     ],
     "_prefab": {
-      "__id__": 33
+      "__id__": 32
     },
     "_opacity": 255,
     "_color": {
@@ -1196,7 +1163,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 30
+      "__id__": 29
     },
     "_enabled": true,
     "_materials": [
@@ -1228,7 +1195,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 30
+      "__id__": 29
     },
     "_enabled": true,
     "alignMode": 0,
@@ -1266,14 +1233,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 29
+      "__id__": 28
     },
     "_enabled": true,
     "duration": 0.1,
     "zoomScale": 0.8,
     "clickEvents": [
       {
-        "__id__": 35
+        "__id__": 34
       }
     ],
     "_N$interactable": true,
@@ -1341,7 +1308,7 @@
       "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
     },
     "_N$target": {
-      "__id__": 30
+      "__id__": 29
     },
     "_id": ""
   },
@@ -1371,22 +1338,22 @@
     "_name": "grant",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 28
+      "__id__": 27
     },
     "_children": [
       {
-        "__id__": 38
+        "__id__": 37
       }
     ],
     "_active": false,
     "_level": 3,
     "_components": [
       {
-        "__id__": 42
+        "__id__": 41
       }
     ],
     "_prefab": {
-      "__id__": 44
+      "__id__": 43
     },
     "_opacity": 255,
     "_color": {
@@ -1435,21 +1402,21 @@
     "_name": "Background",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 37
+      "__id__": 36
     },
     "_children": [],
     "_active": true,
     "_level": 2,
     "_components": [
       {
-        "__id__": 39
+        "__id__": 38
       },
       {
-        "__id__": 40
+        "__id__": 39
       }
     ],
     "_prefab": {
-      "__id__": 41
+      "__id__": 40
     },
     "_opacity": 255,
     "_color": {
@@ -1498,7 +1465,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 38
+      "__id__": 37
     },
     "_enabled": true,
     "_materials": [
@@ -1530,7 +1497,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 38
+      "__id__": 37
     },
     "_enabled": true,
     "alignMode": 0,
@@ -1568,14 +1535,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 37
+      "__id__": 36
     },
     "_enabled": true,
     "duration": 0.1,
     "zoomScale": 1.2,
     "clickEvents": [
       {
-        "__id__": 43
+        "__id__": 42
       }
     ],
     "_N$interactable": true,
@@ -1643,7 +1610,7 @@
       "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
     },
     "_N$target": {
-      "__id__": 38
+      "__id__": 37
     },
     "_id": ""
   },
@@ -1673,7 +1640,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 28
+      "__id__": 27
     },
     "_enabled": true,
     "_layoutSize": {
@@ -1721,21 +1688,21 @@
     },
     "_children": [
       {
-        "__id__": 48
+        "__id__": 47
       }
     ],
     "_active": false,
     "_level": 3,
     "_components": [
       {
-        "__id__": 52
+        "__id__": 51
       },
       {
-        "__id__": 53
+        "__id__": 52
       }
     ],
     "_prefab": {
-      "__id__": 54
+      "__id__": 53
     },
     "_opacity": 120,
     "_color": {
@@ -1784,21 +1751,21 @@
     "_name": "SellOutlabel",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 47
+      "__id__": 46
     },
     "_children": [],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 49
+        "__id__": 48
       },
       {
-        "__id__": 50
+        "__id__": 49
       }
     ],
     "_prefab": {
-      "__id__": 51
+      "__id__": 50
     },
     "_opacity": 255,
     "_color": {
@@ -1847,7 +1814,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 48
+      "__id__": 47
     },
     "_enabled": true,
     "_materials": [
@@ -1877,7 +1844,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 48
+      "__id__": 47
     },
     "_enabled": true,
     "_color": {
@@ -1906,7 +1873,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 47
+      "__id__": 46
     },
     "_enabled": true,
     "_materials": [
@@ -1938,7 +1905,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 47
+      "__id__": 46
     },
     "_enabled": true,
     "_id": ""
@@ -1977,7 +1944,7 @@
     "zoomScale": 1.2,
     "clickEvents": [
       {
-        "__id__": 57
+        "__id__": 56
       }
     ],
     "_N$interactable": true,
@@ -2026,9 +1993,7 @@
       "b": 255,
       "a": 255
     },
-    "_N$normalSprite": {
-      "__uuid__": "c2cf153e-3d65-4448-b043-65628c8457ba"
-    },
+    "_N$normalSprite": null,
     "_N$pressedSprite": {
       "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a"
     },
@@ -2079,14 +2044,14 @@
       "__id__": 7
     },
     "NumLabel": {
-      "__id__": 24
+      "__id__": 23
     },
     "NameLabel": {
       "__id__": 11
     },
     "clickEvents": [
       {
-        "__id__": 59
+        "__id__": 58
       }
     ],
     "_id": ""

+ 69 - 104
assets/Prefabs/UI/seed/HolyFarmlandSeed.prefab

@@ -30,33 +30,33 @@
         "__id__": 15
       },
       {
-        "__id__": 21
+        "__id__": 20
       },
       {
-        "__id__": 28
+        "__id__": 27
       },
       {
-        "__id__": 39
+        "__id__": 38
       },
       {
-        "__id__": 50
+        "__id__": 49
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
       {
-        "__id__": 58
+        "__id__": 57
       },
       {
-        "__id__": 60
+        "__id__": 59
       },
       {
-        "__id__": 62
+        "__id__": 61
       }
     ],
     "_prefab": {
-      "__id__": 63
+      "__id__": 62
     },
     "_opacity": 255,
     "_color": {
@@ -551,13 +551,10 @@
       },
       {
         "__id__": 18
-      },
-      {
-        "__id__": 19
       }
     ],
     "_prefab": {
-      "__id__": 20
+      "__id__": 19
     },
     "_opacity": 255,
     "_color": {
@@ -683,36 +680,6 @@
     "handler": "onPressedInfo",
     "customEventData": "1"
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 15
-    },
-    "_enabled": true,
-    "_materials": [
-      {
-        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
-      }
-    ],
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": null,
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.BlockInputEvents",
     "_name": "",
@@ -743,18 +710,18 @@
     },
     "_children": [
       {
-        "__id__": 22
+        "__id__": 21
       }
     ],
     "_active": true,
     "_level": 2,
     "_components": [
       {
-        "__id__": 26
+        "__id__": 25
       }
     ],
     "_prefab": {
-      "__id__": 27
+      "__id__": 26
     },
     "_opacity": 255,
     "_color": {
@@ -803,21 +770,21 @@
     "_name": "Num",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 21
+      "__id__": 20
     },
     "_children": [],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 23
+        "__id__": 22
       },
       {
-        "__id__": 24
+        "__id__": 23
       }
     ],
     "_prefab": {
-      "__id__": 25
+      "__id__": 24
     },
     "_opacity": 255,
     "_color": {
@@ -866,7 +833,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 22
+      "__id__": 21
     },
     "_enabled": true,
     "_materials": [
@@ -896,7 +863,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 22
+      "__id__": 21
     },
     "_enabled": true,
     "_color": {
@@ -925,7 +892,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 21
+      "__id__": 20
     },
     "_enabled": true,
     "_materials": [
@@ -970,18 +937,18 @@
     },
     "_children": [
       {
-        "__id__": 29
+        "__id__": 28
       }
     ],
     "_active": true,
     "_level": 2,
     "_components": [
       {
-        "__id__": 36
+        "__id__": 35
       }
     ],
     "_prefab": {
-      "__id__": 38
+      "__id__": 37
     },
     "_opacity": 255,
     "_color": {
@@ -1030,25 +997,25 @@
     "_name": "Background",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 28
+      "__id__": 27
     },
     "_children": [
       {
-        "__id__": 30
+        "__id__": 29
       }
     ],
     "_active": true,
     "_level": 2,
     "_components": [
       {
-        "__id__": 33
+        "__id__": 32
       },
       {
-        "__id__": 34
+        "__id__": 33
       }
     ],
     "_prefab": {
-      "__id__": 35
+      "__id__": 34
     },
     "_opacity": 255,
     "_color": {
@@ -1097,18 +1064,18 @@
     "_name": "Label",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 29
+      "__id__": 28
     },
     "_children": [],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 31
+        "__id__": 30
       }
     ],
     "_prefab": {
-      "__id__": 32
+      "__id__": 31
     },
     "_opacity": 255,
     "_color": {
@@ -1157,7 +1124,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 30
+      "__id__": 29
     },
     "_enabled": true,
     "_materials": [
@@ -1198,7 +1165,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 29
+      "__id__": 28
     },
     "_enabled": true,
     "_materials": [
@@ -1230,7 +1197,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 29
+      "__id__": 28
     },
     "_enabled": true,
     "alignMode": 0,
@@ -1268,14 +1235,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 28
+      "__id__": 27
     },
     "_enabled": true,
     "duration": 0.1,
     "zoomScale": 0.8,
     "clickEvents": [
       {
-        "__id__": 37
+        "__id__": 36
       }
     ],
     "_N$interactable": true,
@@ -1343,7 +1310,7 @@
       "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
     },
     "_N$target": {
-      "__id__": 29
+      "__id__": 28
     },
     "_id": ""
   },
@@ -1377,18 +1344,18 @@
     },
     "_children": [
       {
-        "__id__": 40
+        "__id__": 39
       }
     ],
     "_active": false,
     "_level": 2,
     "_components": [
       {
-        "__id__": 47
+        "__id__": 46
       }
     ],
     "_prefab": {
-      "__id__": 49
+      "__id__": 48
     },
     "_opacity": 255,
     "_color": {
@@ -1437,25 +1404,25 @@
     "_name": "Background",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 39
+      "__id__": 38
     },
     "_children": [
       {
-        "__id__": 41
+        "__id__": 40
       }
     ],
     "_active": true,
     "_level": 2,
     "_components": [
       {
-        "__id__": 44
+        "__id__": 43
       },
       {
-        "__id__": 45
+        "__id__": 44
       }
     ],
     "_prefab": {
-      "__id__": 46
+      "__id__": 45
     },
     "_opacity": 255,
     "_color": {
@@ -1504,18 +1471,18 @@
     "_name": "Label",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 40
+      "__id__": 39
     },
     "_children": [],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 42
+        "__id__": 41
       }
     ],
     "_prefab": {
-      "__id__": 43
+      "__id__": 42
     },
     "_opacity": 255,
     "_color": {
@@ -1564,7 +1531,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 41
+      "__id__": 40
     },
     "_enabled": true,
     "_materials": [
@@ -1605,7 +1572,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 40
+      "__id__": 39
     },
     "_enabled": true,
     "_materials": [
@@ -1637,7 +1604,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 40
+      "__id__": 39
     },
     "_enabled": true,
     "alignMode": 0,
@@ -1675,14 +1642,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 39
+      "__id__": 38
     },
     "_enabled": true,
     "duration": 0.1,
     "zoomScale": 0.8,
     "clickEvents": [
       {
-        "__id__": 48
+        "__id__": 47
       }
     ],
     "_N$interactable": true,
@@ -1750,7 +1717,7 @@
       "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
     },
     "_N$target": {
-      "__id__": 40
+      "__id__": 39
     },
     "_id": ""
   },
@@ -1784,21 +1751,21 @@
     },
     "_children": [
       {
-        "__id__": 51
+        "__id__": 50
       }
     ],
     "_active": false,
     "_level": 2,
     "_components": [
       {
-        "__id__": 55
+        "__id__": 54
       },
       {
-        "__id__": 56
+        "__id__": 55
       }
     ],
     "_prefab": {
-      "__id__": 57
+      "__id__": 56
     },
     "_opacity": 120,
     "_color": {
@@ -1847,21 +1814,21 @@
     "_name": "SellOutlabel",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 50
+      "__id__": 49
     },
     "_children": [],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 52
+        "__id__": 51
       },
       {
-        "__id__": 53
+        "__id__": 52
       }
     ],
     "_prefab": {
-      "__id__": 54
+      "__id__": 53
     },
     "_opacity": 255,
     "_color": {
@@ -1910,7 +1877,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 51
+      "__id__": 50
     },
     "_enabled": true,
     "_materials": [
@@ -1940,7 +1907,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 51
+      "__id__": 50
     },
     "_enabled": true,
     "_color": {
@@ -1969,7 +1936,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 50
+      "__id__": 49
     },
     "_enabled": true,
     "_materials": [
@@ -2001,7 +1968,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 50
+      "__id__": 49
     },
     "_enabled": true,
     "_id": ""
@@ -2029,7 +1996,7 @@
     "zoomScale": 1.2,
     "clickEvents": [
       {
-        "__id__": 59
+        "__id__": 58
       }
     ],
     "_N$interactable": true,
@@ -2078,9 +2045,7 @@
       "b": 255,
       "a": 255
     },
-    "_N$normalSprite": {
-      "__uuid__": "c2cf153e-3d65-4448-b043-65628c8457ba"
-    },
+    "_N$normalSprite": null,
     "_N$pressedSprite": {
       "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a"
     },
@@ -2131,14 +2096,14 @@
       "__id__": 6
     },
     "NumLabel": {
-      "__id__": 23
+      "__id__": 22
     },
     "NameLabel": {
       "__id__": 10
     },
     "clickEvents": [
       {
-        "__id__": 61
+        "__id__": 60
       }
     ],
     "_id": ""

+ 4 - 20
assets/Prefabs/UI/seed/StoreHolyFarmlandEquip.prefab

@@ -49,11 +49,11 @@
         "__id__": 49
       },
       {
-        "__id__": 51
+        "__id__": 50
       }
     ],
     "_prefab": {
-      "__id__": 52
+      "__id__": 51
     },
     "_opacity": 255,
     "_color": {
@@ -1678,9 +1678,7 @@
       "b": 255,
       "a": 255
     },
-    "_N$normalSprite": {
-      "__uuid__": "c2cf153e-3d65-4448-b043-65628c8457ba"
-    },
+    "_N$normalSprite": null,
     "_N$pressedSprite": {
       "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a"
     },
@@ -1736,23 +1734,9 @@
     "NameLabel": {
       "__id__": 15
     },
-    "clickEvents": [
-      {
-        "__id__": 50
-      }
-    ],
+    "clickEvents": [],
     "_id": ""
   },
-  {
-    "__type__": "cc.ClickEvent",
-    "target": {
-      "__id__": 1
-    },
-    "component": "",
-    "_componentId": "22ed83kVv5KeZS7uv2u6vw7",
-    "handler": "onCreateSeed",
-    "customEventData": ""
-  },
   {
     "__type__": "16756JpfPhIhZCY01IycFzW",
     "_name": "",

+ 45 - 80
assets/Prefabs/UI/seed/StoreHolyFarmlandSeed.prefab

@@ -33,27 +33,27 @@
         "__id__": 18
       },
       {
-        "__id__": 24
+        "__id__": 23
       },
       {
-        "__id__": 37
+        "__id__": 36
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
       {
-        "__id__": 47
+        "__id__": 46
       },
       {
-        "__id__": 49
+        "__id__": 48
       },
       {
-        "__id__": 51
+        "__id__": 50
       }
     ],
     "_prefab": {
-      "__id__": 52
+      "__id__": 51
     },
     "_opacity": 255,
     "_color": {
@@ -649,13 +649,10 @@
       },
       {
         "__id__": 21
-      },
-      {
-        "__id__": 22
       }
     ],
     "_prefab": {
-      "__id__": 23
+      "__id__": 22
     },
     "_opacity": 255,
     "_color": {
@@ -781,36 +778,6 @@
     "handler": "onMallPressedInfo",
     "customEventData": "1"
   },
-  {
-    "__type__": "cc.Sprite",
-    "_name": "",
-    "_objFlags": 0,
-    "node": {
-      "__id__": 18
-    },
-    "_enabled": true,
-    "_materials": [
-      {
-        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
-      }
-    ],
-    "_srcBlendFactor": 770,
-    "_dstBlendFactor": 771,
-    "_spriteFrame": null,
-    "_type": 0,
-    "_sizeMode": 1,
-    "_fillType": 0,
-    "_fillCenter": {
-      "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
-    },
-    "_fillStart": 0,
-    "_fillRange": 0,
-    "_isTrimmedMode": true,
-    "_atlas": null,
-    "_id": ""
-  },
   {
     "__type__": "cc.BlockInputEvents",
     "_name": "",
@@ -841,14 +808,14 @@
     },
     "_children": [
       {
-        "__id__": 25
+        "__id__": 24
       }
     ],
     "_active": true,
     "_level": 2,
     "_components": [],
     "_prefab": {
-      "__id__": 36
+      "__id__": 35
     },
     "_opacity": 255,
     "_color": {
@@ -897,22 +864,22 @@
     "_name": "buy_button",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 24
+      "__id__": 23
     },
     "_children": [
       {
-        "__id__": 26
+        "__id__": 25
       }
     ],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 33
+        "__id__": 32
       }
     ],
     "_prefab": {
-      "__id__": 35
+      "__id__": 34
     },
     "_opacity": 255,
     "_color": {
@@ -961,25 +928,25 @@
     "_name": "Background",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 25
+      "__id__": 24
     },
     "_children": [
       {
-        "__id__": 27
+        "__id__": 26
       }
     ],
     "_active": true,
     "_level": 2,
     "_components": [
       {
-        "__id__": 30
+        "__id__": 29
       },
       {
-        "__id__": 31
+        "__id__": 30
       }
     ],
     "_prefab": {
-      "__id__": 32
+      "__id__": 31
     },
     "_opacity": 255,
     "_color": {
@@ -1028,18 +995,18 @@
     "_name": "Label",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 26
+      "__id__": 25
     },
     "_children": [],
     "_active": false,
     "_level": 3,
     "_components": [
       {
-        "__id__": 28
+        "__id__": 27
       }
     ],
     "_prefab": {
-      "__id__": 29
+      "__id__": 28
     },
     "_opacity": 255,
     "_color": {
@@ -1088,7 +1055,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 27
+      "__id__": 26
     },
     "_enabled": true,
     "_materials": [
@@ -1129,7 +1096,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 26
+      "__id__": 25
     },
     "_enabled": true,
     "_materials": [
@@ -1161,7 +1128,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 26
+      "__id__": 25
     },
     "_enabled": true,
     "alignMode": 0,
@@ -1199,14 +1166,14 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 25
+      "__id__": 24
     },
     "_enabled": true,
     "duration": 0.1,
     "zoomScale": 0.8,
     "clickEvents": [
       {
-        "__id__": 34
+        "__id__": 33
       }
     ],
     "_N$interactable": true,
@@ -1274,7 +1241,7 @@
       "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
     },
     "_N$target": {
-      "__id__": 26
+      "__id__": 25
     },
     "_id": ""
   },
@@ -1319,21 +1286,21 @@
     },
     "_children": [
       {
-        "__id__": 38
+        "__id__": 37
       },
       {
-        "__id__": 42
+        "__id__": 41
       }
     ],
     "_active": false,
     "_level": 2,
     "_components": [
       {
-        "__id__": 45
+        "__id__": 44
       }
     ],
     "_prefab": {
-      "__id__": 46
+      "__id__": 45
     },
     "_opacity": 255,
     "_color": {
@@ -1382,21 +1349,21 @@
     "_name": "SellOut",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 37
+      "__id__": 36
     },
     "_children": [],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 39
+        "__id__": 38
       },
       {
-        "__id__": 40
+        "__id__": 39
       }
     ],
     "_prefab": {
-      "__id__": 41
+      "__id__": 40
     },
     "_opacity": 255,
     "_color": {
@@ -1445,7 +1412,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 38
+      "__id__": 37
     },
     "_enabled": true,
     "_materials": [
@@ -1477,7 +1444,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 38
+      "__id__": 37
     },
     "_enabled": true,
     "_id": ""
@@ -1498,18 +1465,18 @@
     "_name": "saleOutButton",
     "_objFlags": 0,
     "_parent": {
-      "__id__": 37
+      "__id__": 36
     },
     "_children": [],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 43
+        "__id__": 42
       }
     ],
     "_prefab": {
-      "__id__": 44
+      "__id__": 43
     },
     "_opacity": 255,
     "_color": {
@@ -1558,7 +1525,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 42
+      "__id__": 41
     },
     "_enabled": true,
     "_materials": [
@@ -1601,7 +1568,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 37
+      "__id__": 36
     },
     "_enabled": true,
     "_id": ""
@@ -1629,7 +1596,7 @@
     "zoomScale": 1.2,
     "clickEvents": [
       {
-        "__id__": 48
+        "__id__": 47
       }
     ],
     "_N$interactable": true,
@@ -1678,9 +1645,7 @@
       "b": 255,
       "a": 255
     },
-    "_N$normalSprite": {
-      "__uuid__": "c2cf153e-3d65-4448-b043-65628c8457ba"
-    },
+    "_N$normalSprite": null,
     "_N$pressedSprite": {
       "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a"
     },
@@ -1738,7 +1703,7 @@
     },
     "clickEvents": [
       {
-        "__id__": 50
+        "__id__": 49
       }
     ],
     "_id": ""

+ 15 - 15
assets/Scene/MyCityScene - 004.fire

@@ -619,7 +619,7 @@
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 420.8883462392372
+      "z": 292.7165864791403
     },
     "_scale": {
       "__type__": "cc.Vec3",
@@ -763,7 +763,7 @@
       "__type__": "cc.Vec3",
       "x": 0,
       "y": 0,
-      "z": 420.8883462392372
+      "z": 292.7165864791403
     },
     "_scale": {
       "__type__": "cc.Vec3",
@@ -1945,7 +1945,7 @@
     "_skewY": 0,
     "_is3DNode": false,
     "groupIndex": 0,
-    "_id": "62FEYByDJDU40MFVJH+8rU"
+    "_id": "3b/q+8AOJPGLyT3p/cbc94"
   },
   {
     "__type__": "cc.TiledLayer",
@@ -1956,7 +1956,7 @@
     },
     "_enabled": true,
     "_materials": [],
-    "_id": "7aHMNMaaFKgJ/lb2yOubpT"
+    "_id": "f6NgajgUxKmYV7gDL964TS"
   },
   {
     "__type__": "cc.Node",
@@ -2017,7 +2017,7 @@
     "_skewY": 0,
     "_is3DNode": false,
     "groupIndex": 0,
-    "_id": "921Y2J0KpG97vZKqtCvqED"
+    "_id": "e9lz+/kjVDtbuUiRmKiu4D"
   },
   {
     "__type__": "cc.TiledLayer",
@@ -2028,7 +2028,7 @@
     },
     "_enabled": true,
     "_materials": [],
-    "_id": "7crhfx7U9FtLWSS4ATmwlQ"
+    "_id": "18xtihglRI+6OjLG5IRR0z"
   },
   {
     "__type__": "cc.TiledObjectGroup",
@@ -2038,7 +2038,7 @@
       "__id__": 34
     },
     "_enabled": true,
-    "_id": "fbp4jOKCdLvpSd+JKTCCWn"
+    "_id": "d73bxFwzBI0Ij754EdSMh0"
   },
   {
     "__type__": "cc.Node",
@@ -2096,7 +2096,7 @@
     "_skewY": 0,
     "_is3DNode": false,
     "groupIndex": 0,
-    "_id": "311wdi+I9PYaY2OgGxd0mr"
+    "_id": "c3XEAcA5VP4pwqMlJbEoGB"
   },
   {
     "__type__": "cc.TiledLayer",
@@ -2107,7 +2107,7 @@
     },
     "_enabled": true,
     "_materials": [],
-    "_id": "70B7ykuIVKf6GtvAhh0EH8"
+    "_id": "162BtHGn1EAo40Ii/imZtB"
   },
   {
     "__type__": "cc.Node",
@@ -2165,7 +2165,7 @@
     "_skewY": 0,
     "_is3DNode": false,
     "groupIndex": 0,
-    "_id": "78aVnSoqdJjbGf/qcCktCd"
+    "_id": "3cvYOT4dpOzoT5dEFsqcGf"
   },
   {
     "__type__": "cc.TiledObjectGroup",
@@ -2175,7 +2175,7 @@
       "__id__": 39
     },
     "_enabled": true,
-    "_id": "7eVpaXYjNPGbDX72UEW9VT"
+    "_id": "1a//LOGQ1GYJqcSsy5uE7c"
   },
   {
     "__type__": "cc.Node",
@@ -2233,7 +2233,7 @@
     "_skewY": 0,
     "_is3DNode": false,
     "groupIndex": 0,
-    "_id": "afRl4U0/BOv4iKgmn38tSG"
+    "_id": "b16QwU8yJO5ZXV2bbAYffD"
   },
   {
     "__type__": "cc.TiledObjectGroup",
@@ -2243,7 +2243,7 @@
       "__id__": 41
     },
     "_enabled": true,
-    "_id": "13BUHAsEZDUIPp2kI4Zifx"
+    "_id": "a9F83m7MtDPIrKG8hyU6K4"
   },
   {
     "__type__": "cc.TiledMap",
@@ -15271,7 +15271,7 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 694,
+      "width": 650,
       "height": 1084
     },
     "_anchorPoint": {
@@ -15742,7 +15742,7 @@
     },
     "_position": {
       "__type__": "cc.Vec3",
-      "x": 310.545,
+      "x": 288.448,
       "y": 521.335,
       "z": 0
     },

+ 10 - 0
assets/Script/Network/dapp.js

@@ -146,6 +146,16 @@ cc.Class({
                     //TODO 服务错误
                     console.log("dappInit userInfo 错误");
                     console.log(err)
+
+                    cc.loader.loadRes("prefab/gameToast", (err1, texture) => {
+                        let _pause = cc.instantiate(texture);
+                        let _uiCamera = cc.find("Canvas/MainCamera");
+                        _pause.parent = _uiCamera ? _uiCamera : cc.find("Canvas");
+                        _pause.zIndex = 999;
+                        let DetailLabel = _pause.getChildByName('DetailLabel');
+                        DetailLabel.getComponent(cc.Label).string = "获取链上用户信息失败,请刷新游戏!";
+                       
+                    });
                 }
                 // try {
                 //     const data = await dapp.getLoginSign()

+ 4 - 4
assets/Script/Network/netUtils.ts

@@ -178,7 +178,7 @@ var utils = {
                 } else {
                     console.error("访问:" + url + "失败!");
                     let _response = null;
-                    if (typeof response.value == 'string' && !response.value) {
+                    if (typeof response == 'string' && !response) {
                         _response = JSON.parse(response);
                     }
                     if (callback)
@@ -186,7 +186,7 @@ var utils = {
                     notifyCenter.emit("netError", _response);
 
                     if (window['GlobalD'].GameData && window['GlobalD'].GameData.getToast()) {
-                        GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "网络请求失败!", 1);
+                        window['GlobalD'].GameData.showToast(cc.find("Canvas/UICamera"), "网络请求失败!", 1);
                     } else {
                         cc.loader.loadRes("prefab/gameToast", (err, texture) => {
                             let _pause = cc.instantiate(texture);
@@ -268,7 +268,7 @@ var utils = {
                 } else {
                     console.error("访问:" + url + "失败!");
                     let _response = null;
-                    if (typeof response.value == 'string' && !response.value) {
+                    if (typeof response == 'string' && !response) {
                         _response = JSON.parse(response);
                     }
                     if (callback)
@@ -276,7 +276,7 @@ var utils = {
                     notifyCenter.emit("netError", _response);
 
                     if (window['GlobalD'].GameData && window['GlobalD'].GameData.getToast()) {
-                        GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "网络请求失败!", 1);
+                        window['GlobalD'].GameData.showToast(cc.find("Canvas/UICamera"), "网络请求失败!", 1);
                     } else {
                         cc.loader.loadRes("prefab/gameToast", (err, texture) => {
                             let _pause = cc.instantiate(texture);

+ 2 - 2
assets/Script/UI/StoreView.js

@@ -367,8 +367,8 @@ cc.Class({
     }
   },
   OpentSNBExchangeToCNT() {
-    GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "转换CNT通道关闭!", 1);
-    return;
+    // GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "转换CNT通道关闭!", 1);
+    // return;
     //限制相关人员交易
     if (1 === GlobalD.UserInfo.limitTran) {
       GlobalD.GameData.showToast(

+ 6 - 1
assets/Script/adpp/dappListInfo.js

@@ -156,6 +156,11 @@ cc.Class({
                 continue;
             }
 
+            if (4 === this.value_set[i].tranType ) {
+                this.opt_item_set[i].active = false;
+                continue;
+            }
+
             this.opt_item_set[i].active = true;
             let _infoScript = this.opt_item_set[i].getComponent("dappListInfoItem");
             let _item = this.value_set[i];
@@ -242,7 +247,7 @@ cc.Class({
     /**
      * 返回顶部
      */
-    onGotoTop(){
+    onGotoTop() {
         this.listContainer.y = 0;
     }
 });

+ 52 - 0
assets/Script/build/CommodityItem.js

@@ -0,0 +1,52 @@
+// Learn cc.Class:
+//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/class.html
+//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/class.html
+// Learn Attribute:
+//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
+//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
+//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/life-cycle-callbacks.html
+
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+
+        //商品名称
+        commodityName: {
+            default: null,
+            type: cc.Label,
+        },
+        //商品价格
+        commodityPrice: {
+            default: null,
+            type: cc.Label,
+        },
+
+        //商品材料
+        commodityMaterial: {
+            default: null,
+            type: cc.Label,
+        },
+        //记录当前商品的信息
+        commodity: {
+            default: null,
+            visible: false,
+        },
+
+    },
+
+    updateItem: function (tmplId, itemId, commodity) {
+        // cc.log('设置食物种类', commodity);
+        this.commodity = commodity;
+        // goodsId: 0
+        // goodsMaterial: goodsMaterialClass {crops: 2, wood: 0, mineral: 0}
+        // goodsName: "方便面"
+        // goodsPrice: 50
+        // goodsSalesRate: 70
+        this.commodityName.string = commodity.goodsName;
+        this.commodityPrice.string = commodity.goodsPrice;
+        this.commodityMaterial.string = '农:'+commodity.goodsMaterial.crops+' 木:'+commodity.goodsMaterial.wood
+    },
+});

+ 9 - 0
assets/Script/build/CommodityItem.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "f33c78d9-f595-4b7f-8b8e-7e5c21794dec",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 712 - 0
assets/Script/build/DynamicBuilding.js

@@ -0,0 +1,712 @@
+
+const Constants = require('Constants');
+var reGameStates = require('GameStates');
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        HighWay: {
+            // ATTRIBUTES:
+            default: [],        // The default value will be used only when the component attaching
+            // to a node for the first time
+            type: cc.Prefab, // optional, default is typeof default
+            serializable: true,   // optional, default is true
+        },
+
+        _tiledMap: {
+            default: null,
+            type: cc.TiledMap,
+            serializable: false,
+            visible: false,
+        },
+        _MainCamera: {
+            default: null,
+            type: cc.Camera,
+            serializable: false,
+            visible: false,
+        },
+
+        //触摸一开始的位置
+        _touchPosition: {
+            default: new cc.Vec2(),
+            visible: false,
+            serializable: false
+        },
+
+        _StartPosition: {
+            default: new cc.Vec2(),
+            serializable: false
+        },
+
+        _EndPosition: {
+            default: new cc.Vec2(),
+            serializable: false
+        },
+        //上一个位置
+        _LastPosition: {
+            default: new cc.Vec2(),
+            serializable: false
+        },
+
+        _highPath: {
+            default: [],
+            type: [cc.Node],
+            visible: false,
+        },
+
+        selectTouch: {
+            default: null,
+            type: cc.Node,
+        },
+        buildingTouch: {
+            default: null,
+            type: cc.Node,
+        },
+
+        //如果只初始化一次的话
+        // _isInitOnce: {
+        //     default: false,
+        //     visible: false,
+        // }
+
+        //如果自动移动
+        isAutoMove: { default: false, visible: false },
+
+        //是否创建斑马线
+        isCreateZebra: { default: true, visible: false },
+        // createStartTiledPos: null,
+    },
+
+    // LIFE-CYCLE CALLBACKS:
+
+    onLoad() {
+        this.highwayPool = new cc.NodePool();
+        let initCount = 50;
+        for (let i = 0; i < initCount; ++i) {
+            let highway = cc.instantiate(this.HighWay[0]); // 创建节点
+            this.highwayPool.put(highway); // 通过 putInPool 接口放入对象池
+        }
+    },
+
+    start() {
+        var self = this;
+        self._MainCamera = GlobalD.game.MainCamera;
+        self._tiledMap = GlobalD.TiledMap._tiledMap;
+
+        //获取对应的地图层级
+        this.buildLayer = this._tiledMap.getLayer('BuildsHighway');
+
+        self._game = GlobalD.game;
+
+        //初始化时候设置一下位置
+        //后面只要点击生成铺路就需要重置一下
+        let startTiledPos = GlobalD.TiledMap._tilePosFromLocation(self.node.getPosition());
+        let startEndPos = GlobalD.TiledMap._getTheMiddleLocationFromtilePos(startTiledPos);
+        self.node.setPosition(startEndPos);
+
+        //记录一下初始位置
+        // self.createStartTiledPos = startTiledPos;
+
+        self.node.on(cc.Node.EventType.TOUCH_MOVE, function (event) {
+
+
+
+            // cc.log(event.touch.getDelta());
+            GlobalD.GameControl._isBuildingMove = true;
+
+            var delta = event.touch.getDelta();
+
+
+            self._touchPosition.x += delta.x / self._MainCamera.zoomRatio;
+            self._touchPosition.y += delta.y / self._MainCamera.zoomRatio;
+            // self.node.setPosition(self._touchPosition);
+
+            let tiledPos = GlobalD.TiledMap._tilePosFromLocation(self._touchPosition);
+            //不相等的时候才绘制
+            if (tiledPos.sub(self._EndPosition).mag() != 0) {
+
+                // cc.log('tiledPostiledPostiledPos', tiledPos,self._EndPosition)
+                self._EndPosition = tiledPos;
+
+                if (self.buildingTouch.active) {
+                    if (self._StartPosition.x == self._EndPosition.x
+                        || self._StartPosition.y == self._EndPosition.y) {
+                        self.onCancelCreateHighway();
+
+                        self.onBuildingFromPath(self._StartPosition, self._EndPosition);
+
+                        let endPos = GlobalD.TiledMap._getTheMiddleLocationFromtilePos(tiledPos);
+                        self.node.setPosition(endPos);
+                    }
+
+                } else {
+                    let endPos = GlobalD.TiledMap._getTheMiddleLocationFromtilePos(tiledPos);
+
+                    self.node.setPosition(endPos);
+                }
+
+
+            }
+
+            //开启编辑UI
+            // self._game._ManageUIScript.onEditorialBuildings(self.node);
+
+        }, self.node);
+
+        self.node.on(cc.Node.EventType.TOUCH_START, function (event) {
+            // var touches = event.getTouches();
+            // var touchLoc = touches[0].getLocation();
+            self.isMoving = true;
+            // if(!self._isInitOnce){
+            //     self._StartPosition = GlobalD.TiledMap._tilePosFromLocation(self.node.getPosition());
+            // }
+            //如果要选框就去掉这里
+            // self.onInitStartPosition();
+
+            self._touchPosition = self.node.getPosition();
+
+            // cc.log('self._StartPosition', self._StartPosition, self._touchPosition);
+
+
+
+        }, self.node);
+
+        self.node.on(cc.Node.EventType.TOUCH_END, function (event) {
+
+            //起始触摸位置
+            GlobalD.GameControl._isBuildingMove = false;
+        }, self.node);
+        self.node.on(cc.Node.EventType.TOUCH_CANCEL, function (event) {
+
+            //起始触摸位置
+            GlobalD.GameControl._isBuildingMove = false;
+        }, self.node);
+
+    },
+
+    // 自动移动,在ManagerControl 里面调用
+    onAutoMove(delta) {
+
+        this.isAutoMove = true;
+
+        let self = this;
+        self._touchPosition.x += delta.x;
+        self._touchPosition.y += delta.y;
+        let tiledPos = GlobalD.TiledMap._tilePosFromLocation(self._touchPosition);
+        //不相等的时候才绘制
+        if (tiledPos.sub(self._EndPosition).mag() != 0) {
+            self._EndPosition = tiledPos;
+            if (self.buildingTouch.active) {
+                if (self._StartPosition.x == self._EndPosition.x
+                    || self._StartPosition.y == self._EndPosition.y) {
+                    self.onCancelCreateHighway();
+                    self.onBuildingFromPath(self._StartPosition, self._EndPosition);
+                    let endPos = GlobalD.TiledMap._getTheMiddleLocationFromtilePos(tiledPos);
+                    self.node.setPosition(endPos);
+                }
+            } else {
+                let endPos = GlobalD.TiledMap._getTheMiddleLocationFromtilePos(tiledPos);
+                self.node.setPosition(endPos);
+            }
+        }
+    },
+    onCancleAutoMove() {
+        this.isAutoMove = false;
+
+    },
+
+    //隐藏时候铺路的状态
+    onHideSetTouchState() {
+        if (this.create1 || this.create2) {
+            let _cancel1 = this.selectTouch.getChildByName('Cancel').getComponent(cc.Button);
+            let _cancel2 = this.buildingTouch.getChildByName('Cancel').getComponent(cc.Button);
+            _cancel1.interactable = true;
+            _cancel1.enableAutoGrayEffect = false;
+            _cancel2.interactable = true;
+            _cancel2.enableAutoGrayEffect = false;
+            if (this.create1)
+                this.create1.stopAllActions();
+            if (this.create2)
+                this.create2.stopAllActions();
+        }
+
+    },
+    //新手教程时候设置铺路状态
+    onSetTouchState() {
+
+        if (!task.virtualShadowPos) return;
+
+        if (this.selectTouch.active) {
+            let _cancel = this.selectTouch.getChildByName('Cancel').getComponent(cc.Button);
+            _cancel.interactable = false;
+            _cancel.enableAutoGrayEffect = true;
+            this.create1 = this.selectTouch.getChildByName('Create');
+            this.create1.stopAllActions();
+            var s = cc.sequence(cc.scaleTo(0.6, 0.9), cc.scaleTo(0.9, 0.6));
+            var repeat = cc.repeatForever(s);
+            this.create1.runAction(repeat);
+
+        } else {
+            let _cancel = this.buildingTouch.getChildByName('Cancel').getComponent(cc.Button);
+            _cancel.interactable = false;
+            _cancel.enableAutoGrayEffect = true;
+            this.create2 = this.buildingTouch.getChildByName('Create');
+            this.create2.stopAllActions();
+            var s = cc.sequence(cc.scaleTo(0.6, 0.9), cc.scaleTo(0.9, 0.6));
+            var repeat = cc.repeatForever(s);
+            this.create2.runAction(repeat);
+        }
+
+
+    },
+    //切换状态
+    onSwitchBuidingTouch() {
+
+        //如果是新手指引的情况下,需要显示对应的遮挡模板
+        if (task.virtualShadowPos) {
+            let _curentTiled = GlobalD.TiledMap._tilePosFromLocation(this.node.getPosition());;
+            if (_curentTiled.sub(task.virtualShadowPos).mag() !== 0) {
+
+                // console.error('没有移动到指定位置:', _curentTiled, task.virtualShadowPos);
+                cc.loader.loadRes('resUI/ShowNotEnoughMoney', function (err, texture) {
+                    var prefab = cc.instantiate(texture);
+                    prefab.getComponent('ShowNotEnoughMoney').Text('请移动到虚影的<起始>位置!');
+                    cc.find('Canvas').getChildByName('UICamera').addChild(prefab);
+                }.bind(this));
+                return;
+            } else {
+                // console.log(task.virtualTarget);
+                let _taskHighway = task.getTaskNode('taskPrefabTiledTileHighway');
+
+                if (_taskHighway) {
+                    _taskHighway.getChildByName('Arrow').active = false;
+                    _taskHighway.getChildByName('Hand1').active = true;
+                }
+            }
+        }
+
+
+        this.selectTouch.active = false;
+        this.buildingTouch.active = true;
+
+        //设置一下状态
+        this.onSetTouchState();
+        //设置斑马线
+        this.isCreateZebra = true;
+        // this._isInitOnce = true;
+        // 记录编辑状态时候的初始位置
+        this.onInitStartPosition();
+    },
+    // 重置下初始位置
+    onInitStartPosition() {
+        this._StartPosition = GlobalD.TiledMap._tilePosFromLocation(this.node.getPosition());
+
+        // //如果是新手指引的情况下,需要显示对应的遮挡模板
+        // if (task.isMushBuildState) {
+        //     let _confirmButton = this.HighwayBuildingNode.getChildByName('SelectTouch').getChildByName('Create');
+        //     let _taskNodes = [];
+        //     _taskNodes.push(_confirmButton);
+        //     task.onInitTaskMask(_taskNodes);
+        // }
+    },
+    //相同一个点的时候点的时候
+    onBuildingFromPathEqual(tiledPos) {
+        // cc.log('onBuildingFromPathEqual');
+        if (!GlobalD.TiledMap.getTiledTileAt(tiledPos.x, tiledPos.y)) {
+
+            let highwayTemp = null;
+
+            if (this.highwayPool.size() > 0) { // 通过 size 接口判断对象池中是否有空闲的对象
+                highwayTemp = this.highwayPool.get();
+            } else { // 如果没有空闲对象,也就是对象池中备用对象不够时,我们就用 cc.instantiate 重新创建
+                highwayTemp = cc.instantiate(this.HighWay[0]);
+                // cc.log('重新创建')
+            }
+            highwayTemp.parent = this.buildLayer.node;
+            let tiledTile = highwayTemp.addComponent('TiledTile');
+            tiledTile.x = tiledPos.x;
+            tiledTile.y = tiledPos.y;
+
+        }
+    },
+
+    //不同点的时候
+    //在路径上面创建公路预制
+    onBuildingFromPath(start_tiledPos, end_tiledPos) {
+
+        //移动了就不创建斑马线了
+        this.isCreateZebra = false;
+
+        let _highwayStart = null;
+        let isChangeHighwayStart = false;
+
+        let spawnPos = 0;
+
+        //最后一个点判断是否重合
+        let EndPos = [];
+        let tempMaxY = 0;
+        let tempMinY = 0;
+        if (start_tiledPos.y > end_tiledPos.y) {
+            tempMaxY = start_tiledPos.y;
+            tempMinY = end_tiledPos.y;
+        } else {
+            tempMaxY = end_tiledPos.y;
+            tempMinY = start_tiledPos.y;
+        }
+        let tempY = end_tiledPos.y - start_tiledPos.y;
+        for (let i = tempMinY; i <= tempMaxY; i++) {
+            spawnPos = cc.v2(start_tiledPos.x, i);
+            //写入index 数组
+            GlobalD.TiledMap.setIndexArray(spawnPos, EndPos);
+
+            // if (!GlobalD.TiledMap.getTiledTileAt(spawnPos.x, spawnPos.y)) 
+            {
+                // cc.log('绘制Y', spawnPos)
+                let highwayTemp = null;
+
+                if (this.highwayPool.size() > 0) { // 通过 size 接口判断对象池中是否有空闲的对象
+                    highwayTemp = this.highwayPool.get();
+                } else { // 如果没有空闲对象,也就是对象池中备用对象不够时,我们就用 cc.instantiate 重新创建
+                    highwayTemp = cc.instantiate(this.HighWay[0]);
+                    // cc.log('重新创建')
+                }
+
+                highwayTemp.parent = this.buildLayer.node;
+                let tiledTile = highwayTemp.addComponent('TiledTile');
+                tiledTile.x = spawnPos.x;
+                tiledTile.y = spawnPos.y;
+
+                if (GlobalD.game.getManageGameIndexArrayAt(tiledTile)) {
+                    highwayTemp.getComponent('TipSprite').onSetRedSpriteFrame();
+                }
+                //没有重复的时候
+
+                // cc.log('设置Y值:', reGameStates.HighwayType.moveY);
+                highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.moveY);
+
+                //记录第一个临时节点
+                if (!_highwayStart) {
+                    _highwayStart = highwayTemp;
+                }
+            }
+        }
+
+
+
+        let tempMaxX = 0;
+        let tempMinX = 0;
+        if (start_tiledPos.x > end_tiledPos.x) {
+            tempMaxX = start_tiledPos.x;
+            tempMinX = end_tiledPos.x;
+        } else {
+            tempMaxX = end_tiledPos.x;
+            tempMinX = start_tiledPos.x;
+        }
+
+        for (let i = tempMinX; i <= tempMaxX; i++) {
+            spawnPos = cc.v2(i, start_tiledPos.y + tempY);
+            //这里判断最大最小点是否重合
+            if (!GlobalD.TiledMap.getIndexArrayAt(spawnPos, EndPos)) {
+                // cc.log('绘制x', spawnPos)
+                let highwayTemp = null;
+                if (this.highwayPool.size() > 0) { // 通过 size 接口判断对象池中是否有空闲的对象
+                    highwayTemp = this.highwayPool.get();
+                } else { // 如果没有空闲对象,也就是对象池中备用对象不够时,我们就用 cc.instantiate 重新创建
+                    highwayTemp = cc.instantiate(this.HighWay[0]);
+                    // cc.log('重新创建')
+                }
+                // let highwayTemp = cc.instantiate(this.HighWay[0]);
+                highwayTemp.parent = this.buildLayer.node;
+                let tiledTile = highwayTemp.addComponent('TiledTile');
+                tiledTile.x = spawnPos.x;
+                tiledTile.y = spawnPos.y;
+                // this._highPath.push(highwayTemp);
+
+                if (GlobalD.game.getManageGameIndexArrayAt(tiledTile)) {
+                    highwayTemp.getComponent('TipSprite').onSetRedSpriteFrame();
+                }
+
+                highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.moveX);
+
+
+                if (_highwayStart && !isChangeHighwayStart) {
+                    // cc.log('修正第一个起始点。');
+                    isChangeHighwayStart = true;
+                    _highwayStart.getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.moveX);
+
+                }
+            }
+
+
+        }
+
+
+
+
+
+    },
+
+    //取消创建
+    //对象池回收
+    onCancelCreateHighway() {
+
+        //删除对应层的子节点
+        let tempNode = this.buildLayer.node.children;
+        let length = tempNode.length;
+        for (let i = length - 1; i >= 0; i--) {
+
+            //设置回默认的提示图片
+            tempNode[i].getComponent('TipSprite').onReset();
+            tempNode[i].getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.none);
+
+            if (tempNode[i].getComponent('TiledTile')) {
+                tempNode[i].removeComponent('TiledTile');
+            }
+            // 和初始化时的方法一样,将节点放进对象池,这个方法会同时调用节点的 removeFromParent
+            this.highwayPool.put(tempNode[i]);
+        }
+    },
+
+    //创建道路
+    onCreateHighway() {
+
+        //获取最后建造公路的层级
+        this.HighwayLayer = this._tiledMap.getLayer('Highway');
+
+        if (this.isCreateZebra) {
+            // cc.log('创建斑马线,', this._StartPosition);
+            //检测新手引导时候道路,不设计一个点
+            if (task.isMushBuildState) {
+                console.error('新手教程下不创建单个公路');
+                cc.loader.loadRes('resUI/ShowNotEnoughMoney', function (err, texture) {
+                    var prefab = cc.instantiate(texture);
+                    prefab.getComponent('ShowNotEnoughMoney').Text('请移动到虚影的<终点>位置!');
+                    cc.find('Canvas').getChildByName('UICamera').addChild(prefab);
+                }.bind(this));
+                return;
+            }
+
+            let buildIndex = GlobalD.TiledMap.getIndex(this._StartPosition);
+            if (GlobalD.game.onGetHighwayFromIndex(buildIndex)) {
+
+                let tempNode = this.HighwayLayer.node.children;
+                let length = tempNode.length;
+                for (let i = length - 1; i >= 0; i--) {
+                    let tiledTile = tempNode[i].getComponent('TiledTile');
+                    let tiledVector2 = new cc.Vec2(tiledTile.x, tiledTile.y);
+                    let tiledIndex = GlobalD.TiledMap.getIndex(tiledVector2);
+
+                    if (tiledIndex === buildIndex) {
+                        let _highwayInfo = tempNode[i].getComponent('HighwayInfo');
+                        // cc.log(_highwayInfo);
+                        let _switchHighwayType = reGameStates.HighwayType.none;
+                        if (_highwayInfo.currenHighwayType == reGameStates.HighwayType.moveX) {
+                            _switchHighwayType = reGameStates.HighwayType.ZebraCrossingX;
+                        } else if (_highwayInfo.currenHighwayType == reGameStates.HighwayType.moveY) {
+                            _switchHighwayType = reGameStates.HighwayType.ZebraCrossingY;
+                            // cc.log('Y', _switchHighwayType)
+                        }
+                        //修改节点样式
+                        _highwayInfo.onChangeHighwayStyles(_switchHighwayType);
+
+                        //更新公路样式
+                        GlobalD.game.onUpdateDifferentRoadStyles({
+                            _highwayType: _switchHighwayType,
+                            _roadIndex: buildIndex,
+                        });
+                        break;
+                    }
+
+                }
+            } else {//没有就创建
+
+                let tiledVector2 = this._StartPosition;
+                let highwayTemp = cc.instantiate(this.HighWay[1]);
+                highwayTemp.parent = this.HighwayLayer.node;
+
+                let tiledTile = highwayTemp.addComponent('TiledTile');
+                tiledTile.x = tiledVector2.x;
+                tiledTile.y = tiledVector2.y;
+
+                // cc.log('onCreateHighway');
+                AStar.setMapSolid(tiledVector2.x, tiledVector2.y, 0);
+
+                // _buildId ==0 是公路
+                let _buildId = 0;
+                let occupyTemp = cc.v2(_buildId, buildIndex);
+                GlobalD.game.OccupyArray.push(occupyTemp);
+
+                //添加公路样式
+                GlobalD.game.onCreateDifferentRoadStyles({
+                    _buildId: _buildId,
+                    _highwayType: reGameStates.HighwayType.ZebraCrossingX,
+                    _roadIndex: buildIndex,
+                    _hightwayNode: highwayTemp
+                });
+            }
+
+
+        } else {
+
+            let tempNode = this.buildLayer.node.children;
+            let length = tempNode.length;
+            //检测新手引导时候道路,检测最后一个点
+            //如果是新手指引的情况下,需要显示对应的遮挡模板
+            if (task.virtualShadowPosEnd) {
+                let _taskTiledTile = tempNode[length - 1].getComponent('TiledTile');
+
+
+                if (task.virtualShadowPosEnd.sub(cc.v2(_taskTiledTile.x, _taskTiledTile.y)).mag() !== 0) {
+
+                    console.error('没有移动到终点位置:', cc.v2(_taskTiledTile.x, _taskTiledTile.y), task.virtualShadowPosEnd);
+                    cc.loader.loadRes('resUI/ShowNotEnoughMoney', function (err, texture) {
+                        var prefab = cc.instantiate(texture);
+                        prefab.getComponent('ShowNotEnoughMoney').Text('请移动到虚影的<终点>位置!');
+                        cc.find('Canvas').getChildByName('UICamera').addChild(prefab);
+                    }.bind(this));
+                    return;
+                } else {
+                    //铺路教程成功
+                    //移除虚影路径
+                    task.removeTaskNode('taskPrefabTiledTileHighway');
+                    //设置任务状态
+                    task.onShadowArchitectureReset();
+                    dialogmanager.init(task.Canvas, function () {
+                        dialogmanager.paveEnd();
+                    }.bind(this));
+                    dialogmanager.setOnCloseDialog(function () {
+                        task.showManagerhide();
+                        // task.setListView(18);
+                        task._setTaskIconCountClick(1);
+
+                        setTimeout(() => {
+                            task.taskCallBack();
+                        }, 500);
+                    }.bind(this));
+                }
+            }
+
+            for (let i = length - 1; i >= 0; i--) {
+                let tiledTile = tempNode[i].getComponent('TiledTile');
+
+                //获取临时对象里面的公路脚本信息
+                let _highwayInfoTemp = tempNode[i].getComponent('HighwayInfo');
+
+                let tiledVector2 = new cc.Vec2(tiledTile.x, tiledTile.y);
+                //重复的道路模块不创建
+                if (!GlobalD.game.getManageGameIndexArrayAt(tiledVector2)) {
+                    let highwayTemp = cc.instantiate(this.HighWay[1]);
+                    highwayTemp.parent = this.HighwayLayer.node;
+
+                    let tiledTile = highwayTemp.addComponent('TiledTile');
+                    tiledTile.x = tiledVector2.x;
+                    tiledTile.y = tiledVector2.y;
+
+                    // cc.log('onCreateHighway');
+                    AStar.setMapSolid(tiledVector2.x, tiledVector2.y, 0);
+
+                    let index = GlobalD.TiledMap.getIndex(tiledVector2);
+                    // _buildId ==0 是公路
+                    let _buildId = 0;
+                    let occupyTemp = cc.v2(_buildId, index);
+                    GlobalD.game.OccupyArray.push(occupyTemp);
+
+                    // cc.log('创建时候的值:', _highwayInfoTemp.currenHighwayType)
+                    // highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(_highwayInfoTemp.currenHighwayType);
+
+                    //添加公路样式
+                    GlobalD.game.onCreateDifferentRoadStyles({
+                        _buildId: _buildId,
+                        _highwayType: _highwayInfoTemp.currenHighwayType,
+                        _roadIndex: index,
+                        _hightwayNode: highwayTemp
+                    });
+                }
+
+                else {
+                    // cc.log('有道路重复!', tiledVector2);
+                    let buildIndex = GlobalD.TiledMap.getIndex(tiledVector2);
+                    let tempNode = this.HighwayLayer.node.children;
+                    let length = tempNode.length;
+                    for (let i = length - 1; i >= 0; i--) {
+                        let tiledTile = tempNode[i].getComponent('TiledTile');
+                        let tiledVector2 = new cc.Vec2(tiledTile.x, tiledTile.y);
+                        let tiledIndex = GlobalD.TiledMap.getIndex(tiledVector2);
+
+                        if (tiledIndex === buildIndex) {
+                            let _highwayInfo = tempNode[i].getComponent('HighwayInfo');
+                            //修改节点样式
+                            _highwayInfo.onChangeHighwayStyles(_highwayInfoTemp.currenHighwayType);
+
+                            //更新公路样式
+                            GlobalD.game.onUpdateDifferentRoadStyles({
+                                _highwayType: _highwayInfoTemp.currenHighwayType,
+                                _roadIndex: buildIndex,
+                            });
+                            break;
+                        }
+
+                    }
+                }
+
+            }
+        }
+
+
+        //清空回收临时对象
+        this.onCancelCreateHighway();
+
+        //统一取消
+        this.onHide();
+
+        // if (this.isCreateZebra) {
+        //     this.onHide();
+        // } else {
+        //     //成功创建后,重置下初始位置
+        //     this.onInitStartPosition();
+        // }
+
+    },
+
+    //删除
+    onDelete() {
+        this.onCancelCreateHighway();
+        this.highwayPool.clear();// 调用这个方法就可以清空对象池
+        this.node.destroy();
+    },
+    //隐藏
+    onHide() {
+        this.onCancelCreateHighway();
+        this.node.active = false;
+        // this._isInitOnce = false;
+
+        //绿色选中框选中要下面两个代码切换
+        this.selectTouch.active = true;
+        this.buildingTouch.active = false;
+
+
+        GlobalD.game.onClearCurrentBuildingTarget();
+
+        //显示铺路引导
+        task.onTaskPaveRoadsMask();
+    },
+    onDisable() {
+        //隐藏时候重置下状态
+        this.onHideSetTouchState();
+        //收起底部菜单栏
+        GlobalD.game._ManageUIScript.onBottomMenuView(true);
+    },
+
+    onEnable() {
+
+        // console.log(111);
+        //修改按钮状态
+        this.onSetTouchState();
+        //收起底部菜单栏
+        GlobalD.game._ManageUIScript.onBottomMenuView(false);
+
+    }
+
+
+    // update (dt) {},
+});

+ 9 - 0
assets/Script/build/DynamicBuilding.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "e5f66dec-53c6-4871-8f35-8f48cf5c6c5d",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 53 - 0
assets/Script/build/Farmland.js

@@ -0,0 +1,53 @@
+
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        stateArray: {
+
+            default: [],
+            type: cc.SpriteFrame,
+            serializable: true,
+        },
+
+        changeSprite: {
+            default: null,
+            type: cc.Sprite,
+            serializable: true,
+        },
+
+
+        //工作状态
+        workingStatus: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+        },
+    },
+    // start(){
+    //     this.onChangeSpriteFunction(2);
+    // },
+
+    onChangeSpriteFunction(consume) {
+
+        if (consume <= 0 || consume >= 50) {
+            this.workingStatus.active = false;
+        } else if (!this.workingStatus.active) {
+            this.workingStatus.active = true
+        }
+
+        let index = 50 - consume;
+        // let index = consume%3;
+        // cc.log(Math.floor(this._Strength % 3));
+        if (index >= 15 && index <= 25)
+            this.changeSprite.spriteFrame = this.stateArray[1];
+        else if (index > 25)
+            this.changeSprite.spriteFrame = this.stateArray[2];
+    },
+
+
+    onResetSprite() {
+
+        this.changeSprite.spriteFrame = this.stateArray[0];
+    }
+});

+ 9 - 0
assets/Script/build/Farmland.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "7c73c9e8-9ca7-40d8-8cc0-ccc0f0defc68",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 92 - 0
assets/Script/build/HighwayInfo.js

@@ -0,0 +1,92 @@
+var reGameStates = require('GameStates');
+
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        //斑马线的图片
+        HighwaySpriteFrame: {
+            default: [],
+            type: cc.SpriteFrame,
+        },
+        //村长的路,暂时和镇长一起使用
+        villageHighwaySpriteFrame: {
+            default: [],
+            type: cc.SpriteFrame,
+        },
+        //公路对应的sprite
+        roadSprite: cc.Sprite,
+
+        //当前图片的下标
+        currenHighwayType: {
+            default: 0,
+            type: cc.Integer,
+        }
+    },
+
+    // LIFE-CYCLE CALLBACKS:
+
+    // onLoad () {},
+
+    start() {
+
+
+    },
+
+    //切换公路图片
+    onChangeHighwayStyles(_highwayType) {
+        // cc.log( _highwayType,this.currenHighwayType)
+        let currentSpriteFrame;
+        if (GlobalD.Dapp) {
+            switch (GlobalD.Dapp.UserInfo.agent_level) {
+                case 0:
+                    currentSpriteFrame = this.HighwaySpriteFrame[0];
+                    this.roadSprite.node.scaleX = 1;
+                    break;
+                case 1:
+                    currentSpriteFrame = this.villageHighwaySpriteFrame[0];
+                    this.roadSprite.node.scaleX = 1;
+                    break;
+                case 2:
+                    currentSpriteFrame = this.villageHighwaySpriteFrame[0];
+                    this.roadSprite.node.scaleX = 1;
+                    break;
+                default:
+                    currentSpriteFrame = this.HighwaySpriteFrame[0];
+                    this.roadSprite.node.scaleX = 1;
+                    break;
+            }
+        } else {
+            switch (_highwayType) {
+                case reGameStates.HighwayType.none:
+                    currentSpriteFrame = this.HighwaySpriteFrame[0];
+                    this.roadSprite.node.scaleX = 1;
+                    break;
+                case reGameStates.HighwayType.moveX:
+                    currentSpriteFrame = this.HighwaySpriteFrame[2];
+                    this.currenHighwayType = reGameStates.HighwayType.moveX;
+                    this.roadSprite.node.scaleX = 1;
+                    break;
+                case reGameStates.HighwayType.moveY:
+                    currentSpriteFrame = this.HighwaySpriteFrame[2];
+                    this.roadSprite.node.scaleX = -1;
+                    this.currenHighwayType = reGameStates.HighwayType.moveY;
+                    break;
+                case reGameStates.HighwayType.ZebraCrossingX:
+                    currentSpriteFrame = this.HighwaySpriteFrame[1];
+                    this.currenHighwayType = reGameStates.HighwayType.ZebraCrossingX;
+                    this.roadSprite.node.scaleX = -1;
+
+                    break;
+                case reGameStates.HighwayType.ZebraCrossingY:
+                    currentSpriteFrame = this.HighwaySpriteFrame[1];
+                    this.currenHighwayType = reGameStates.HighwayType.ZebraCrossingY;
+                    this.roadSprite.node.scaleX = 1;
+                    break;
+            }
+        }
+        this.roadSprite.spriteFrame = currentSpriteFrame;
+
+    }
+    // update (dt) {},
+});

+ 9 - 0
assets/Script/build/HighwayInfo.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "8fb36df5-7e64-4ffa-8086-00f26893cc55",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 704 - 0
assets/Script/build/LeaseFarmlandInfo.js

@@ -0,0 +1,704 @@
+import date from "../Unit/date.js"
+import gameToast from "../Network/gameToast"
+/**
+ * 操作租赁土地的相关业务
+ */
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        leasePanelPrefabs: {
+            default: null,
+            type: cc.Prefab,
+            serializable: true,
+        },
+
+        //主信息面板
+        infoBox: cc.Node,
+
+        //时间计算对象
+        showTimeOut: null,
+
+        /**
+         * 显示天数部分
+         */
+        upSliderNode: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+        },
+        multipleLabel: {
+            default: null,
+            type: cc.Label,
+            serializable: true,
+            toolTip: "显示的倍数"
+        },
+        leaseDate: {
+            default: null,
+            type: cc.Label,
+            serializable: true,
+            toolTip: "剩余天数/总天数"
+        },
+
+
+        /**
+         * 成熟期部分
+         */
+        midSliderNode: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+        },
+        midDate: {
+            default: null,
+            type: cc.Label,
+            serializable: true,
+            toolTip: "剩余天数/总天数"
+        },
+
+        midSliderProgressNode: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+            toolTip: "进度条"
+        },
+
+
+        notLeased: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+        },
+
+        //初始化时候对应的土地的id
+        initConfigLandId: -1,
+
+        // configLandId: 1
+        // createTime: "2022-01-10 21:25:30"
+        // id: 1
+        // isLease: 1
+        // isPlant: 0
+        // landDescribe: "土地1xxx"
+        // leaseMultiple: 1
+        // leaseTime: "2022-01-10 21:25:17"
+        // name: "土地1"
+        // plantMature: 0
+        // plantStart: "2022-01-10 21:25:22"
+        // updateTime: "2022-01-10 21:25:33"
+        // userId: "4"
+        // 已经租赁的土地信息
+        leaseLandInfo: {
+            default: null,
+            visible: false
+        },
+
+        // createTime: "2022-01-10 21:25:30"
+        // id: 4
+        // initMultiple: 1
+        // isInit: 1
+        // isLease: 0
+        // isPlant: 0
+        // landDescribe: "一倍土地"
+        // leaseMultiple: 1
+        // leaseTime: "2022-01-10 21:25:17"
+        // name: "土地4"
+        // plantMature: 0
+        // plantStart: "2022-01-10 21:25:22"
+        // posX: 19
+        // posY: 10
+        // sizeX: 2
+        // sizeY: 2
+        // updateTime: "2022-01-10 21:25:33"
+        // 未初始化时候的土地信息
+        configLandInfo: {
+            default: null,
+            visible: false
+        },
+
+        showLandInfo: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+            toolTip: "显示土地信息"
+        },
+        landInfoPrefabs: {
+            default: null,
+            type: cc.Prefab,
+            serializable: true,
+        },
+
+        // 已经种植的作物信息
+        plantInfo: {
+            default: null,
+            visible: false
+        },
+        showPlantInfo: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+            toolTip: "显示种植信息"
+        },
+        plantInfoPrefabs: {
+            default: null,
+            type: cc.Prefab,
+            serializable: true,
+        },
+
+        //收获阶段
+
+        harvestNode: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+        },
+
+        stealHarvestNode: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+        },
+
+        isHarvest: false,
+
+        /**
+         * 成熟时候显示的图片
+         */
+        harvestSprite: {
+            default: null,
+            type: cc.SpriteFrame,
+        },
+        _workingBuilding: null,
+
+        //时间计算对象
+        timeInterval: null,
+
+        //是否显示showHarvest
+        isShowHarvest: false,
+        isShowIndex: 0,
+
+        //检查土地是否到期
+        isCheckLandState: false,
+
+
+        _buildingView: null,
+
+        //是否是自己的土地,记录一下
+        bSelfLand: true,
+
+        //
+        giveOutLightNode: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+        },
+        envBg: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+        },
+        envBgSpriteFrameList: {
+            default: [],
+            type: cc.SpriteFrame,
+        },
+    },
+
+    // LIFE-CYCLE CALLBACKS:
+
+    onLoad() {
+        this._workingBuilding = this.node.getComponent("WorkingBuilding");
+        this._buildingView = cc.find("Canvas/UICamera/BuildingContainer/BuildingView").getComponent("BuildingView");
+
+    },
+
+    start() {
+        this.harvestNode.on(cc.Node.EventType.TOUCH_START, () => {
+            if (GlobalD.GameData.isOnAddFruit) return;
+            console.log("点击收获");
+            GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "收获中..", 5);
+            let data = { landId: this.leaseLandInfo.configLandId };
+            //果实收入仓库,重置土地种植信息
+            GlobalD.GameData.onAddFruit(data, (value) => {
+                // console.log(value);
+                if (0 === value.code) {
+                    //收成后处理相关状态
+                    this.harvestNode.active = false;
+                    this.midSliderNode.active = false
+                    this._workingBuilding.onSetGrow(0, null);
+                    //更新仓库列表
+                    this._buildingView.onUpdateList();
+                    // "收获成功!"
+                    if (value.data.lossAmount > 0) {
+                        console.log("loss amount:" + value.data.lossAmount);
+                        GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "收获成功!损失了" + value.data.lossAmount + "个果实", 2);
+                    } else {
+                        GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "收获成功!", 2);
+                    }
+
+
+                    this.isShowHarvest = false;
+                    this.isShowIndex = 0;
+                    if (this.timeInterval) {
+                        clearInterval(this.timeInterval);
+                        this.timeInterval = null;
+                    }
+                } else if (706 === value.code) {
+                    //土地到期,没有更新刷新的处理刷新
+                    GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), value.msg, 1);
+                    //重置锁定状态显示
+                    this.onLockLand();
+
+                } else {
+                    GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), value.msg, 1);
+                }
+            });
+        })
+
+        this.stealHarvestNode.on(cc.Node.EventType.TOUCH_START, () => {
+            // GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "请点击偷菜按钮收取!", 1);
+            // return;
+            //改成单个收取果实
+            if (GlobalD.GameData.isOnAddFruit) return;
+            console.log("点击收获");
+            GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), "偷取果实中..", 5);
+            let data = { otherUserId: GlobalD.OtherUserInfo.userId, otherLandId: this.leaseLandInfo.configLandId };
+            //偷取果实收入仓库,重置土地种植信息
+            GlobalD.GameData.onStealFruit(data, (value) => {
+                console.log(value);
+                if (0 === value.code) {
+                    //收成后处理相关状态
+                    this.onHideStealHarvest();
+                    let _manageUI = cc.find("GameNode/ManageUI");
+                    _manageUI.getComponent("ManageUI").onInitStealViewSuccessPrefab(value.data);
+                    //更新仓库列表
+                    this._buildingView.onUpdateList();
+
+                    //更新snb
+                    GlobalD.GameData.SetSNB(value.data.snb + value.data.snbPart);
+                } else {
+                    GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), value.msg, 1);
+                }
+            });
+        })
+        //如果是村长或者镇长,换地皮
+        this.onSwitchEnvBgFromLevel(GlobalD.Dapp.UserInfo.agent_level);
+    },
+    onSwitchEnvBgFromLevel(agent_level) {
+        this.envBg.getComponent(cc.Sprite).spriteFrame = this.envBgSpriteFrameList[agent_level];
+    },
+    onSpawnLeasePanel() {
+
+        let leasePanel = cc.instantiate(this.leasePanelPrefabs);
+        let parent = cc.find('Canvas/UICamera/DAPPContainer');
+        leasePanel.parent = parent;
+        leasePanel.setPosition(0, 0);
+        // leasePanel.zIndex = 999;
+
+        //把操作对象传入
+        let leasePanelScript = leasePanel.getComponent("LeaseInfo");
+        leasePanelScript.leaseFarmlandInfoNode = this;
+        /**
+         * 初始化两个操作。一个是续约,续约的话,不给操作,只有续约按钮可点,相当于原来配置再购买一次
+         * 
+         * this.leaseLandInfo 如果购买了土地,这个参数不为空
+         */
+
+        if (this.leaseLandInfo) {
+            //续约时候拦截输入,固定倍数 
+            leasePanelScript.blockInput.active = true;
+            //传入当前计算倍数
+            leasePanelScript.onInitLeaseInfo(this.leaseLandInfo.leaseMultiple);
+        } else if (0 === this.configLandInfo.initMultiple) {
+            // 固定土地开启,限制输入,设置默认值是1
+            leasePanelScript.blockInput.active = true;
+            leasePanelScript.onInitLeaseInfo(1);
+        } else {
+            //多倍土地,可以自己输入
+            let limitValue = this.configLandInfo.initMultiple;
+            if (GlobalD.GameSetting && GlobalD.GameSetting.maxLeaseMulti) {
+                limitValue = GlobalD.GameSetting.maxLeaseMulti;
+                console.log("LeaseFarmland:如果配置 maxLeaseMulti:", limitValue);
+            }
+            leasePanelScript.onInitLeaseInfo(limitValue);
+        }
+
+
+    },
+
+    /**
+     * 解锁土地操作
+     */
+    onUnlockLand() {
+        //直接删除此节点
+        if (this.notLeased) {
+            this.notLeased.active = false;
+            // this.notLeased.destroy();
+            // this.notLeased = null;
+        }
+
+    },
+    /**
+     * 获取锁定状态
+     */
+    onGetUnlockLandState() {
+        return this.notLeased.active;
+    },
+
+    /**
+     * 重新锁定
+     */
+    onLockLand() {
+
+        //显示按钮
+        if (this.notLeased) {
+            this.notLeased.active = true;
+        }
+        //清除当前租赁数据
+        this.leaseLandInfo = null;
+        this.isShowHarvest = false;
+        this.isShowIndex = 0;
+        if (this.timeInterval) {
+            clearInterval(this.timeInterval);
+            this.timeInterval = null;
+        }
+
+        //去除提示框
+        this.upSliderNode.parent.active = false;
+        this.midSliderNode.active = false;
+        this.harvestNode.active = false;
+
+        this.stealHarvestNode.active = false;
+
+        //重置土地图片
+        this._workingBuilding.onSetGrow(0, null);
+
+        this.onSetInfoBoxActive(false);
+
+    },
+    //设置config的土地信息
+    setConfigLandInfo(value) {
+        this.configLandInfo = value;
+    },
+
+    /**
+     * 设置其他用户租赁的土地信息
+     * 比如去其他用户家里偷取物品,目前统一在这处理
+     */
+    setLeaseLandInfo(value, bSelf) {
+        console.log("土地信息是,bSelf:", bSelf);
+        if (!value) {
+            console.log("已租赁土地状态为空:", value);
+            return;
+        }
+
+        this.onSetInfoBoxActive(false);
+
+        //设置意思显示相关
+        this.isShowHarvest = false;
+        this.isShowIndex = 0;
+        //重新设置租赁检测状态
+        this.isCheckLandState = false;
+        this.leaseLandInfo = value;
+
+        //先解绑一下信息
+        this.showLandInfo.off(cc.Node.EventType.TOUCH_START, this._showLandInfo, this);
+        this.showPlantInfo.off(cc.Node.EventType.TOUCH_START, this._showPlantInfo, this);
+
+        //每个作物直接实时计算时间
+        if (this.timeInterval) {
+            clearInterval(this.timeInterval);
+            this.timeInterval = null;
+        }
+        //删除解锁图标
+        this.onUnlockLand();
+
+        this.bSelfLand = bSelf;
+        //更新一下土地信息
+        this.updateLandState(bSelf);
+    },
+
+    updateLandState(bSelf) {
+        //如果是种植状态并且有返回种植信息
+        if (1 === this.leaseLandInfo.isPlant && this.leaseLandInfo.seedInfo) {
+            //种植信息
+            //如果土地是租赁转态并且同时种植了 ,这里处理土地状态,显示种植信息
+            let _spriteFrame;
+            switch (this.leaseLandInfo.seedInfo.picture) {
+                case "Cabbage":
+                    _spriteFrame = this._buildingView.fruitSpriteFrame[0];
+                    break;
+                case "Potato":
+                    _spriteFrame = this._buildingView.fruitSpriteFrame[1];
+                    break;
+                case "Carrot":
+                    _spriteFrame = this._buildingView.fruitSpriteFrame[2];
+                    break;
+                case "Broccoli":
+                    _spriteFrame = this._buildingView.fruitSpriteFrame[3];
+                    break;
+                case "Tomato":
+                    _spriteFrame = this._buildingView.fruitSpriteFrame[4];
+                    break;
+                case "Squash":
+                    _spriteFrame = this._buildingView.fruitSpriteFrame[5];
+                    break;
+                case "Eggplant":
+                    _spriteFrame = this._buildingView.fruitSpriteFrame[6];
+                    break;
+                case "Pepper":
+                    _spriteFrame = this._buildingView.fruitSpriteFrame[7];
+                    break;
+                case "Lentil":
+                    _spriteFrame = this._buildingView.fruitSpriteFrame[8];
+                    break;
+                default:
+                    break;
+            }
+            //设置一个收获时候的图片
+            this.harvestSprite = _spriteFrame;
+
+            this.midSliderNode.active = bSelf;
+            // 进度条按小时计算
+            let _maturityAllHour = this.leaseLandInfo.seedInfo.maturity * 24
+            let _remainAllHour = this.leaseLandInfo.plantDaysRemaining * 24 + this.leaseLandInfo.plantHoursRemaining;
+            //计算剩余时间显示(进度条)
+            let _midProccess = _maturityAllHour === 0 ? 0 : _remainAllHour / _maturityAllHour;
+            this.midSliderProgressNode.getComponent(cc.ProgressBar).progress = _midProccess;
+            /**
+              * 绑定生成显示信息面板,种植信息
+              */
+            this.showPlantInfo.on(cc.Node.EventType.TOUCH_START, this._showPlantInfo, this);
+        }
+
+        //显示剩余天数
+        this.upSliderNode.parent.active = bSelf;
+        this.multipleLabel.string = this.leaseLandInfo.leaseMultiple;
+        //  进去条按天算
+        let sliderProgressScript = this.upSliderNode.getComponent("slider_progress");
+        let _proccess = this.leaseLandInfo.leaseDays === 0 ? 0 : this.leaseLandInfo.leaseDaysRemaining / this.leaseLandInfo.leaseDays;
+        sliderProgressScript.onSetProcgress(_proccess);
+
+        /**
+         * 绑定生成显示信息面板,现在土地信息
+         */
+        this.showLandInfo.on(cc.Node.EventType.TOUCH_START, this._showLandInfo, this);
+
+        let lastUpdateTime = Date.now();
+        let elapsedTime = 0;
+        let updateFrequency = 1; //ms
+        this.timeInterval = setInterval(() => {
+            let currentTime = Date.now();
+            let deltaTime = currentTime - lastUpdateTime;
+            elapsedTime += deltaTime;
+            if (elapsedTime >= updateFrequency) {
+                elapsedTime -= updateFrequency;
+                let _leaseDaysMill = this.leaseLandInfo.leaseDaysMill - elapsedTime;
+                let _plantDaysMill = this.leaseLandInfo.plantDaysMill - elapsedTime;
+                lastUpdateTime = currentTime;
+                // 更新计时显示
+                let [_lDay, _lHour, _lMinutes, _lSeconds] = date.remainFromMillisecond(_leaseDaysMill);
+                //todo 处理了 this.leaseLandInfo.leaseDaysRemaining
+                if (0 !== _lDay) {
+                    this.leaseDate.string = "剩" + _lDay + "天/" + this.leaseLandInfo.leaseDays + "天";
+                } else if (0 !== _lHour) {
+                    this.leaseDate.string = "剩" + _lHour + "时/" + this.leaseLandInfo.leaseDays + "天";
+                } else if (0 !== _lMinutes) {
+                    this.leaseDate.string = "剩" + _lMinutes + "分/" + this.leaseLandInfo.leaseDays + "天";
+                } else {
+                    this.leaseDate.string = "剩" + _lSeconds + "秒/" + this.leaseLandInfo.leaseDays + "天";
+                }
+                //todo 如果租赁时间到了,重新锁定
+                //重置锁定状态显示
+                if (!this.isCheckLandState) {
+                    if (_leaseDaysMill <= 0) {
+                        this.isCheckLandState = true;
+                        //检查一次土地
+                        this.onCheckLand(this.leaseLandInfo.configLandId);
+                    }
+                }
+
+                if (1 === this.leaseLandInfo.isPlant && this.leaseLandInfo.seedInfo) {
+                    //获得服务器种植日期毫秒
+                    let [_pDay, _pHour, _pMinutes, _pSeconds] = date.remainFromMillisecond(_plantDaysMill);
+                    //todo 处理了 this.leaseLandInfo.plantDaysRemaining
+                    if (0 !== _pDay) {
+                        //否则显示天和小时
+                        this.midDate.string = "剩" + _pDay + "天" + _pHour + "时";
+                    } else if (0 !== _pHour) {
+                        this.midDate.string = "剩" + _pHour + "时" + _pMinutes + "分";
+                    } else {
+                        this.midDate.string = "剩" + _pMinutes + "分" + _pSeconds + "秒";
+                    }
+                    if (!this.isShowHarvest) {
+                        if (_plantDaysMill <= 0) {
+                            this.isShowHarvest = true;
+                            this.isShowIndex = 3;
+                            //如果传回的毫秒是小于零,说明成熟了
+                            //成熟阶段
+                            this._workingBuilding.onSetGrow(3, this.harvestSprite);
+                            // console.log("土地:", _userLeaseLand[j].configLandId, "已经成熟,可以操作收取果实了!!");
+                            //如果是自己的,显示收成
+                            if (bSelf) {
+                                this.onShowHarvest();
+                            } else {
+                                //存在可偷的状态才设置这个图标
+                                if (1 === this.leaseLandInfo.canSteal) {
+                                    this.onShowStealHarvest();
+                                }
+                            }
+                        } else {
+                            let _maturityHour = this.leaseLandInfo.seedInfo.maturity * 24
+                            let _ratio = (_pDay * 24 + _pHour) / _maturityHour;
+                            if (_ratio > 0.5 && 1 !== this.isShowIndex) {
+                                this.isShowIndex = 1;
+                                this._workingBuilding.onSetGrow(1, this.harvestSprite);
+                                console.log("_ratio:" + _ratio + "=" + this.leaseLandInfo.configLandId + ",状态:" + this.isShowIndex);
+                            } else if (_ratio <= 0.5 && _ratio >= 0 && 2 !== this.isShowIndex) {
+                                this.isShowIndex = 2;
+                                this._workingBuilding.onSetGrow(2, this.harvestSprite);
+                                console.log("_ratio:" + _ratio + "=" + this.leaseLandInfo.configLandId + ",状态:" + this.isShowIndex);
+                            }
+                        }
+                    }
+
+                }
+            }
+        });
+    },
+
+    _showLandInfo() {
+        let leasePanel = cc.instantiate(this.landInfoPrefabs);
+        let parent = cc.find('Canvas/UICamera/DAPPContainer');
+        leasePanel.parent = parent;
+        leasePanel.setPosition(0, 0);
+        let leasePanelScript = leasePanel.getComponent("LandInfo");
+        let _date = date.datedifference(this.leaseLandInfo.createTime, this.leaseLandInfo.leaseTime);
+        let { configLandId, rentalExpenses, createTime, leaseTime, leaseMultiple, landDescribe } = this.leaseLandInfo;
+        leasePanelScript.setInfo(configLandId, rentalExpenses, _date + "天", createTime, leaseTime, leaseMultiple + "倍", landDescribe);
+    },
+
+    _showPlantInfo() {
+        let leasePanel = cc.instantiate(this.plantInfoPrefabs);
+        let parent = cc.find('Canvas/UICamera/DAPPContainer');
+        leasePanel.parent = parent;
+        leasePanel.setPosition(0, 0);
+        // leasePanel.zIndex = 999;
+        let leasePanelScript = leasePanel.getComponent("PlantInfo");
+        let _harvest = 0;
+        if (this.leaseLandInfo.leaseDate === 1) {
+            _harvest = this.leaseLandInfo.seedInfo.harvest1;
+        } else if (this.leaseLandInfo.leaseDate === 2) {
+            _harvest = this.leaseLandInfo.seedInfo.harvest2;
+        } else if (this.leaseLandInfo.leaseDate === 3) {
+            _harvest = this.leaseLandInfo.seedInfo.harvest3;
+        }
+        //price,maturity,plantStart,harvestQuantity,describe
+        let { name, priceCnt, maturity, seedDescribe } = this.leaseLandInfo.seedInfo;
+        leasePanelScript.setInfo(name, priceCnt, maturity + "天", this.leaseLandInfo.plantStart, _harvest, seedDescribe);
+    },
+
+    //更新收获的状态
+    updateHarvest() {
+        //todo 后续看看如何刷新,现在走的是开始刷新一次
+        // let _workingBuilding = housingTemp_farmland.getComponent("WorkingBuilding");
+        // //获得服务器种植日期毫秒
+        // let [_day, _hour, _minutes, _seconds] = date.remainFromMillisecond(_leaseLandInfo.plantDaysMill);
+        // let _maturityHour = _leaseLandInfo.seedInfo.maturity * 24
+        // let _ratio = _hour / _maturityHour;
+        // // console.log("生成的:" + _ratio);
+        // if (_ratio > 0.5) {
+        //     _workingBuilding.onSetGrow(1, _spriteFrame);
+        // } else if (_ratio >= 0) {
+        //     _workingBuilding.onSetGrow(2, _spriteFrame);
+        // }else if (_leaseLandInfo.plantDaysMill <= 0) {
+        //     //如果传回的毫秒是小于零,说明成熟了
+        //     //成熟阶段
+        //     _workingBuilding.onSetGrow(3, _spriteFrame);
+        //     //todo,如果时间小的,走收获,收获成果实
+        //     // console.log("土地:", _userLeaseLand[j].configLandId, "已经成熟,可以操作收取果实了!!");
+        //     //todo 土地可收获状态
+        //     leaseFarmlandInfoScript.onShowHarvest();
+        // }
+    },
+
+    //检查土地状态
+    onCheckLand(configLandId) {
+        GlobalD.GameData.getLandState({
+            landId: configLandId,
+            callback: (value) => {
+                console.log("检查土地数据:" + JSON.stringify(value.msg));
+                //这里只判断土地是否过期
+                if (706 === value.code) {
+                    //土地到期,没有更新刷新的处理刷新
+                    GlobalD.GameData.showToast(cc.find("Canvas/UICamera"), configLandId + "号," + value.msg, 2);
+                    //重置锁定状态显示
+                    this.onLockLand();
+                }
+            }
+        });
+    },
+
+
+    /**
+     * 场景有多个收获预制时候,用GameData限制
+     * 点击之后,重置土地信息, 并且收入进仓库果实列表中去
+     * 需要防多次触发
+     */
+    onShowHarvest() {
+        this.harvestNode.active = true;
+
+    },
+
+
+    /**
+     * 场景有多个收获预制时候,用GameData限制
+     * 点击之后,偷取果实
+     * 需要防多次触发
+     */
+    onShowStealHarvest() {
+        this.stealHarvestNode.active = true;
+    },
+
+    onHideStealHarvest() {
+        this.stealHarvestNode.active = false;
+    },
+
+    /**
+     * 设置总体信息面板显示
+     * @param {boolean} bActive 
+     */
+    onSetInfoBoxActive(bActive) {
+
+        this.giveOutLightNode.active = bActive;
+
+        if (!this.bSelfLand) {
+            // console.log("其他用户的不用显示面板");
+            return;
+        }
+        if (this.leaseLandInfo) {
+            this.infoBox.active = bActive;
+            if (bActive) {
+                if (this.showTimeOut) {
+                    clearTimeout(this.showTimeOut);
+                    this.showTimeOut = null;
+                }
+                //自动隐藏面板
+                this.showTimeOut = setTimeout(() => {
+                    this.infoBox.active = false;
+                }, 5000)
+            }
+        }
+
+    },
+
+
+    onDestroy() {
+        if (this.timeInterval) {
+            clearInterval(this.timeInterval);
+            this.timeInterval = null;
+        }
+        if (this.showTimeOut) {
+            clearTimeout(this.showTimeOut);
+            this.showTimeOut = null;
+        }
+    }
+});

+ 9 - 0
assets/Script/build/LeaseFarmlandInfo.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "d7c14310-96e1-4f5a-923c-5181281d2a54",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 53 - 0
assets/Script/build/ObjTouch.js

@@ -0,0 +1,53 @@
+// Learn cc.Class:
+//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/class.html
+//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/class.html
+// Learn Attribute:
+//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
+//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
+//  - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/life-cycle-callbacks.html
+
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        // foo: {
+        //     // ATTRIBUTES:
+        //     default: null,        // The default value will be used only when the component attaching
+        //                           // to a node for the first time
+        //     type: cc.SpriteFrame, // optional, default is typeof default
+        //     serializable: true,   // optional, default is true
+        // },
+        // bar: {
+        //     get () {
+        //         return this._bar;
+        //     },
+        //     set (value) {
+        //         this._bar = value;
+        //     }
+        // },
+    },
+
+    // LIFE-CYCLE CALLBACKS:
+
+    // onLoad () {},
+
+    start () {
+        this._camera = GlobalD.game.MainCamera;
+        
+        
+        this.node.on(cc.Node.EventType.TOUCH_MOVE, function (event) {
+            // this.node.opacity = 0.1;
+            var delta = event.touch.getDelta();
+            this.node.x += delta.x / this._camera.zoomRatio;
+            this.node.y += delta.y / this._camera.zoomRatio;
+
+
+        }, this);
+
+
+    },
+
+    // update (dt) {},
+});

+ 9 - 0
assets/Script/build/ObjTouch.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "c685a333-d381-40ba-97d5-8fbb91f61bed",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 94 - 0
assets/Script/build/TipSprite.js

@@ -0,0 +1,94 @@
+
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        //建筑底下碰撞区域
+        Red: {
+            // ATTRIBUTES:
+            default: null,        // The default value will be used only when the component attaching
+            // to a node for the first time
+            type: cc.SpriteFrame, // optional, default is typeof default
+            serializable: true,   // optional, default is true
+        },
+        Green: {
+            // ATTRIBUTES:
+            default: null,        // The default value will be used only when the component attaching
+            // to a node for the first time
+            type: cc.SpriteFrame, // optional, default is typeof default
+            serializable: true,   // optional, default is true
+        },
+        Tip: cc.Sprite,
+
+        //如果是数组
+        isChildenArray: false,
+
+
+        //建筑对周围的影响力
+        effectYellow: {
+            // ATTRIBUTES:
+            default: null,
+            type: cc.SpriteFrame,
+            serializable: true,
+        },
+        effectGreen: {
+            // ATTRIBUTES:
+            default: null,        // The default value will be used only when the component attaching
+            // to a node for the first time
+            type: cc.SpriteFrame, // optional, default is typeof default
+            serializable: true,   // optional, default is true
+        },
+    },
+
+    //设置红色提示
+    onSetRedSpriteFrame(_opacity) {
+        if (_opacity)
+            this.Tip.node.opacity = _opacity;
+        if (this.isChildenArray) {
+            let TipArray = this.node.children;
+            // cc.log(TipArray)
+            let length = TipArray.length;
+            for (let i = 0; i < length; i++) {
+                TipArray[i].getComponent(cc.Sprite).spriteFrame = this.Red;
+            }
+        } else {
+            this.Tip.spriteFrame = this.Red;
+        }
+    },
+
+
+    //重新设置图片
+    onReset() {
+        this.Tip.node.scale = 1;
+        // this.Tip.node.color.setA(1);
+        this.Tip.node.opacity = 230;
+        if (this.isChildenArray) {
+
+            let TipArray = this.node.children;
+            let length = TipArray.length;
+            for (let i = 0; i < length; i++) {
+                TipArray[i].getComponent(cc.Sprite).spriteFrame = this.Green;
+
+            }
+        } else {
+            this.Tip.spriteFrame = this.Green;
+        }
+    },
+
+
+    //设置影响力黄色
+    onSetEffectYellowSpriteFrame() {
+        this.Tip.spriteFrame = this.effectYellow;
+        this.Tip.node.scale = 0.8;
+        // this.Tip.node.color.setA(0.5);
+        this.Tip.node.opacity = 200;
+    },
+
+    //设置影响力 绿色
+    onSetEffectGreenSpriteFrame() {
+        this.Tip.spriteFrame = this.effectGreen;
+        this.Tip.node.scale = 0.8;
+        // this.Tip.node.color.setA(0.5);
+        this.Tip.node.opacity = 200;
+    },
+});

+ 9 - 0
assets/Script/build/TipSprite.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "d8d5ee6f-feec-4321-aa74-6645e3ba01b9",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 213 - 0
assets/Script/build/WorkingBuilding.js

@@ -0,0 +1,213 @@
+var reGameStates = require('GameStates');
+
+
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        stateArray: {
+
+            default: [],
+            type: cc.SpriteFrame,
+            serializable: true,
+        },
+        workArray: {
+
+            default: [],
+            type: cc.SpriteFrame,
+            serializable: true,
+        },
+        changeSprite: {
+            default: null,
+            type: cc.Sprite,
+            serializable: true,
+        },
+
+
+        //工作状态
+        workingStatus: {
+            default: null,
+            type: cc.Node,
+            serializable: true,
+        },
+
+        workPlace: {
+            default: reGameStates.BuildType.Farmland,
+            type: cc.Enum(reGameStates.BuildType),
+            serializable: true,
+        },
+    },
+    start() {
+
+        if (this.workPlace == reGameStates.BuildType.TimberYard) {
+            // this.onChangeSpriteFromGrow();
+        }
+    },
+
+
+    onChangeFromAIWorker(_workPlace, _consume) {
+        // cc.log('this.workPlace',_workPlace,_consume);
+
+        if (_workPlace == reGameStates.BuildType.Farmland) {
+            this.onChangeSpriteFromWork(_consume);
+        } else if (_workPlace == reGameStates.BuildType.TimberYard) {
+            this.onChangeSpriteFromTimberYardWork(_consume);
+
+        } else if (_workPlace == reGameStates.BuildType.MiningPit) {
+            this.onChangeSpriteFromWork(_consume);
+
+        }
+    },
+
+    // 工作时候
+    onChangeSpriteFromWork(consume) {
+
+        if (consume <= 0 || consume >= 50) {
+            this.workingStatus.active = false;
+        } else if (!this.workingStatus.active) {
+            this.workingStatus.active = true
+        }
+        let index = 50 - consume;
+        /*
+        //这部分是旧的代码
+        if (index < 20 && index > 10)
+            // this.changeSprite.spriteFrame = this.workArray[0];
+            this.changeSprite.spriteFrame = this.workArray[0];
+        else if (index >= 20 && index <= 35)
+            this.changeSprite.spriteFrame = this.workArray[1];
+        else if (index > 35)
+            this.changeSprite.spriteFrame = this.workArray[2];
+        */
+        if (index < 20 && index > 10) {
+            this.changeSprite.spriteFrame = this.workArray[0];
+            // this.changeSprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
+            // this.changeSprite.node.width = this.workArray[0].getRect().width;
+            // this.changeSprite.node.height = this.workArray[0].getRect().height;
+        }
+        else if (index >= 20 && index <= 35) {
+            this.changeSprite.spriteFrame = this.workArray[1];
+            // this.changeSprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
+            // this.changeSprite.node.width = this.workArray[1].getRect().width;
+            // this.changeSprite.node.height = this.workArray[1].getRect().height;
+        }
+        else if (index > 35) {
+            this.changeSprite.spriteFrame = this.workArray[2];
+            // this.changeSprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
+            // this.changeSprite.node.width = this.workArray[2].getRect().width;
+            // this.changeSprite.node.height = this.workArray[2].getRect().height;
+        }
+
+    },
+
+
+    onChangeSpriteFromTimberYardWork(consume) {
+        if (consume <= 0 || consume >= 50) {
+            this.workingStatus.active = false;
+        } else if (!this.workingStatus.active) {
+            this.workingStatus.active = true
+        }
+        let index = 50 - consume;
+        /*
+        //这部分是旧的代码
+        if (index < 25 && index > 10)
+            this.changeSprite.spriteFrame = this.workArray[0];
+        else if (index >= 25 && index <= 40)
+            this.changeSprite.spriteFrame = this.workArray[1];
+        else if (index > 40)
+            this.changeSprite.spriteFrame = this.workArray[2];
+        */
+
+        if (index < 25 && index > 10) {
+            this.changeSprite.spriteFrame = this.workArray[0];
+            // this.changeSprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
+            // this.changeSprite.node.width = this.workArray[0].getRect().width;
+            // this.changeSprite.node.height = this.workArray[0].getRect().height;
+            // cc.log(this.workArray[0].getRect().width);
+        }
+        else if (index >= 25 && index <= 40) {
+            this.changeSprite.spriteFrame = this.workArray[1];
+            // this.changeSprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
+            // this.changeSprite.node.width = this.workArray[1].getRect().width;
+            // this.changeSprite.node.height = this.workArray[1].getRect().height;
+        }
+        else if (index > 40) {
+            this.changeSprite.spriteFrame = this.workArray[2];
+            // this.changeSprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
+            // this.changeSprite.node.width = this.workArray[2].getRect().width;
+            // this.changeSprite.node.height = this.workArray[2].getRect().height;
+        }
+    },
+
+    // 运输时候调用
+    onChangeSpriteFromGrow() {
+
+        this.count = 0;
+        this.callback = function () {
+            if (this.count === this.stateArray.length - 1) {
+                // 在第六次执行回调时取消这个计时器
+                this.unschedule(this.callback);
+            }
+            this.onTreeGrowth(this.count);
+            this.count++;
+        }
+        this.schedule(this.callback, 0.5);
+    },
+    /**
+     * 神龙田地的直接生长
+     */
+    onHolyFarmlandSeedFromGrow() {
+        this.count = 0;
+        this.callback = function () {
+            if (this.count === this.stateArray.length - 1) {
+                // 在第六次执行回调时取消这个计时器
+                this.unschedule(this.callback);
+            }
+            this.onTreeGrowth(this.count);
+            this.count++;
+        }
+        this.schedule(this.callback, 0.5);
+    },
+    // 生长
+    onTreeGrowth(count) {
+        this.changeSprite.spriteFrame = this.stateArray[count];
+    },
+
+    /**
+     * 神龙田地的直接 生长图片设置
+     */
+    onSetGrow(growStage, harvestSpriteFrame) {
+        // console.log(growStage,harvestSpriteFrame);
+        if (growStage === 0) {
+            this.changeSprite.spriteFrame = null;
+        } else if (growStage === 1 || growStage === 2) {
+            this.changeSprite.spriteFrame = this.stateArray[growStage - 1];
+        } else {
+            this.changeSprite.spriteFrame = harvestSpriteFrame;
+        }
+
+    },
+
+    onResetSprite(_workPlace) {
+        if (_workPlace == reGameStates.BuildType.Farmland) {
+            // this.changeSprite.spriteFrame = this.stateArray[0];
+            this.changeSprite.spriteFrame = this.stateArray[0];
+            this.onChangeSpriteFromGrow();
+        } else if (_workPlace == reGameStates.BuildType.TimberYard) {
+            //运输时候木材清空
+            this.changeSprite.spriteFrame = this.workArray[3];
+
+            this.onChangeSpriteFromGrow();
+
+        } else if (_workPlace == reGameStates.BuildType.MiningPit) {
+            this.changeSprite.spriteFrame = this.stateArray[0];
+        }
+    },
+
+    //设置当前的完成状态
+
+    //读取数据时候设置
+    //todo....
+    onSetWorkStateFormReadingData(_Index) {
+        this.changeSprite.spriteFrame = this.workArray[_Index];
+    },
+});

+ 9 - 0
assets/Script/build/WorkingBuilding.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "9635d312-a324-4b4b-afd9-4ee068bca140",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 305 - 0
assets/Script/build/buildingInfoView.js

@@ -0,0 +1,305 @@
+var reGameStates = require('GameStates');
+
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+
+        //名称
+        buildName: {
+            default: null,
+            type: cc.Label,
+        },
+        //维护费
+        runingCost: {
+            default: null,
+            type: cc.Label,
+        },
+        //库存
+        inventory: {
+            default: null,
+            type: cc.Label,
+        },
+        //简介
+        synopsis: {
+            default: null,
+            type: cc.Label,
+        },
+        //介绍图片
+        imageSprite: {
+            default: null,
+            type: cc.Sprite,
+        },
+
+        //商品名称
+        commodityName: {
+            default: null,
+            type: cc.Label,
+        },
+        //商品价格
+        commodityPrice: {
+            default: null,
+            type: cc.Label,
+        },
+
+        strength: {
+            default: null,
+            type: cc.Label,
+        },
+
+        //列表的对象
+        // CommodityItems: {
+        //     default: [],
+        //     visible: false,
+        // },
+
+        //记录当前商品的信息
+        goodsArray: {
+            default: null,
+            visible: false,
+        },
+
+        SalesInfoBg: {
+            default: null,
+            type: cc.Node
+        },
+        ProductionInfoBg: {
+            default: null,
+            type: cc.Node
+        },
+
+
+        //需要的农作物
+        materialCrops: {
+            default: null,
+            type: cc.Label,
+        },
+        //需要的木材
+        materialWood: {
+            default: null,
+            type: cc.Label,
+        },
+        //需要的矿石
+        materialMineral: {
+            default: null,
+            type: cc.Label,
+        },
+
+
+        //除了商店,展开otherNode时候的模板
+        //名称
+        otherBuildName: {
+            default: null,
+            type: cc.Label,
+        },
+        //维护费
+        otherRuningCost: {
+            default: null,
+            type: cc.Label,
+        },
+        //库存
+        otherInventory: {
+            default: null,
+            type: cc.Label,
+        },
+        //简介
+        otherSynopsis: {
+            default: null,
+            type: cc.Label,
+        },
+        //介绍图片
+        otherImageSprite: {
+            default: null,
+            type: cc.Sprite,
+        },
+
+        //商品名称
+        otherCommodityName: {
+            default: null,
+            type: cc.Label,
+        },
+        //商品价格
+        otherCommodityPrice: {
+            default: null,
+            type: cc.Label,
+        },
+        //销售或者生产力
+        otherProductivity: {
+            default: null,
+            type: cc.Label,
+        },
+    },
+
+
+    onSetBuildingInfoView(buildingInfo) {
+
+        switch (buildingInfo.buildType) {
+            // //特殊建筑
+            // case reGameStates.BuildType.Special:
+            //     break;
+            // //住房
+            // case reGameStates.BuildType.Housing:
+            //     break;
+
+            case reGameStates.BuildType.Shop:
+                this.inventory.string = buildingInfo._inventory;
+                this.buildName.string = buildingInfo.buildingName;
+
+                this.runingCost.string = buildingInfo.RunningCost;
+                this.synopsis.string = buildingInfo.BuildingSynopsis;
+
+                if (buildingInfo.BuildingSprite)
+                    this.imageSprite.spriteFrame = buildingInfo.BuildingSprite.spriteFrame;
+                else
+                    this.imageSprite.spriteFrame = null;
+
+                //显示当前商品信息
+                if (buildingInfo._goods) {
+                    this.commodityName.string = buildingInfo._goods.goodsName;
+                    this.commodityPrice.string = buildingInfo._goods.goodsPrice;
+
+
+                    //原材料
+                    this.materialCrops.string = buildingInfo._goods.goodsMaterial.crops;
+                    this.materialWood.string = buildingInfo._goods.goodsMaterial.wood;
+                    this.materialMineral.string = buildingInfo._goods.goodsMaterial.mineral;
+                }
+
+                this.strength.string = buildingInfo.totalConsumption;
+
+                //保存当前的商品信息
+                this.goodsArray = buildingInfo.goodsArray;
+                if (this.SalesInfoBg)
+                    this.SalesInfoBg.active = true;
+                if (this.ProductionInfoBg)
+                    this.ProductionInfoBg.active = false;
+                break;
+            //如果是农田,采木场,矿坑
+            case reGameStates.BuildType.Farmland:
+            case reGameStates.BuildType.TimberYard:
+            case reGameStates.BuildType.MiningPit:
+                this.onSetProductionInfo(buildingInfo);
+                let goodsArray = buildingInfo.goodsArray;
+                let length = goodsArray.length;
+                if (length == 0) {
+                    this.otherCommodityName.string = '';
+                    this.otherCommodityPrice.string = '';
+                } else {
+                    //当前销售的商品
+                    for (let i = 0; i < length; i++) {
+                        if (goodsArray[i].isItSale) {
+                            this.otherCommodityName.string = goodsArray[i].goodsName;
+                            this.otherCommodityPrice.string = goodsArray[i].goodsPrice;
+                            break;
+                        }
+                    }
+                }
+                break;
+            case reGameStates.BuildType.Factory:
+                //如果true,就是点击了工厂
+                this.onSetProductionInfo(buildingInfo);
+                if (buildingInfo._goods) {
+                    this.otherCommodityName.string = buildingInfo._goods.goodsName;
+                    this.otherCommodityPrice.string = buildingInfo._goods.goodsPrice;
+                } else {
+                    this.otherCommodityName.string = '';
+                    this.otherCommodityPrice.string = '';
+                }
+                break;
+        }
+    },
+
+    //显示销售的信息
+    onSetProductionInfo(buildingInfo) {
+        this.otherInventory.string = buildingInfo._inventory;
+        this.otherBuildName.string = buildingInfo.buildingName;
+
+        this.otherRuningCost.string = buildingInfo.RunningCost;
+        this.otherSynopsis.string = buildingInfo.BuildingSynopsis;
+
+
+        if (buildingInfo.BuildingSprite)
+            this.otherImageSprite.spriteFrame = buildingInfo.BuildingSprite.spriteFrame;
+        else
+            this.otherImageSprite.spriteFrame = null;
+
+        this.otherProductivity.string = buildingInfo.totalConsumption;
+
+        if (this.SalesInfoBg)
+            this.SalesInfoBg.active = false;
+        if (this.ProductionInfoBg)
+            this.ProductionInfoBg.active = true;
+    },
+
+    //显示商店信息
+    onSetShopInfo(buildingInfo) {
+        //显示对应的父节点
+        this.inventory.string = buildingInfo._inventory;
+        this.buildName.string = buildingInfo.buildingName;
+
+        this.runingCost.string = buildingInfo.RunningCost;
+        this.synopsis.string = buildingInfo.BuildingSynopsis;
+        if (buildingInfo.BuildingSprite)
+            this.imageSprite.spriteFrame = buildingInfo.BuildingSprite.spriteFrame;
+
+        // cc.log('buildingInfo',buildingInfo);
+        //显示当前商品信息
+        if (buildingInfo._goods) {
+            this.commodityName.string = buildingInfo._goods.goodsName;
+            this.commodityPrice.string = buildingInfo._goods.goodsPrice;
+
+            //原材料
+            this.materialCrops.string = buildingInfo._goods.goodsMaterial.crops;
+            this.materialWood.string = buildingInfo._goods.goodsMaterial.wood;
+            this.materialMineral.string = buildingInfo._goods.goodsMaterial.mineral;
+        }
+
+        this.strength.string = buildingInfo.totalConsumption;
+        //保存当前的商品信息
+        this.goodsArray = buildingInfo.goodsArray;
+
+
+        if (this.SalesInfoBg)
+            this.SalesInfoBg.active = true;
+
+        if (this.ProductionInfoBg)
+            this.ProductionInfoBg.active = false;
+    },
+
+    //点击更换商品时候显示
+    // onSetCommodityInfo() {
+    //     //隐藏对应的父节点
+    //     this.buildName.string = '商品列表';
+    //     this.content = this.CommodityScrollView.content;
+    //     this.spacing = 10;
+
+    //     this.ClearItems();
+    //     let length = this.goodsArray.length;
+    //     this.initialize(length, length);
+
+    // },
+
+    //生成商品列表
+    // initialize: function (totalCount, spawnCount) {
+    //     this.content.height = totalCount * (this.CommodityTemplate.height + this.spacing) + this.spacing; // get total content height
+    //     for (let i = 0; i < spawnCount; ++i) { // spawn items, we only need to do this once
+    //         let item = cc.instantiate(this.CommodityTemplate);
+    //         item.active = true;
+    //         this.content.addChild(item);
+    //         item.setPosition(0, -item.height * (0.5 + i) - this.spacing * (i + 1));
+    //         item.getComponent('CommodityItem').updateItem(i, i, this.goodsArray[i]);
+    //         this.CommodityItems.push(item);
+    //     }
+    // },
+
+    //清空UI商品列表
+    // ClearItems() {
+
+    //     let length = this.CommodityItems.length;
+
+    //     for (let i = length - 1; i >= 0; i--) { // spawn items, we only need to do this once
+    //         this.CommodityItems[i].destroy();
+
+    //     }
+    // }
+});

+ 9 - 0
assets/Script/build/buildingInfoView.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "fbea7901-1a47-4787-8732-08b9fd24882f",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 620 - 0
assets/Script/build/buildingsInfo.js

@@ -0,0 +1,620 @@
+var reGameStates = require('GameStates');
+//建筑物信息
+var BuildInfo = cc.Class({
+    name: "BuildInfo",
+    properties: {
+        //建筑类型
+        buildType: {
+            default: reGameStates.BuildType.Housing,
+            type: cc.Enum(reGameStates.BuildType),
+        },
+        //建筑id
+        id: -1,
+        //建筑所占区域
+        occupyArea: new cc.Vec2(),
+        //起始位置,代码动态设置
+        startTilePos: {
+            default: new cc.Vec2(),
+            visible: false,
+        },
+        //是否激活建筑物
+        //建筑在地图上,但是没激活,不能给游客们进行相应的操作
+        isItActive: {
+            default: false,
+            tooltip: '是否激活建筑物',
+        },
+        //是否有人占用
+        isItOccupied: {
+            default: false,
+            visible: false,
+        },
+        //占用对象用的信息
+        //AI_worker_Player
+        occupantPlayerInfo: {
+            default: null,
+            visible: false,
+        },
+        //有东西吗?//是否存在物品
+        //
+        isThereAnItem: {
+            default: false,
+            visible: false,
+        },
+        //是否可以销售产品
+        isItSaleable: {
+            default: false,
+            visible: false,
+            tooltip: '动态设定,是否允许销售',
+        },
+
+        //是否停运
+        isItStopOperation: {
+            default: false,
+            visible: false,
+            tooltip: '动态设定,是否停止运营',
+        },
+        //建筑名称
+         /**
+         * 重要:建筑时候 要用名字匹配来做减法 ManageGame.MuinusBuilding
+         */
+        buildingName: {
+            default: '',
+        },
+        BuildingPrefabName: {
+            default: '',
+        },
+        EnglishName: {
+            default: '',
+        },
+        //建筑简介
+        BuildingSynopsis: {
+            default: '',
+        },
+        //建筑图片
+        BuildingSprite: {
+            default: null,
+            type: cc.Sprite
+        },
+        //此建筑维护费用
+        RunningCost: {
+            default: 200,
+            type: cc.Integer,
+            visible: true,
+            tooltip: '消耗:维护费用/每月',
+        },
+        //此建筑每分钟消耗的体力值
+        consumeStrength: {
+            default: 0,
+            type: cc.Integer,
+            visible: true,
+            // displayName: '体力',
+            tooltip: '消耗:体力/每分钟',
+        },
+        //此建筑总共消耗的体力值
+        //工厂的生产力,
+        totalConsumption: {
+            default: 50,
+            type: cc.Integer,
+            visible: true,
+            // displayName: '体力',
+            tooltip: '这个建筑总共消耗的体力值,工厂代表生成力,商店代表销售力',
+        },
+        //商品的库存总量
+        totalInventory: {
+            default: 0,
+            type: cc.Integer,
+            tooltip: '商品的库存总量:销售商店需要,工厂',
+        },
+        //工厂:代表生产的商品
+        //商店:代表销售的商品
+
+        //定义的商品类型,也可动态添加
+        //todo...
+        goodsArray: {
+            default: [],
+            type: reGameStates.goods,
+        },
+        //当前销售的商品
+        _goods: {
+            default: null,
+            visible: false,
+        },
+        //商品的库存
+        _inventory: {
+            default: 0,
+            type: cc.Integer,
+            visible: false,
+        },
+        //目标建筑信息
+        //工厂只对应商店
+        _targetBuildingsInfo: {
+            default: null,
+            visible: false,
+        },
+        //可以寻找的目标点
+        //记录图块的二位数组
+        _gotoPosistion: {
+            default: [],
+            visible: false,
+        },
+
+        //特殊建筑用到的影响值,在预制设置
+        specialSetValue: {
+            default: 3,
+            type: cc.Integer,
+            visible: true,
+            tooltip: '特殊建筑需要填写的值',
+        },
+
+
+        consumeStrengthAddValue: {
+            default: 0,
+            type: cc.Integer,
+            visible: false,
+            tooltip: '消耗加成值:体力/每分钟',
+        },
+
+        goodsPriceAddValue: {
+            default: 0,
+            type: cc.Integer,
+            visible: false,
+            tooltip: '商品销售加成值',
+        },
+        AssetValue: {
+            default: 0,
+            type: cc.Integer,
+            visible: false,
+            tooltip: '资产值',
+        },
+    },
+    //设置当前存量
+    onSetCurrentInventory(value) {
+        // cc.log("onSetCurrentInventory", value);
+        //购买的个数
+        let callBackNum = Math.abs(value);
+        this._inventory += Number(value);
+        if (this._inventory <= 0) {
+            // cc.warn("onSetCurrentInventory", this._inventory);
+            //如果商品库存不够,返回只购买剩余的个数
+            callBackNum += this._inventory;
+            this._inventory = 0;
+        }
+        if (this._inventory > this.totalInventory)
+            this._inventory = this.totalInventory;
+
+        // this.node.getComponent("buildingTips").setShowStockData(null,"x"+this._inventory);
+        if (this.updatainventory != null) {
+            this.updatainventory();
+        }
+
+        // console.log("现在调用这个了",value);
+
+        return callBackNum;
+    },
+    updatainventory: function () {
+
+    },
+    setCallBackinventory: function (updatainventory) {
+        this.updatainventory = updatainventory;
+    }
+
+});
+cc.Class({
+    extends: cc.Component,
+    properties: {
+        title: cc.Label,
+        //建筑物信息
+        buildInfo: {
+            type: BuildInfo,
+            default: null
+        },
+        //绘制提示区域
+        buildZone: cc.Node,
+        _canBuild: false,
+
+        //是否是从数据初始化
+        InitPosFromStore: {
+            default: false,
+            visible: false,
+        },
+        //初始化位置
+        InitPos: false,
+        //建筑初始化的开始位置
+        InitStartPos: new cc.Vec2(),
+        //初始化商店的商品信息
+        InitBuildingInfo: {
+            default: false,
+            tooltip: '初始化商店的商品信息',
+        },
+        ShowTip: {
+            default: null,
+            type: cc.Label,
+            tooltip: '显示状态提示UI节点',
+        },
+        ShowTipString: '',
+        //初始工作地点的状态
+        InitWorkBuildingInfo: {
+            default: false,
+            tooltip: '初始工作地点的状态',
+        },
+        InitWorkBuildingIndex: {
+            default: 0,
+            type: cc.Integer,
+            tooltip: '下标:初始工作地点的状态',
+        },
+        // //是否添加到原料地
+        // isAddMatrialArray: {
+        //     default: false,
+        //     tooltip: '是否添加到原料地',
+        // },
+
+    },
+    onLoad() {
+        this._buildZone = this.buildZone.getComponent('buildZone');
+
+        //设置空字符
+        this.title.string = '';
+
+        // this.buildInfo.setCallBackinventory(function () {
+        //     this.node.getComponent("buildingTips").setShowStockData(null,"x"+this.buildInfo._inventory);
+        // }.bind(this));
+
+
+        this.AssetValues = [];
+        this.AssetValues.push(5000);
+        this.AssetValues.push(10000);
+        this.AssetValues.push(15000);
+        this.AssetValues.push(400);
+        this.AssetValues.push(500);
+        this.AssetValues.push(600);
+        this.AssetValues.push(700);
+        this.AssetValues.push(800);
+        this.AssetValues.push(900);
+        // console.log("我经过吗",this.buildInfo.id);
+        //设置财产值
+
+        //银行
+        // 406001
+        //加工厂
+        // 610002
+        //农田
+        // 610003
+        //绿化带
+        // 401001
+        //花坛
+        // 402001
+        //游乐场
+        // 403001
+        //医院
+        // 404001
+        //住宅
+        // 101001
+        //单元楼
+        // 102001
+        //别墅
+        // 103001
+        //矿坑
+        // 610005
+        //伐木场
+        // 610004
+
+        // 神龙相关id
+        //农田 
+        // 610006
+
+        //警察局
+        // 405001
+        //甜品店
+        // 610010
+        //甜品店
+        // 610011
+        //甜品店
+        // 610012
+        //甜品店
+        // 610013
+        //甜品店
+        // 610014
+        //甜品店
+        // 610015
+        //甜品店
+        // 610016
+
+
+        switch (this.buildInfo.id) {
+            case 101001:
+                this.buildInfo.AssetValue = this.AssetValues[0];
+                break;
+            case 102001:
+                this.buildInfo.AssetValue = this.AssetValues[1];
+                break;
+            case 103001:
+                this.buildInfo.AssetValue = this.AssetValues[1];
+                break;
+            case 610003:
+                this.buildInfo.AssetValue = this.AssetValues[0];
+                break;
+            case 610004:
+                this.buildInfo.AssetValue = this.AssetValues[1];
+                break;
+            case 610005:
+                this.buildInfo.AssetValue = this.AssetValues[1];
+                break;
+            case 610002:
+                this.buildInfo.AssetValue = this.AssetValues[0];
+                break;
+            case 610010:
+            case 610013:
+            case 610016:
+                this.buildInfo.AssetValue = this.AssetValues[0];
+                break;
+            case 610011:
+            case 610014:
+                this.buildInfo.AssetValue = this.AssetValues[1];
+                break;
+            case 610012:
+            case 610015:
+                this.buildInfo.AssetValue = this.AssetValues[2];
+                break;
+            case 401001:
+                this.buildInfo.AssetValue = this.AssetValues[0];
+                break;
+            case 402001:
+                this.buildInfo.AssetValue = this.AssetValues[1];
+                break;
+            case 403001:
+                this.buildInfo.AssetValue = this.AssetValues[2];
+                break;
+        }
+
+
+
+
+
+        // if (this.buildInfo.buildType == reGameStates.BuildType.Housing) {
+        //
+        //     this.buildInfo.AssetValue = this.AssetValues[0];
+        // } else if (this.buildInfo.buildType == reGameStates.BuildType.Farmland) {
+        //     this.buildInfo.AssetValue = this.AssetValues[1];
+        // } else if (this.buildInfo.buildType == reGameStates.BuildType.TimberYard) {
+        //     this.buildInfo.AssetValue = this.AssetValues[2];
+        // } else if (this.buildInfo.buildType == reGameStates.BuildType.MiningPit) {
+        //     this.buildInfo.AssetValue = this.AssetValues[3];
+        // } else if (this.buildInfo.buildType == reGameStates.BuildType.Factory) {
+        //     this.buildInfo.AssetValue = this.AssetValues[4];
+        // } else if (this.buildInfo.buildType == reGameStates.BuildType.Shop) {
+        //     this.buildInfo.AssetValue = this.AssetValues[5];
+        // } else if (this.buildInfo.buildType == reGameStates.BuildType.Special) {
+        //     this.buildInfo.AssetValue = this.AssetValues[6];
+        // }
+
+
+    },
+    start() {
+        this._tileMap = GlobalD.TiledMap;
+
+        //开始初始化位置,添加到数组里面
+        if (this.InitPos) {
+
+            //场景的预制初始化可销售状态
+            if (this.buildInfo.buildType == reGameStates.BuildType.Farmland) {
+                //设置销售状态,
+                this.buildInfo.isItSaleable = true;
+            }
+
+            //把物体定位到对应的坐标上去
+            this._currentTiledValue = this.InitStartPos;
+            if (this._currentTiledValue) {
+                //往前移一格
+                var endTiledPos = cc.v2(this._currentTiledValue.x, this._currentTiledValue.y);
+                var endPos = this._tileMap._getTheMiddleLocationFromtilePos(endTiledPos);
+                this.node.setPosition(endPos);
+                let isHas = GlobalD.game.doesItExistArray(this.buildInfo.id);
+                if (!isHas) {
+                    //起始坐标,占位范围,是否占位
+                    GlobalD.game.addBuildTiled(this.buildInfo.id, this._currentTiledValue, this.buildInfo.occupyArea);
+
+                    this.buildInfo.startTilePos = this._currentTiledValue;
+                    GlobalD.game.addBuilding(this);
+
+                    console.log(this.buildInfo.buildingName);
+                } else {//如果已经存在,更新新位置
+                    //可以移动
+                    let isMove = true;
+                    GlobalD.game.updateBuildOccupy(isMove, this.buildInfo.id, this._currentTiledValue, this.buildInfo.occupyArea);
+
+                    this.buildInfo.startTilePos = this._currentTiledValue;
+                    GlobalD.game.updateBuilding(this);
+                }
+            }
+        }
+
+
+        //初始化设置房屋信息
+        if (this.InitBuildingInfo) {
+            //设置销售物品
+            this.onSettingBuildingState();
+        }
+        if (this.InitWorkBuildingInfo) {
+            this.onInitBuildingState();
+        }
+        if (this.buildInfo.consumeStrength == 0 && this.buildInfo.buildType !== reGameStates.BuildType.Shop && this.buildInfo.buildType !== reGameStates.BuildType.Special) {
+            cc.warn('这个建筑可能需要消耗或者增加体力值:', this.buildInfo.startTilePos);
+        }
+    },
+    //代码设置位置
+    setInitStartPos: function (x, y) {
+        this.InitStartPos = cc.v2(x, y);
+        //把物体定位到对应的坐标上去
+        this._currentTiledValue = this.InitStartPos;
+        if (this._currentTiledValue) {
+            //往前移一格
+            var endTiledPos = cc.v2(this._currentTiledValue.x, this._currentTiledValue.y);
+            var endPos = this._tileMap._getTheMiddleLocationFromtilePos(endTiledPos);
+            this.node.setPosition(endPos);
+            let isHas = GlobalD.game.doesItExistArray(this.buildInfo.id);
+            if (!isHas) {
+                //起始坐标,占位范围,是否占位
+                GlobalD.game.addBuildTiled(this.buildInfo.id, this._currentTiledValue, this.buildInfo.occupyArea);
+
+                this.buildInfo.startTilePos = this._currentTiledValue;
+                GlobalD.game.addBuilding(this);
+            } else {//如果已经存在,更新新位置
+                //可以移动
+                let isMove = true;
+                GlobalD.game.updateBuildOccupy(isMove, this.buildInfo.id, this._currentTiledValue, this.buildInfo.occupyArea);
+
+                this.buildInfo.startTilePos = this._currentTiledValue;
+                GlobalD.game.updateBuilding(this);
+            }
+        }
+    },
+
+
+    //初始化时候,生成房屋的数据状态
+    onInitBuildingState() {
+        // if (this.buildInfo.buildType == reGameStates.BuildType.Farmland)
+        {
+            //设置库存
+            this.buildInfo._inventory = this.buildInfo.totalInventory;
+            //设置满库存状态
+            this.node.getComponent('WorkingBuilding').onSetWorkStateFormReadingData(this.InitWorkBuildingIndex);
+
+        }
+    },
+    //设置房屋当前状态
+    //比如,商店:没有商品,
+    onSettingBuildingState() {
+        //如果是商店的话
+        if (this.buildInfo.buildType == reGameStates.BuildType.Shop) {
+            let num = this.buildInfo.onSetCurrentInventory(-1000);
+            // cc.log(num);
+            //初始化销售的商品
+            for (let i = 0; i < this.buildInfo.goodsArray.length; i++) {
+                if (this.buildInfo.goodsArray[i].isItSale) {
+                    this.buildInfo._goods = this.buildInfo.goodsArray[i];
+                    break;
+                }
+            }
+        }
+    },
+    //在预制初始化时候调用
+    onInitFromPrefabs() {
+
+    },
+    onShowTip(tipString) {
+        if (!this.ShowTip) return;
+        this.ShowTip.string = tipString;
+        this.ShowTip.node.parent.active = true;
+
+        setTimeout(() => {
+            this.ShowTip.node.parent.active = false;
+        }, 1000)
+    },
+    //商品售罄
+    onSetTipSellOut() {
+
+        // cc.log('商店售罄');
+        // this.onShowTip(this.ShowTipString);
+        //通知工厂生产销售商品
+        //{buildingInfo,goodsItem}
+        GlobalD.game.onNotificationFactory(this);
+    },
+    //工人送完商品设置
+    //商店
+    onResetFromWorkersFinished() {
+        //暂时设置最高的库存量
+        this.buildInfo.onSetCurrentInventory(5);
+        //清空对应的工厂信息
+        this.buildInfo._targetBuildingsInfo = null;
+    },
+    //工厂到商店流程中断时候设置
+    onResetFromWorkersSuspend() {
+        //暂时设置最高的库存量
+        // this.buildInfo.onSetCurrentInventory(0);
+        //清空对应的工厂信息
+        this.buildInfo._targetBuildingsInfo = null;
+    },
+    //商店重置对应工厂信息
+    onResetProductionRequest() {
+        //通知工厂对应的工人
+        if (this.buildInfo.occupantPlayerInfo != null) {
+            //工厂设置值
+            this.buildInfo.occupantPlayerInfo.transTarget = null;
+        }
+
+        this.buildInfo._goods = null;
+        this.buildInfo._targetBuildingsInfo = null;
+        this.buildInfo.isItOccupied = false;
+
+    },
+
+
+    //清除建筑后,调用此函数 
+    onClearSelfResetFromType() {
+        // cc.log('清除类型:', this.buildInfo.buildType)
+        if (this.buildInfo.buildType == reGameStates.BuildType.Shop) {
+            //如果清除的建筑是商店
+            //通知工厂工作清除
+            if (this.buildInfo._targetBuildingsInfo) {
+                this.buildInfo._targetBuildingsInfo.onResetProductionRequest();
+            }
+
+        } else if (this.buildInfo.buildType == reGameStates.BuildType.Factory) {
+            //如果是工厂拆除了
+
+            //通知工厂对应的工人
+            if (this.buildInfo.occupantPlayerInfo != null) {
+                // this.occupantPlayerInfo.AIAttribute.isWorking = false;
+                // this.occupantPlayerInfo._isColletion = false;
+                //工厂设置值
+                this.buildInfo.occupantPlayerInfo.transTarget = null;
+            }
+
+            //通知商店,通知清除对应的工厂目标
+            if (this.buildInfo._targetBuildingsInfo)
+                this.buildInfo._targetBuildingsInfo.onResetFromWorkersSuspend();
+
+
+        } else if (this.buildInfo.buildType == reGameStates.BuildType.Housing) {
+            //如果是房子拆除
+            if (this.buildInfo.occupantPlayerInfo) {
+                this.buildInfo.occupantPlayerInfo.onDismantleBuilding();
+            }
+        }
+        // else {
+        //     //其他工作地点,比如农田,矿厂,伐木场
+        //     //特殊建筑可以忽略
+        //     // cc.log('清除类型:', this.buildInfo.buildType)
+        // }
+    },
+
+    //如果商店停运调用这个函数
+    onStopOperation() {
+        if (this.buildInfo.buildType == reGameStates.BuildType.Shop) {
+            if (this.buildInfo._targetBuildingsInfo)
+                this.buildInfo._targetBuildingsInfo.onResetProductionRequest();
+
+            //如果商店停运
+            this.onResetFromWorkersSuspend();
+
+            // cc.log('停运后,',this.buildInfo._targetBuildingsInfo);
+        } else if (this.buildInfo.buildType == reGameStates.BuildType.Factory) {
+
+            if (this.buildInfo._targetBuildingsInfo) {
+                //如果工厂停运,就把工厂对应的商店目标,通知商店,清空工厂自己
+                this.buildInfo._targetBuildingsInfo.buildInfo._targetBuildingsInfo = null;
+            }
+            this.onResetProductionRequest();
+        }
+    },
+
+    /**
+     * 植物生长
+     */
+    onInitHolyFarmlandSeedFromGrow(growStage,spriteFrame){
+        this.node.getComponent('WorkingBuilding').onSetGrow(growStage,spriteFrame);
+        // this.node.getComponent('WorkingBuilding').onHolyFarmlandSeedFromGrow();
+    }
+
+
+});

+ 9 - 0
assets/Script/build/buildingsInfo.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "665c9393-d91d-4e82-aa4e-e96ea89e5690",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 421 - 0
assets/Script/build/buildingsTouch.js

@@ -0,0 +1,421 @@
+
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+
+
+        isHiddenTouch: {
+            default: false,
+            tooltip: "初始化时候是否绑定touch"
+        },
+
+        //是否显示房屋信息
+        isShowBuildingInfo: { default: false },
+
+        // 是否是在预制生成
+        _isInstance: { default: false, visible: false },
+        //如果进入编辑状态
+        _ifCanEdit: { default: false, visible: false },
+
+        //触摸多久进入编辑状态
+        touchTimer: { default: 0.8, visible: false },
+
+        // //绘制底部颜色区域
+        // Draw: cc.Node,
+
+        //触摸一开始的位置
+        _touchPosition: {
+            default: new cc.Vec2(),
+            visible: false,
+            serializable: false
+        },
+        _EndPosition: {
+            default: new cc.Vec2(),
+            visible: false,
+            serializable: false
+        },
+
+        //如果自动移动
+        isAutoMove: { default: false, visible: false },
+
+        targetNode: cc.Node,
+
+        //编辑时候,记录旧的遮挡位置
+        _OldIndex: 0,
+
+        //是否显示节点
+        isShowInfo: { default: false },
+        infoNode: cc.Node,
+
+        //如果是在新手引导时候建造的建筑
+        //只要拖拽到虚影对应的位置,才能成功建造
+    },
+
+    // LIFE-CYCLE CALLBACKS:
+
+    onLoad() {
+        this._buildingsInfo = this.node.getComponent('buildingsInfo');
+        this.buildInfo = this._buildingsInfo.buildInfo;
+        this.title = this._buildingsInfo.title;
+
+        if (!this.isHiddenTouch) {
+            this.node.on(cc.Node.EventType.TOUCH_START, this.TouchStartFunction, this);
+            this.node.on(cc.Node.EventType.TOUCH_END, this.TouchEndFunction, this);
+            this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.TouchCancelFunction, this);
+        }
+        // console.log("this.isHiddenTouch",this.isHiddenTouch);
+        this.Draw = this._buildingsInfo._buildZone;
+        if (!this.Draw)
+            this.Draw = this.node.getChildByName('Draw');
+        this.Draw.active = false;
+    },
+
+    start() {
+        this.InitStartPos = this._buildingsInfo.InitStartPos;
+        this._camera = GlobalD.game.MainCamera;
+        this._canvas = GlobalD.game.Canvas;
+        this._tileMap = GlobalD.TiledMap;
+    },
+
+
+    TouchStartFunction() {
+        // console.log("TouchStartFunction");
+        this._touchPosition = this.node.getPosition();
+        GlobalD.GameControl._isBuildingMove = false;
+        this._isMove = false;
+        this.unschedule(this.callback);
+        this.scheduleOnce(this.callback = function () {
+            //编辑器移动的话,返回
+            if (GlobalD.GameControl.isUICameraMove) return;
+            //进入编辑状态
+            // cc.log('进入编辑状态!',GlobalD.GameControl.isUICameraMove);
+            // this.onEditorStatus(false);
+            //按住可以编辑
+        }, this.touchTimer);
+
+    },
+    //生成房屋时候的预制状态
+    // 编辑状态
+    onEditorStatus(isInstance) {
+
+        // cc.log('onEditorStatus', isInstance);
+        //如果是编辑状态下,返回
+        if (this._ifCanEdit) return;
+
+        //只要是编辑状态下。设为true
+        GlobalD.GameControl._isBuildingCanEdit = true;
+
+        this._isInstance = isInstance;
+        this._ifCanEdit = true;
+        this.node.on(cc.Node.EventType.TOUCH_MOVE, this.MoveFunction, this);
+        GlobalD.game._ManageUIScript.onEditorialBuildings(this.node);
+        GlobalD.game.onSetCurrentBuildingTarget(this.node);
+
+        if (!this.Draw)
+            this.Draw = this.node.getChildByName('Draw')
+        this.Draw.active = true;
+
+        if (isInstance) {
+            // cc.log(11111);
+            this._currentTiledValue = GlobalD.TiledMap._tilePosFromLocation(this.node.position);
+            let endPos = GlobalD.TiledMap._getTheMiddleLocationFromtilePos(this._currentTiledValue);
+            this.node.setPosition(endPos);
+            this._canNotBuild = GlobalD.game.areTheraOverlappingAreas(this._currentTiledValue, this.buildInfo.occupyArea, 1);
+
+        } else {// if (this._tileMap) 
+            // cc.log(22222);
+            this._currentTiledValue = this._tileMap._tilePosFromLocation(this._touchPosition);
+            this._canNotBuild = GlobalD.game.areTheraOverlappingAreas(this._currentTiledValue, this.buildInfo.occupyArea, 1);
+        }
+
+        if (task.virtualShadowPos)
+            this._canNotBuild = this._currentTiledValue.sub(task.virtualShadowPos).mag() == 0 ? false : true;
+
+        GlobalD.game.onSpawnEditorBuildingTip(this.Draw, this._currentTiledValue, this.buildInfo.occupyArea, this._canNotBuild, this.buildInfo.buildType);
+
+        this._OldIndex = this.node.zIndex;
+        //设置最高显示
+        this.node.zIndex = 1000;
+    },
+    TouchCancelFunction() {
+        // console.log("TouchCancelFunction");
+        this.unschedule(this.callback);
+        GlobalD.GameControl._isBuildingMove = false;
+    },
+    TouchEndFunction() {
+        // console.log("TouchEndFunction");
+        // console.log("点击建筑物 之后",this.getOnClickTags());
+        if (this.getOnClickTags()) {
+            return;
+        }
+
+        GlobalD.GameControl._isBuildingMove = false;
+
+        this.unschedule(this.callback);
+        // cc.warn('touch End!');
+        if (this.isShowInfo) {
+
+            //关闭其他
+            let _landBuildingsInfo = this.node.parent.children;
+            for (let i = _landBuildingsInfo.length - 1; i >= 0; i--) {
+                let resetLandInfo = _landBuildingsInfo[i];
+                if (resetLandInfo.name == "Labour_205_Holy_Farmland") {
+                    let  _buildInfo = resetLandInfo.getComponent("buildingsInfo").buildInfo;
+                    let leaseFarmlandInfoScript = resetLandInfo.getComponent("LeaseFarmlandInfo");
+                    if (_buildInfo.id == this.buildInfo.id) {
+                        leaseFarmlandInfoScript.onSetInfoBoxActive(true);
+                    } else {
+
+                        leaseFarmlandInfoScript.onSetInfoBoxActive(false);
+                    }
+                }
+
+            }
+
+        }
+        console.log("this.isShowBuildingInfo:", this.isShowBuildingInfo);
+        //如果没有移动就判断点击
+        if (!this._isMove
+            && this.isShowBuildingInfo
+            && !this._ifCanEdit
+            && !GlobalD.GameControl.isUICameraMove
+            && !GlobalD.GameControl._isBuildingCanEdit)
+            GlobalD.game._ManageUIScript.onShowBuildingInfo(this.buildInfo);
+
+    },
+    MoveFunction(event) {
+        // cc.log("MoveFunction");
+        var delta = event.touch.getDelta();
+        this._touchPosition.x += delta.x / this._camera.zoomRatio;
+        this._touchPosition.y += delta.y / this._camera.zoomRatio;
+        // var worldPos = this.node.parent.convertToWorldSpaceAR(this._touchPosition);
+        //取得的节点减去canvas的偏移
+        // let tempPos = cc.v2(worldPos.x - this._canvas.x, worldPos.y - this._canvas.y);
+        this._currentTiledValue = this._tileMap._tilePosFromLocation(this._touchPosition);
+        //不相等的时候才绘制
+        if (this._currentTiledValue.sub(this._EndPosition).mag() != 0) {
+
+            this._EndPosition = this._currentTiledValue;
+            let endPos = this._tileMap._getTheMiddleLocationFromtilePos(this._currentTiledValue);
+            this.node.setPosition(endPos);
+            let isHas = this._canNotBuild = GlobalD.game.areTheraOverlappingAreas(this._currentTiledValue, this.buildInfo.occupyArea, 1);
+            // this.title.string = "(" + (this._currentTiledValue.x) + "," + (this._currentTiledValue.y) + ")" + isHas;
+
+            if (task.virtualShadowPos)
+                this._canNotBuild = this._EndPosition.sub(task.virtualShadowPos).mag() == 0 ? false : true;
+
+
+            GlobalD.game.onSpawnEditorBuildingTip(this.Draw, this._currentTiledValue, this.buildInfo.occupyArea, this._canNotBuild, this.buildInfo.buildType);
+
+        }
+        this._isMove = true;
+        GlobalD.GameControl._isBuildingMove = true;
+    },
+    // 自动移动,在ManagerControl 里面调用
+    onAutoMove(delta) {
+        this.isAutoMove = true;
+        this._touchPosition.x += delta.x;
+        this._touchPosition.y += delta.y;
+        this._currentTiledValue = this._tileMap._tilePosFromLocation(this._touchPosition);
+        //不相等的时候才绘制
+        if (this._currentTiledValue.sub(this._EndPosition).mag() != 0) {
+            this._EndPosition = this._currentTiledValue;
+            let endPos = this._tileMap._getTheMiddleLocationFromtilePos(this._currentTiledValue);
+            this.node.setPosition(endPos);
+            let isHas = this._canNotBuild = GlobalD.game.areTheraOverlappingAreas(this._currentTiledValue, this.buildInfo.occupyArea, 1);
+            // this.title.string = "(" + (this._currentTiledValue.x) + "," + (this._currentTiledValue.y) + ")" + isHas;
+
+            if (task.virtualShadowPos)
+                this._canNotBuild = this._EndPosition.sub(task.virtualShadowPos).mag() == 0 ? false : true;
+
+            GlobalD.game.onSpawnEditorBuildingTip(this.Draw, this._currentTiledValue, this.buildInfo.occupyArea, this._canNotBuild, this.buildInfo.buildType);
+
+
+        }
+    },
+
+    onCancleAutoMove() {
+        this.isAutoMove = false;
+
+    },
+
+    /**
+     * 编辑房子时候
+     * 完成建造房子流程
+     */
+    onFinishEdit() {
+
+        GlobalD.GameControl._isBuildingCanEdit = false;
+        GlobalD.game.onClearCurrentBuildingTarget();
+        // cc.log(this._ifCanEdit, this._canNotBuild);
+        if (this._canNotBuild) {
+            //如果不可建造区域,跳回起始位置
+            this.onCancelEdit();
+            return;
+        }
+        //如果完成时候,还在初始化生成的状态,重置为false
+        if (this._isInstance) {
+            this._isInstance = false;
+            GlobalD.game._ManageUIScript.onBottomMenuView(true);
+
+            //只有初始化建筑建造成功才移除建筑数据
+            /**
+             * 操作记录的数据减少1
+             */
+            GlobalD.game.MuinusBuilding(this.buildInfo.buildingName);
+        }
+        if (!this._ifCanEdit) return;
+        //把物体定位到对应的坐标上去
+        if (this._currentTiledValue) {
+            //如果可以移动的话,更新一次位置
+            this.InitStartPos = this._currentTiledValue;
+            var endTiledPos = cc.v2(this._currentTiledValue.x, this._currentTiledValue.y);
+            var endPos = this._tileMap._getTheMiddleLocationFromtilePos(endTiledPos);
+            this.node.setPosition(endPos);
+            let isHas = GlobalD.game.doesItExistArray(this.buildInfo.id);
+            if (!isHas) {
+                //起始坐标,占位范围,是否占位
+                GlobalD.game.addBuildTiled(this.buildInfo.id, this._currentTiledValue, this.buildInfo.occupyArea);
+                this.buildInfo.startTilePos = this._currentTiledValue;
+                GlobalD.game.addBuilding(this._buildingsInfo);
+            } else {//如果已经存在,更新新位置
+                //可以移动
+                let isMove = true;
+                GlobalD.game.updateBuildOccupy(isMove, this.buildInfo.id, this._currentTiledValue, this.buildInfo.occupyArea);
+                this.buildInfo.startTilePos = this._currentTiledValue;
+                GlobalD.game.updateBuilding(this._buildingsInfo);
+            }
+        }
+
+        //完成后从新设置状态
+        this.Draw.active = false;
+        this._ifCanEdit = false;
+        this.node.off(cc.Node.EventType.TOUCH_MOVE, this.MoveFunction, this);
+
+        // cc.log('this.Draw.active', this.Draw.active);
+        // cc.log('this._buildingsInfo='+this._buildingsInfo.buildInfo.EnglishName);
+
+        //设置影响力
+        GlobalD.game.onFinishAddEditorBuildingsEffect(this._buildingsInfo);
+
+        if (task.TaskIconCountClick >= 13)
+            return;
+        //引导 开始 建造 农舍 确定之后
+        if (task.taskCursor == 0 && this.node.name == "Env_101_house_low") {
+            task.taskShare();
+            task.onShadowArchitectureReset();
+
+        }
+
+        if (this.node.name == "Labour_201_Farmland") {
+            task.Farming();
+            task.onShadowArchitectureReset();
+        }
+
+
+        // if (this.node.name == "Labour_204_Factory") {
+        //     //盖一个工厂
+        //     task.taskfactory();
+        // }
+        // if (this.node.name == "Shops_30101_ColdDrinkStall") {
+        //     //盖一个便利店
+        //     task.taskConvenienceStore();
+        // }
+        // //
+        // if (this.node.name == "Spe_402_GreenBelt") {
+
+        //     task.taskGreenBeltShare();
+        // }
+        // if (this.node.name == "Env_101_house_low") {
+        //     task.taskFarmhouse();
+        // }
+        UtilsWX.getAllBuild();
+    },
+
+
+
+    onTaskBuild() {
+        // console.log(this._canNotBuild, task.isMushBuildState);
+        if (task.isMushBuildState && this._canNotBuild) {
+            //如果不可建造区域
+            if (this.node.name == "Env_101_house_low" || this.node.name == "Labour_201_Farmland") {
+                // task.onTaskBuildAHouseMask();
+                cc.loader.loadRes('resUI/ShowNotEnoughMoney', function (err, texture) {
+                    var prefab = cc.instantiate(texture);
+                    prefab.getComponent('ShowNotEnoughMoney').Text('请在指定位置建造!');
+                    // this.node.addChild(prefab);
+                    cc.find('Canvas').getChildByName('UICamera').addChild(prefab);
+                }.bind(this));
+            }
+            return false;
+        }
+
+        return true;
+    },
+
+
+    onCancelEdit() {
+
+        GlobalD.GameControl._isBuildingCanEdit = false;
+
+        this.node.zIndex = this._OldIndex;
+        // cc.log('onCancelEdit');
+        GlobalD.game.onClearCurrentBuildingTarget();
+
+        if (this._isInstance) {
+            // cc.log('删除1');
+            //清除底部的提示,放回对象池
+            GlobalD.game.onClearSpawnEditorBuildingTip();
+            GlobalD.game._ManageUIScript.onBottomMenuView(true);
+            //如果是预制生成的,取消生成的时候,删除预制
+            this.scheduleOnce(() => {
+                this.node.destroy();
+            }, 0)
+        } else {
+            // cc.log('删除2');
+            this.Draw.active = false;
+            this._ifCanEdit = false;
+            // cc.log(' buildingsInfo.buildInfo.InitStartPos', this.InitStartPos);
+            this.node.off(cc.Node.EventType.TOUCH_MOVE, this.MoveFunction, this);
+            var endTiledPos = cc.v2(this.InitStartPos.x, this.InitStartPos.y);
+            var endPos = this._tileMap._getTheMiddleLocationFromtilePos(endTiledPos);
+            this.node.setPosition(endPos);
+        }
+
+    },
+
+
+    /**
+     * 需要添加碰撞体
+   * 不规则多边形触摸测试
+   * @param {触摸点} point 
+   * @param {监听} listener 
+   */
+    polygonHitTest(point, listener) {
+        var polygonCollider = this.getComponent(cc.PolygonCollider);
+        if (polygonCollider) {
+            point = this.convertToNodeSpace(point);
+            point.x -= this.getContentSize().width / 2;
+            point.y -= this.getContentSize().height / 2;
+            return cc.Intersection.pointInPolygon(point, polygonCollider.points);
+        } else {
+            return this._oldHitTest(point, listener);
+        }
+    },
+
+    /**
+     * 判断是否可以被优先点击
+     * @returns {*}
+     */
+    getOnClickTags: function () {
+        if (this.getComponent("Collect") != null) {
+            return this.getComponent("Collect").getOnClickTag();
+        } else {
+            return false;
+        }
+
+
+    }
+
+});

+ 9 - 0
assets/Script/build/buildingsTouch.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "c818f0c7-3402-4bfc-a500-9da3ca6de92d",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}