甘艺伟 2 дней назад
Родитель
Сommit
1a3144eba8
37 измененных файлов с 967 добавлено и 231 удалено
  1. 259 4
      assets/bundle/gridMap/UECube.prefab
  2. 119 0
      assets/bundle/gridMap/UEExp.prefab
  3. 9 0
      assets/bundle/gridMap/UEExp.prefab.meta
  4. 43 27
      assets/bundle/gridMap/UEMergeTipItem.prefab
  5. BIN
      assets/bundle/gridMap/images/Img_zjm_cishudi.png
  6. 38 0
      assets/bundle/gridMap/images/Img_zjm_cishudi.png.meta
  7. BIN
      assets/bundle/gridMap/mergeProp/merge_20108.png
  8. 38 0
      assets/bundle/gridMap/mergeProp/merge_20108.png.meta
  9. BIN
      assets/bundle/gridMap/mergeProp/merge_71205.png
  10. 38 0
      assets/bundle/gridMap/mergeProp/merge_71205.png.meta
  11. BIN
      assets/bundle/gridMap/qualityBg/Img_zjm_diban01.jpg
  12. 3 3
      assets/bundle/gridMap/qualityBg/Img_zjm_diban01.jpg.meta
  13. BIN
      assets/bundle/gridMap/qualityBg/Img_zjm_diban02.jpg
  14. 3 3
      assets/bundle/gridMap/qualityBg/Img_zjm_diban02.jpg.meta
  15. BIN
      assets/bundle/gridMap/qualityBg/Img_zjm_diban03.jpg
  16. 3 3
      assets/bundle/gridMap/qualityBg/Img_zjm_diban03.jpg.meta
  17. BIN
      assets/bundle/gridMap/qualityBg/Img_zjm_diban04.jpg
  18. 3 3
      assets/bundle/gridMap/qualityBg/Img_zjm_diban04.jpg.meta
  19. BIN
      assets/bundle/gridMap/qualityBg/Img_zjm_diban05.jpg
  20. 38 0
      assets/bundle/gridMap/qualityBg/Img_zjm_diban05.jpg.meta
  21. 47 39
      assets/json/chapterLayout.json
  22. 11 11
      assets/script/common/xlsConfig.ts
  23. 11 0
      assets/script/data/model/GridMap/GridMapModel.ts
  24. 1 0
      assets/script/logic/gridMap/GridEvent.ts
  25. 18 3
      assets/script/logic/gridMap/UECell.ts
  26. 6 0
      assets/script/logic/gridMap/UECube.ts
  27. 42 29
      assets/script/logic/gridMap/UEGridMap.ts
  28. 2 2
      assets/script/logic/gridMap/UEMergeTip.ts
  29. 9 0
      assets/script/logic/gridMap/UEMergeTipItem.ts
  30. 60 0
      assets/script/shared/base.ts
  31. 1 1
      assets/script/shared/common/MsgItems.ts
  32. 26 0
      assets/script/shared/fight/PtlFightHc.ts
  33. 10 0
      assets/script/shared/fight/PtlFightHc.ts.meta
  34. 3 54
      assets/script/shared/fight/PtlFightTest.ts
  35. 2 2
      assets/script/shared/hc/PtlHcInfo.ts
  36. 1 1
      assets/script/shared/item/server/MsgItemChange_s.ts
  37. 123 46
      assets/script/shared/serviceProto.ts

+ 259 - 4
assets/bundle/gridMap/UECube.prefab

@@ -28,16 +28,19 @@
       },
       {
         "__id__": 16
+      },
+      {
+        "__id__": 20
       }
     ],
     "_active": true,
     "_components": [
       {
-        "__id__": 20
+        "__id__": 27
       }
     ],
     "_prefab": {
-      "__id__": 21
+      "__id__": 28
     },
     "_opacity": 255,
     "_color": {
@@ -306,7 +309,7 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 22.25,
+      "width": 0,
       "height": 50.4
     },
     "_anchorPoint": {
@@ -599,7 +602,7 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 13.35,
+      "width": 0,
       "height": 37.8
     },
     "_anchorPoint": {
@@ -708,6 +711,255 @@
     "sync": false
   },
   {
+    "__type__": "cc.Node",
+    "_name": "node_emitter_num",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 21
+      }
+    ],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 24
+      },
+      {
+        "__id__": 25
+      }
+    ],
+    "_prefab": {
+      "__id__": 26
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 47,
+      "height": 47
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        36.5,
+        36.5,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "lbt_num",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 20
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 22
+      }
+    ],
+    "_prefab": {
+      "__id__": 23
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 30.03,
+      "height": 50.4
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 21
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_string": "200",
+    "_N$string": "200",
+    "_fontSize": 18,
+    "_lineHeight": 40,
+    "_enableWrapText": true,
+    "_N$file": null,
+    "_isSystemFontUsed": true,
+    "_spacingX": 0,
+    "_batchAsBitmap": false,
+    "_styleFlags": 1,
+    "_underlineHeight": 0,
+    "_N$horizontalAlign": 1,
+    "_N$verticalAlign": 1,
+    "_N$fontFamily": "Arial",
+    "_N$overflow": 0,
+    "_N$cacheMode": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "e5HLl2uItBdqioIL9SiES1",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 20
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "963e37ea-986d-44fd-b470-b274d9ff55c8"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 20
+    },
+    "_enabled": true,
+    "alignMode": 1,
+    "_target": null,
+    "_alignFlags": 33,
+    "_left": 0,
+    "_right": -10,
+    "_top": -10,
+    "_bottom": 0,
+    "_verticalCenter": 0,
+    "_horizontalCenter": 0,
+    "_isAbsLeft": true,
+    "_isAbsRight": true,
+    "_isAbsTop": true,
+    "_isAbsBottom": true,
+    "_isAbsHorizontalCenter": true,
+    "_isAbsVerticalCenter": true,
+    "_originalWidth": 0,
+    "_originalHeight": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "e6mpj4gQtJLb7dM3lfnnXj",
+    "sync": false
+  },
+  {
     "__type__": "03c073JvHlParUW0UaW/tbe",
     "_name": "",
     "_objFlags": 0,
@@ -727,6 +979,9 @@
     "sp_item": {
       "__id__": 5
     },
+    "node_emitter_num": {
+      "__id__": 20
+    },
     "_id": ""
   },
   {

+ 119 - 0
assets/bundle/gridMap/UEExp.prefab

@@ -0,0 +1,119 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "",
+    "_objFlags": 0,
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "asyncLoadAssets": false,
+    "readonly": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "UEExp",
+    "_objFlags": 0,
+    "_parent": null,
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 2
+      }
+    ],
+    "_prefab": {
+      "__id__": 3
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 47,
+      "height": 49
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "a21c64a3-201b-4902-96e5-4992ec2a975e"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "",
+    "sync": false
+  }
+]

+ 9 - 0
assets/bundle/gridMap/UEExp.prefab.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.3.2",
+  "uuid": "e9f2a55e-3087-4ea8-8dbc-195bd669910b",
+  "importer": "prefab",
+  "optimizationPolicy": "AUTO",
+  "asyncLoadAssets": false,
+  "readonly": false,
+  "subMetas": {}
+}

+ 43 - 27
assets/bundle/gridMap/UEMergeTipItem.prefab

@@ -21,23 +21,23 @@
         "__id__": 2
       },
       {
-        "__id__": 5
+        "__id__": 6
       },
       {
-        "__id__": 9
+        "__id__": 10
       },
       {
-        "__id__": 12
+        "__id__": 13
       }
     ],
     "_active": true,
     "_components": [
       {
-        "__id__": 16
+        "__id__": 17
       }
     ],
     "_prefab": {
-      "__id__": 17
+      "__id__": 18
     },
     "_opacity": 255,
     "_color": {
@@ -88,7 +88,7 @@
   },
   {
     "__type__": "cc.Node",
-    "_name": "bg",
+    "_name": "sp_quality",
     "_objFlags": 0,
     "_parent": {
       "__id__": 1
@@ -98,10 +98,13 @@
     "_components": [
       {
         "__id__": 3
+      },
+      {
+        "__id__": 4
       }
     ],
     "_prefab": {
-      "__id__": 4
+      "__id__": 5
     },
     "_opacity": 255,
     "_color": {
@@ -113,8 +116,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 90,
-      "height": 90
+      "width": 94,
+      "height": 94
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -169,7 +172,7 @@
       "__uuid__": "5d9fb14d-45ec-4120-873a-eb3639b87565"
     },
     "_type": 0,
-    "_sizeMode": 1,
+    "_sizeMode": 2,
     "_fillType": 0,
     "_fillCenter": {
       "__type__": "cc.Vec2",
@@ -178,11 +181,21 @@
     },
     "_fillStart": 0,
     "_fillRange": 0,
-    "_isTrimmedMode": true,
+    "_isTrimmedMode": false,
     "_atlas": null,
     "_id": ""
   },
   {
+    "__type__": "a265cWgtmNLz5ceE6clJyg2",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "_id": ""
+  },
+  {
     "__type__": "cc.PrefabInfo",
     "root": {
       "__id__": 1
@@ -204,14 +217,14 @@
     "_active": false,
     "_components": [
       {
-        "__id__": 6
+        "__id__": 7
       },
       {
-        "__id__": 7
+        "__id__": 8
       }
     ],
     "_prefab": {
-      "__id__": 8
+      "__id__": 9
     },
     "_opacity": 255,
     "_color": {
@@ -265,7 +278,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 5
+      "__id__": 6
     },
     "_enabled": true,
     "_materials": [
@@ -295,7 +308,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 5
+      "__id__": 6
     },
     "_enabled": true,
     "_id": ""
@@ -322,11 +335,11 @@
     "_active": true,
     "_components": [
       {
-        "__id__": 10
+        "__id__": 11
       }
     ],
     "_prefab": {
-      "__id__": 11
+      "__id__": 12
     },
     "_opacity": 255,
     "_color": {
@@ -380,7 +393,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 9
+      "__id__": 10
     },
     "_enabled": true,
     "_materials": [
@@ -429,14 +442,14 @@
     "_active": true,
     "_components": [
       {
-        "__id__": 13
+        "__id__": 14
       },
       {
-        "__id__": 14
+        "__id__": 15
       }
     ],
     "_prefab": {
-      "__id__": 15
+      "__id__": 16
     },
     "_opacity": 255,
     "_color": {
@@ -490,7 +503,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 12
+      "__id__": 13
     },
     "_enabled": true,
     "_materials": [
@@ -523,7 +536,7 @@
     "_name": "",
     "_objFlags": 0,
     "node": {
-      "__id__": 12
+      "__id__": 13
     },
     "_enabled": true,
     "_color": {
@@ -555,14 +568,17 @@
       "__id__": 1
     },
     "_enabled": true,
+    "sp_quality": {
+      "__id__": 4
+    },
     "sp_icon": {
-      "__id__": 7
+      "__id__": 8
     },
     "node_lock": {
-      "__id__": 9
+      "__id__": 10
     },
     "lbt_rate": {
-      "__id__": 13
+      "__id__": 14
     },
     "_id": ""
   },

BIN
assets/bundle/gridMap/images/Img_zjm_cishudi.png


+ 38 - 0
assets/bundle/gridMap/images/Img_zjm_cishudi.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "f9efe0a9-745c-4bf9-af6e-82344d70e5c1",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 47,
+  "height": 47,
+  "platformSettings": {},
+  "subMetas": {
+    "Img_zjm_cishudi": {
+      "ver": "1.0.6",
+      "uuid": "963e37ea-986d-44fd-b470-b274d9ff55c8",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "f9efe0a9-745c-4bf9-af6e-82344d70e5c1",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 47,
+      "height": 47,
+      "rawWidth": 47,
+      "rawHeight": 47,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/bundle/gridMap/mergeProp/merge_20108.png


+ 38 - 0
assets/bundle/gridMap/mergeProp/merge_20108.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "0a415f9c-081f-4b82-a8ff-57f873b8c09c",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 124,
+  "height": 124,
+  "platformSettings": {},
+  "subMetas": {
+    "merge_20108": {
+      "ver": "1.0.6",
+      "uuid": "995a328b-8750-40bb-a40f-201867d58210",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "0a415f9c-081f-4b82-a8ff-57f873b8c09c",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": -0.5,
+      "offsetY": -6,
+      "trimX": 12,
+      "trimY": 20,
+      "width": 99,
+      "height": 96,
+      "rawWidth": 124,
+      "rawHeight": 124,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/bundle/gridMap/mergeProp/merge_71205.png


+ 38 - 0
assets/bundle/gridMap/mergeProp/merge_71205.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "c1f9cc76-ed38-4a22-ab64-0b1a85ab94ce",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 124,
+  "height": 124,
+  "platformSettings": {},
+  "subMetas": {
+    "merge_71205": {
+      "ver": "1.0.6",
+      "uuid": "64e3992e-9fab-41a2-b867-933dc778ff3a",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "c1f9cc76-ed38-4a22-ab64-0b1a85ab94ce",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 2.5,
+      "offsetY": -3.5,
+      "trimX": 18,
+      "trimY": 26,
+      "width": 93,
+      "height": 79,
+      "rawWidth": 124,
+      "rawHeight": 124,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/bundle/gridMap/qualityBg/Img_zjm_diban01.jpg


+ 3 - 3
assets/bundle/gridMap/qualityBg/Img_zjm_diban01.jpg.meta

@@ -1,6 +1,6 @@
 {
   "ver": "2.3.7",
-  "uuid": "07d5c54c-c08d-4b04-8dfc-a66da0adde8e",
+  "uuid": "1a98e554-90e2-431b-8e30-1026d16ae34c",
   "importer": "texture",
   "type": "sprite",
   "wrapMode": "clamp",
@@ -14,9 +14,9 @@
   "subMetas": {
     "Img_zjm_diban01": {
       "ver": "1.0.6",
-      "uuid": "76810f52-a016-4a08-bc10-c3829e443282",
+      "uuid": "e33421da-0442-4508-b8d5-ebb85f0e3b6e",
       "importer": "sprite-frame",
-      "rawTextureUuid": "07d5c54c-c08d-4b04-8dfc-a66da0adde8e",
+      "rawTextureUuid": "1a98e554-90e2-431b-8e30-1026d16ae34c",
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,

BIN
assets/bundle/gridMap/qualityBg/Img_zjm_diban02.jpg


+ 3 - 3
assets/bundle/gridMap/qualityBg/Img_zjm_diban02.jpg.meta

@@ -1,6 +1,6 @@
 {
   "ver": "2.3.7",
-  "uuid": "c1aaebc3-01db-4de5-b255-892d37b931fc",
+  "uuid": "07d5c54c-c08d-4b04-8dfc-a66da0adde8e",
   "importer": "texture",
   "type": "sprite",
   "wrapMode": "clamp",
@@ -14,9 +14,9 @@
   "subMetas": {
     "Img_zjm_diban02": {
       "ver": "1.0.6",
-      "uuid": "d751da50-7534-4fe9-9eda-caa7e19b5c76",
+      "uuid": "76810f52-a016-4a08-bc10-c3829e443282",
       "importer": "sprite-frame",
-      "rawTextureUuid": "c1aaebc3-01db-4de5-b255-892d37b931fc",
+      "rawTextureUuid": "07d5c54c-c08d-4b04-8dfc-a66da0adde8e",
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,

BIN
assets/bundle/gridMap/qualityBg/Img_zjm_diban03.jpg


+ 3 - 3
assets/bundle/gridMap/qualityBg/Img_zjm_diban03.jpg.meta

@@ -1,6 +1,6 @@
 {
   "ver": "2.3.7",
-  "uuid": "9f54aced-0d5e-44c5-b349-0250d1079a9e",
+  "uuid": "c1aaebc3-01db-4de5-b255-892d37b931fc",
   "importer": "texture",
   "type": "sprite",
   "wrapMode": "clamp",
@@ -14,9 +14,9 @@
   "subMetas": {
     "Img_zjm_diban03": {
       "ver": "1.0.6",
-      "uuid": "a7558189-e5f7-4c2c-910a-aa8cf20259ca",
+      "uuid": "d751da50-7534-4fe9-9eda-caa7e19b5c76",
       "importer": "sprite-frame",
-      "rawTextureUuid": "9f54aced-0d5e-44c5-b349-0250d1079a9e",
+      "rawTextureUuid": "c1aaebc3-01db-4de5-b255-892d37b931fc",
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,

BIN
assets/bundle/gridMap/qualityBg/Img_zjm_diban04.jpg


+ 3 - 3
assets/bundle/gridMap/qualityBg/Img_zjm_diban04.jpg.meta

@@ -1,6 +1,6 @@
 {
   "ver": "2.3.7",
-  "uuid": "ab7ff7b3-1f59-4e31-92cc-02af586bd422",
+  "uuid": "9f54aced-0d5e-44c5-b349-0250d1079a9e",
   "importer": "texture",
   "type": "sprite",
   "wrapMode": "clamp",
@@ -14,9 +14,9 @@
   "subMetas": {
     "Img_zjm_diban04": {
       "ver": "1.0.6",
-      "uuid": "762fba63-0886-45ca-b4c2-67fa36413932",
+      "uuid": "a7558189-e5f7-4c2c-910a-aa8cf20259ca",
       "importer": "sprite-frame",
-      "rawTextureUuid": "ab7ff7b3-1f59-4e31-92cc-02af586bd422",
+      "rawTextureUuid": "9f54aced-0d5e-44c5-b349-0250d1079a9e",
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,

BIN
assets/bundle/gridMap/qualityBg/Img_zjm_diban05.jpg


+ 38 - 0
assets/bundle/gridMap/qualityBg/Img_zjm_diban05.jpg.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "ab7ff7b3-1f59-4e31-92cc-02af586bd422",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 84,
+  "height": 84,
+  "platformSettings": {},
+  "subMetas": {
+    "Img_zjm_diban05": {
+      "ver": "1.0.6",
+      "uuid": "762fba63-0886-45ca-b4c2-67fa36413932",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "ab7ff7b3-1f59-4e31-92cc-02af586bd422",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 84,
+      "height": 84,
+      "rawWidth": 84,
+      "rawHeight": 84,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

+ 47 - 39
assets/json/chapterLayout.json

@@ -1,41 +1,49 @@
 [
-  {"id":10001,"infoId":1,"grid":11,"type":3,"correlationId":10001,"unlock":0},
-  {"id":10002,"infoId":1,"grid":12,"type":3,"correlationId":20001,"unlock":0},
-  {"id":10003,"infoId":1,"grid":13,"type":2,"correlationId":10101,"unlock":0},
-  {"id":10004,"infoId":1,"grid":14,"type":51,"correlationId":0,"unlock":0},
-  {"id":10005,"infoId":1,"grid":15,"type":2,"correlationId":10102,"unlock":0},
-  {"id":10006,"infoId":1,"grid":16,"type":2,"correlationId":10103,"unlock":0},
-  {"id":10007,"infoId":1,"grid":22,"type":2,"correlationId":10104,"unlock":0},
-  {"id":10008,"infoId":1,"grid":23,"type":2,"correlationId":10105,"unlock":0},
-  {"id":10009,"infoId":1,"grid":25,"type":2,"correlationId":10106,"unlock":0},
-  {"id":10010,"infoId":1,"grid":26,"type":2,"correlationId":10107,"unlock":0},
-  {"id":10011,"infoId":1,"grid":31,"type":2,"correlationId":10108,"unlock":0},
-  {"id":10012,"infoId":1,"grid":32,"type":2,"correlationId":10109,"unlock":0},
-  {"id":10013,"infoId":1,"grid":34,"type":2,"correlationId":10110,"unlock":0},
-  {"id":10014,"infoId":1,"grid":36,"type":2,"correlationId":10201,"unlock":0},
-  {"id":10015,"infoId":1,"grid":41,"type":2,"correlationId":10202,"unlock":1},
-  {"id":10016,"infoId":1,"grid":42,"type":50,"correlationId":10203,"unlock":1},
-  {"id":10017,"infoId":1,"grid":43,"type":50,"correlationId":10204,"unlock":1},
-  {"id":10018,"infoId":1,"grid":44,"type":50,"correlationId":10205,"unlock":1},
-  {"id":10019,"infoId":1,"grid":46,"type":50,"correlationId":10206,"unlock":0},
-  {"id":10020,"infoId":1,"grid":53,"type":50,"correlationId":10207,"unlock":0},
-  {"id":20001,"infoId":2,"grid":11,"type":2,"correlationId":10208,"unlock":0},
-  {"id":20002,"infoId":2,"grid":12,"type":2,"correlationId":10209,"unlock":0},
-  {"id":20003,"infoId":2,"grid":13,"type":2,"correlationId":10210,"unlock":0},
-  {"id":20004,"infoId":2,"grid":15,"type":2,"correlationId":10301,"unlock":0},
-  {"id":20005,"infoId":2,"grid":16,"type":2,"correlationId":10302,"unlock":0},
-  {"id":20006,"infoId":2,"grid":22,"type":2,"correlationId":10303,"unlock":0},
-  {"id":20007,"infoId":2,"grid":23,"type":2,"correlationId":10304,"unlock":0},
-  {"id":20008,"infoId":2,"grid":25,"type":2,"correlationId":10305,"unlock":0},
-  {"id":20009,"infoId":2,"grid":26,"type":2,"correlationId":10306,"unlock":0},
-  {"id":20010,"infoId":2,"grid":31,"type":2,"correlationId":10307,"unlock":0},
-  {"id":20011,"infoId":2,"grid":32,"type":2,"correlationId":10308,"unlock":0},
-  {"id":20012,"infoId":2,"grid":34,"type":2,"correlationId":10309,"unlock":0},
-  {"id":20013,"infoId":2,"grid":36,"type":2,"correlationId":10310,"unlock":0},
-  {"id":20014,"infoId":2,"grid":41,"type":2,"correlationId":10401,"unlock":0},
-  {"id":20015,"infoId":2,"grid":42,"type":2,"correlationId":10402,"unlock":0},
-  {"id":20016,"infoId":2,"grid":43,"type":2,"correlationId":10403,"unlock":0},
-  {"id":20017,"infoId":2,"grid":44,"type":2,"correlationId":10404,"unlock":0},
-  {"id":20018,"infoId":2,"grid":46,"type":2,"correlationId":10405,"unlock":0},
-  {"id":20019,"infoId":2,"grid":53,"type":2,"correlationId":10406,"unlock":0}
+  {"id":10001,"infoId":1,"grid":11,"type":3,"correlationId":10001},
+  {"id":10002,"infoId":1,"grid":12,"type":3,"correlationId":20001},
+  {"id":10003,"infoId":1,"grid":13,"type":2,"correlationId":10101},
+  {"id":10004,"infoId":1,"grid":14,"type":51,"correlationId":0},
+  {"id":10005,"infoId":1,"grid":15,"type":2,"correlationId":10102},
+  {"id":10006,"infoId":1,"grid":16,"type":2,"correlationId":10103},
+  {"id":10007,"infoId":1,"grid":22,"type":2,"correlationId":10104},
+  {"id":10008,"infoId":1,"grid":23,"type":2,"correlationId":10105},
+  {"id":10009,"infoId":1,"grid":25,"type":2,"correlationId":10106},
+  {"id":10010,"infoId":1,"grid":26,"type":2,"correlationId":10107},
+  {"id":10011,"infoId":1,"grid":31,"type":2,"correlationId":10108},
+  {"id":10012,"infoId":1,"grid":32,"type":2,"correlationId":10109},
+  {"id":10013,"infoId":1,"grid":34,"type":2,"correlationId":10110},
+  {"id":10014,"infoId":1,"grid":36,"type":2,"correlationId":10201},
+  {"id":10015,"infoId":1,"grid":41,"type":2,"correlationId":10202},
+  {"id":10016,"infoId":1,"grid":42,"type":50,"correlationId":1},
+  {"id":10017,"infoId":1,"grid":43,"type":0,"correlationId":0},
+  {"id":10018,"infoId":1,"grid":44,"type":50,"correlationId":2},
+  {"id":10019,"infoId":1,"grid":45,"type":0,"correlationId":0},
+  {"id":10020,"infoId":1,"grid":46,"type":0,"correlationId":0},
+  {"id":10021,"infoId":1,"grid":47,"type":0,"correlationId":0},
+  {"id":10022,"infoId":1,"grid":51,"type":50,"correlationId":3},
+  {"id":10023,"infoId":1,"grid":52,"type":0,"correlationId":0},
+  {"id":10024,"infoId":1,"grid":53,"type":0,"correlationId":0},
+  {"id":10025,"infoId":1,"grid":54,"type":0,"correlationId":0},
+  {"id":10026,"infoId":1,"grid":55,"type":0,"correlationId":0},
+  {"id":10027,"infoId":1,"grid":56,"type":0,"correlationId":0},
+  {"id":10028,"infoId":1,"grid":57,"type":0,"correlationId":0},
+  {"id":20001,"infoId":2,"grid":11,"type":2,"correlationId":10208},
+  {"id":20002,"infoId":2,"grid":12,"type":2,"correlationId":10209},
+  {"id":20003,"infoId":2,"grid":13,"type":2,"correlationId":10210},
+  {"id":20004,"infoId":2,"grid":15,"type":2,"correlationId":10301},
+  {"id":20005,"infoId":2,"grid":16,"type":2,"correlationId":10302},
+  {"id":20006,"infoId":2,"grid":22,"type":2,"correlationId":10303},
+  {"id":20007,"infoId":2,"grid":23,"type":2,"correlationId":10304},
+  {"id":20008,"infoId":2,"grid":25,"type":2,"correlationId":10305},
+  {"id":20009,"infoId":2,"grid":26,"type":2,"correlationId":10306},
+  {"id":20010,"infoId":2,"grid":31,"type":2,"correlationId":10307},
+  {"id":20011,"infoId":2,"grid":32,"type":2,"correlationId":10308},
+  {"id":20012,"infoId":2,"grid":34,"type":2,"correlationId":10309},
+  {"id":20013,"infoId":2,"grid":36,"type":2,"correlationId":10310},
+  {"id":20014,"infoId":2,"grid":41,"type":2,"correlationId":10401},
+  {"id":20015,"infoId":2,"grid":42,"type":2,"correlationId":10402},
+  {"id":20016,"infoId":2,"grid":43,"type":2,"correlationId":10403},
+  {"id":20017,"infoId":2,"grid":44,"type":2,"correlationId":10404},
+  {"id":20018,"infoId":2,"grid":46,"type":2,"correlationId":10405},
+  {"id":20019,"infoId":2,"grid":53,"type":2,"correlationId":10406}
 ]

+ 11 - 11
assets/script/common/xlsConfig.ts

@@ -6,7 +6,7 @@ export type xlsAttrAttr = {id:number,name:string,showName:string,attrDesc:string
 export type xlsAudioInfo = {id:string,name:string,vol:number}
 // type for chapter.excel
 export type xlsChapterInfo = {id:number,grid:number[],map:string,name:string}
-export type xlsChapterLayout = {id:number,infoId:number,grid:number,type:number,correlationId:number,unlock:number}
+export type xlsChapterLayout = {id:number,infoId:number,grid:number,type:number,correlationId:number}
 // type for emitter.excel
 export type xlsEmitterInfo = {id:number,name:string,icon:string,quality:number,type:number,upLimit:number,restoreInterval:number,restoreNum:number,prop:number[],demand:number[],chargingType:number,chargingCost:number[],expiryTime:number}
 // type for equip.excel
@@ -50,27 +50,27 @@ export type xlsTaskMain = {id:string,nextid:string,kind:string,need:number,item:
 // type for wing.excel
 
 export class XlsConfig {
-    xlsChapterInfo: xlsChapterInfo[]
-    xlsChapterLayout: xlsChapterLayout[]
     xlsAudioInfo: xlsAudioInfo[]
-    xlsKaiqiInfo: xlsKaiqiInfo[]
     xlsEmitterInfo: xlsEmitterInfo[]
+    xlsLanguageClientText: xlsLanguageClientText[]
     xlsItemKind: xlsItemKind[]
     xlsItemInfo: xlsItemInfo[]
-    xlsLanguageClientText: xlsLanguageClientText[]
+    xlsGuideInfo: xlsGuideInfo[]
+    xlsLevelLevel: xlsLevelLevel[]
     xlsEquipInfo: xlsEquipInfo[]
+    xlsKaiqiInfo: xlsKaiqiInfo[]
     xlsAttrAttr: xlsAttrAttr[]
-    xlsNameName: xlsNameName[]
-    xlsLevelLevel: xlsLevelLevel[]
-    xlsMergeInfo: xlsMergeInfo[]
+    xlsPackageInfo: xlsPackageInfo[]
     xlsLanguageSeverHouduan: xlsLanguageSeverHouduan[]
-    xlsPingbiciInfo: xlsPingbiciInfo[]
     xlsMergePropInfo: xlsMergePropInfo[]
+    xlsChapterInfo: xlsChapterInfo[]
+    xlsChapterLayout: xlsChapterLayout[]
+    xlsMergeInfo: xlsMergeInfo[]
+    xlsNameName: xlsNameName[]
+    xlsPingbiciInfo: xlsPingbiciInfo[]
     xlsTaskDesc: xlsTaskDesc[]
     xlsTaskMain: xlsTaskMain[]
-    xlsPackageInfo: xlsPackageInfo[]
     xlsMathInfo: xlsMathInfo[]
-    xlsGuideInfo: xlsGuideInfo[]
     xlsLanguageLang: xlsLanguageLang[]
 
     constructor(bundleName:string, callback: Function, progressCallback?: Function) {

+ 11 - 0
assets/script/data/model/GridMap/GridMapModel.ts

@@ -101,6 +101,17 @@ export default class GridMapModel extends GridMapModelData {
 
     }
 
+    /** 请求格子战斗 */
+    async sendFightHc(gzid: number) {
+        let ret = await GameDataCenter.gameServer.ReqApi("fight/FightHc", { gzid: gzid.toString() });
+        if (ret?.res) {
+            if (ret.res.win) {
+                EventMng.emit(GridEvent.HC_FIGHT_OVER, { gzid: gzid, list: ret.res.list });
+            }
+        }
+
+    }
+
     /** 尝试合成 */
     public async TryMergeItems(fromCell: UECell, toCell: UECell) {
         //检测目标格子物品是否可以拖动

+ 1 - 0
assets/script/logic/gridMap/GridEvent.ts

@@ -6,4 +6,5 @@ export class GridEvent {
     static readonly TRIGGER_EMITTER = "TRIGGER_EMITTER";//触发发射器生成道具
     static readonly HC_SP_UP = "HC_SP_UP";//体力刷新
     static readonly HC_MERGE_TIP = "HC_MERGE_TIP";//合成提示
+    static readonly HC_FIGHT_OVER = "HC_FIGHT_OVER";//打怪结束
 }

+ 18 - 3
assets/script/logic/gridMap/UECell.ts

@@ -38,7 +38,7 @@ export default class UECell extends UEBase {
     }
 
     SetQuality() {
-        if (this.cellData.ueCube) {
+        if (this.cellData.ueCube && !this.IsLock()) {
             this.cellData.ueCube.SetZIndex(this.cellData.zIndex);
             let quality = this.cellData.ueCube.GetQuality();
             this.sp_quality.setSpriteFrame('gridMap', `qualityBg/Img_zjm_diban0${quality}`);
@@ -47,8 +47,23 @@ export default class UECell extends UEBase {
         }
     }
 
+    IsLock(): boolean {
+        return this.cellData.unlock == HcUnlock.off;
+    }
+
     SetLock() {
-        this.node_lock.active = this.cellData.unlock == HcUnlock.off;
+        if (this.cellData.unlock == HcUnlock.off) {
+            this.node_lock.active = true;
+            if (this.cellData.ueCube) {
+                this.cellData.ueCube.node.active = false;
+            }
+        } else {
+            this.node_lock.active = false;
+            if (this.cellData.ueCube) {
+                this.cellData.ueCube.node.active = true;
+            }
+        }
+
     }
 
     GetZIndex() {
@@ -62,7 +77,7 @@ export default class UECell extends UEBase {
 
     /** 是否有物品可以拖动 */
     CanDrag(): boolean {
-        return !this.IsEmpty() && this.cellData.ueCube.CanDrag();
+        return !this.IsEmpty() && this.cellData.ueCube.CanDrag() && !this.IsLock();
     }
 
     GetCube(): UECube {

+ 6 - 0
assets/script/logic/gridMap/UECube.ts

@@ -30,16 +30,21 @@ export default class UECube extends UEBase {
     private lbt_key: cc.Label = null!;
     @property(ResSprite)
     private sp_item: ResSprite = null!;
+    @property(cc.Node)
+    private node_emitter_num: cc.Node = null!;
+
     cubeData: I_CubeData = null!;
     quality: number = 0;
     ueHomeRole: UEHomeRole = null!;
     Init(cubeData: I_CubeData) {
         this.cubeData = cubeData;
         this.SetZIndex(cubeData.zIndex);
+        this.node_emitter_num.active = false;
         if (cubeData.type == HcType.emitter) {
             let mergePropCfg = Gamecfg.emitterInfo.getItem(cubeData.id.toString());
             this.sp_item.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg.icon}`);
             // this.quality = mergePropCfg.
+            this.node_emitter_num.active = true;
         } else if (cubeData.type == HcType.material) {
             let mergePropCfg = Gamecfg.mergePropInfo.getItem(cubeData.id.toString());
             this.sp_item.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg.icon}`);
@@ -72,6 +77,7 @@ export default class UECube extends UEBase {
             GameDataCenter.gridMap.sendEmitter(this.cubeData.zIndex);
         } else if (this.cubeData.type == HcType.monster) {
             CC_PREVIEW && console.log("点击怪物开始战斗");
+            GameDataCenter.gridMap.sendFightHc(this.cubeData.zIndex);
         } else if (this.cubeData.type == HcType.equip) {
 
         }

+ 42 - 29
assets/script/logic/gridMap/UEGridMap.ts

@@ -61,6 +61,7 @@ export default class UEGridMap extends UEBase {
         this.initEvent(GridEvent.TRIGGER_EMITTER, this.TriggerEmitter);
         this.initEvent(GridEvent.HC_INFO_RSP, this.LoadMapData);
         this.initEvent(GridEvent.HC_MERGE_RSP, this.OnHcMergeRsp);
+        this.initEvent(GridEvent.HC_FIGHT_OVER, this.OnHcFightOver);
     }
 
 
@@ -99,6 +100,25 @@ export default class UEGridMap extends UEBase {
         }
     }
 
+    private OnHcFightOver(data: { gzid: number, list: { [gzid: string]: HcInfoGeziInfo } }) {
+        let cell = this.cellMap[data.gzid];
+        cell.ClearCube();
+        for (let key in data.list) {
+            let geziData = data.list[key];
+            if (geziData.type != 0) {
+                let curCell = this.cellMap[Number(key)];
+                let vec = GameDataCenter.gridMap.TranIdxToPos(Number(key));
+                let mergeCube = this.CreateCube(vec.y, vec.x);
+                mergeCube.Init({
+                    type: geziData.type,
+                    id: geziData.correlationId,
+                    zIndex: Number(key),
+                });
+                curCell.SetCube(mergeCube);
+            }
+        }
+    }
+
     private OnHcMergeRsp(data: { cell: UECell, cube: HcInfoGeziInfo }) {
         let vec = GameDataCenter.gridMap.TranIdxToPos(data.cell.GetZIndex());
         let mergeCube = this.CreateCube(vec.y, vec.x);
@@ -143,21 +163,26 @@ export default class UEGridMap extends UEBase {
             if (this.selectedCell) {
                 this.selectedCell.SetSelect(false);
             }
-            if (!cell.IsEmpty()) {
+            if (!cell.IsEmpty() && !cell.IsLock()) {
                 if (cell.CanDrag()) {
                     this.dragStartPos = touchPos;
-                    if (this.selectedCell && this.selectedCell != cell) {
-                        this.clickCnt = 1;
-                    } else if (!this.selectedCell) {
-                        this.clickCnt = 1;
-                    }
+                }
+                // if (this.selectedCell && this.selectedCell != cell) {
+                //     this.clickCnt = 1;
+                // } else if (!this.selectedCell) {
+                //     this.clickCnt = 1;
+                // }
+                if (this.selectedCell != cell) {
+                    this.clickCnt = 1;
                 }
                 this.selectedCell = cell;
                 cell.SetSelect(true);
             } else {
                 this.selectedCell = null;
+                this.clickCnt = 0;
             }
-
+        } else {
+            this.clickCnt = 0;
         }
     }
 
@@ -250,21 +275,6 @@ export default class UEGridMap extends UEBase {
         return null;
     }
 
-
-
-
-
-    /** 获取空格子 */
-    private GetEmptyCell(): UECell {
-        for (const key in this.cellMap) {
-            const element = this.cellMap[key];
-            if (element.IsEmpty()) {
-                return element;
-            }
-        }
-        return null;
-    }
-
     /** 发射出新的物品 */
     private TriggerEmitter(data: { idx: number, item: HcInfoGeziInfo, targetIdx: number }) {
         let targetCell = this.cellMap[data.targetIdx];
@@ -279,11 +289,6 @@ export default class UEGridMap extends UEBase {
         mergeCube.SetZIndex(1000);
         let targetPos = GameDataCenter.gridMap.TranIdxToPos(data.targetIdx);
 
-        // 设置动画时间
-        const duration = 0.8;
-        // 设置最大高度(向上弹跳的高度)
-        const maxHeight = 400;
-
         // 计算起点和终点
         const startWorldPos = mergeCube.node.getPosition();
         const endWorldPos = GameDataCenter.gridMap.GetPosByVec(targetPos.y, targetPos.x);
@@ -293,6 +298,14 @@ export default class UEGridMap extends UEBase {
         const totalDistance = moveVec.mag();
         const normalizedDir = moveVec.normalize();
 
+        // 根据距离动态计算动画时间(距离越远,时间越长)
+        const baseDuration = 0.5; // 基础动画时间
+        const distanceFactor = totalDistance / 300; // 假设300是标准距离
+        const duration = Math.min(baseDuration + distanceFactor * 0.3, 1.2); // 限制最大时间为1.2秒
+
+        // 设置最大高度(向上弹跳的高度)
+        const maxHeight = 400;
+
         // 计算最后弹跳的起点(在终点前20%距离处)
         const bounceStartPos = cc.v3(
             endWorldPos.x - normalizedDir.x * (totalDistance * 0.2),
@@ -345,8 +358,8 @@ export default class UEGridMap extends UEBase {
 
         // 创建动作序列
         const bezierAction1 = cc.bezierTo(duration * 0.7, bezier1);
-        const bezierAction2 = cc.bezierTo(duration * 0.2, bezier2);
-        const bezierAction3 = cc.bezierTo(duration * 0.1, bezier3);
+        const bezierAction2 = cc.bezierTo(duration * 0.18, bezier2);
+        const bezierAction3 = cc.bezierTo(duration * 0.12, bezier3);
 
         const seq = cc.sequence(
             bezierAction1,

+ 2 - 2
assets/script/logic/gridMap/UEMergeTip.ts

@@ -49,7 +49,7 @@ export default class UEMergeTip extends UEBase {
                 itemNode.getComponent(UEMergeTipItem).Init({ data: mergeArr[i - 1] });
             }
             EventMng.emit(GridEvent.HC_MERGE_TIP, { isShow: true, mergeArr: mergeArr });
-            if (this.data.dir == 1) {
+            if (this.data.dir == 2) {
                 //补充旋转角度
                 this.bg.angle = 25;
             } else {
@@ -79,7 +79,7 @@ export default class UEMergeTip extends UEBase {
 
         // 计算每个元素之间的角度
         const angleStep = 60; // 相邻两个元素之间的角度
-        const startAngle = (this.data.dir == 2 ? 60 : 120) + -total * angleStep / 2 + angleStep / 2; // 从90度(正上方)开始,向右分布
+        const startAngle = (this.data.dir == 1 ? 60 : 120) + -total * angleStep / 2 + angleStep / 2; // 从90度(正上方)开始,向右分布
 
         // 计算当前元素的角度(角度转弧度)
         const angle = (startAngle + index * angleStep) * Math.PI / 180; // 减去角度使其向右分布

+ 9 - 0
assets/script/logic/gridMap/UEMergeTipItem.ts

@@ -18,6 +18,8 @@ export default class UEMergeTipItem extends UEBase {
     static readonly PrefabUrl: string = "UEMergeTipItem";
     static readonly CLS: string = "UEMergeTipItem";
     @property(ResSprite)
+    sp_quality: ResSprite = null!;
+    @property(ResSprite)
     sp_icon: ResSprite = null!;
     @property(cc.Node)
     node_lock: cc.Node = null!;
@@ -35,16 +37,23 @@ export default class UEMergeTipItem extends UEBase {
             this.node.active = true;
             this.node_lock.active = false;
             this.sp_icon.node.active = true;
+            let quality = 0;
+
             if (data.type == HcType.emitter) {
                 let mergePropCfg = Gamecfg.emitterInfo.getItem(data.id.toString());
                 this.sp_icon.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg?.icon}`);
+                quality = mergePropCfg.quality;
             } else if (data.type == HcType.material) {
                 let mergePropCfg = Gamecfg.mergePropInfo.getItem(data.id.toString());
                 this.sp_icon.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg?.icon}`);
+                quality = mergePropCfg.quality;
             } else if (data.type == HcType.equip) {
                 let mergePropCfg = Gamecfg.equipInfo.getItem(data.id.toString());
                 this.sp_icon.setSpriteFrame('gridMap', `mergeEquip/${mergePropCfg?.icon}`);
+                quality = mergePropCfg.quality;
             }
+            this.sp_quality.setSpriteFrame('gridMap', `images/Img_zjm_pinzhi0${quality}`);
+
         } else {
             this.node.active = false;
         }

+ 60 - 0
assets/script/shared/base.ts

@@ -10,6 +10,66 @@ export interface BaseMessage {
 
 }
 
+/**
+* 返回信息
+*/
+export interface FightBase {
+    fightStart:FightStart; //战斗阵容
+    win: number; //0失败 1胜利
+    log: {
+        //战斗日志列表
+        //回合ID:单回合内战斗日志
+        [huihe: string]: fightLogOne[];
+    };
+}
+
+
+/**
+ * 战斗初始阵容
+ */
+export interface FightStart {
+    from: string; //战斗类型
+    seed: number; //随机种子
+    teams: {
+        [iid: string]: FightTeam;
+    };
+}
+/**
+ * 单个阵容信息
+ */
+export interface FightTeam {
+    fid: string; //业务中身份
+    seat: number //位置
+    eps: {[id:string]:number}; //属性
+}
+
+//单回合内战斗日志
+export interface fightLogOne {
+    aType: ActionType; //战斗动作类型
+    seat:number, //位置
+    atker: fightLogOneData; //出手方
+    target: fightLogOneData[]; //目标
+}
+/**
+ * 战斗动作类型
+ */
+export enum ActionType {
+    wu = "wu", //默认没有 不处理
+    round = "0", //回合开始 玩家出手前
+    buff = "1", //buff
+    atk = "2", //普通攻击
+    wxsk = "3", //技能
+    over = "999", //回合结束
+}
+/**
+ * 日志格式
+ */
+export interface fightLogOneData {
+    iid: string; //阵容下标
+    hp: number; //剩余血量
+    buff: [string, number][]; //上BUFF [ [BuffID,回合数]]
+    effect: [string, number][]; //触发效果 [ [属性key,数值]]
+}
 
 
 //查看他人角色基础信息

+ 1 - 1
assets/script/shared/common/MsgItems.ts

@@ -4,6 +4,6 @@
  * 道具变化
  */
 export interface MsgItems {
-    items:number[]
+    items:number[][]
 }
 

+ 26 - 0
assets/script/shared/fight/PtlFightHc.ts

@@ -0,0 +1,26 @@
+import { FightBase } from "../base"
+import { HcInfoGeziInfo } from "../hc/PtlHcInfo";
+
+
+/**
+* 请求接口 合成战斗
+*/
+export interface ReqFightHc {
+    gzid:string
+}
+
+/**
+* 返回信息
+*/
+export interface ResFightHc extends FightBase  {
+    list:{
+        [gzid: string]: HcInfoGeziInfo;
+    },
+}
+
+export const conf = {
+    connet: "ws"
+}
+
+
+

+ 10 - 0
assets/script/shared/fight/PtlFightHc.ts.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "e8998ec1-008e-4480-8994-6d245e862773",
+  "importer": "typescript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 3 - 54
assets/script/shared/fight/PtlFightTest.ts

@@ -1,3 +1,4 @@
+import { FightBase, fightLogOne, FightStart } from "../base";
 
 
 /**
@@ -10,60 +11,8 @@ export interface ReqFightTest {
 /**
 * 返回信息
 */
-export interface ResFightTest {
-    fightStart:FightStart; //战斗阵容
-    win: number; //0失败 1胜利
-    log: {
-        //战斗日志列表
-        //回合ID:单回合内战斗日志
-        [huihe: string]: fightLogOne[];
-    };
-}
-/**
- * 战斗初始阵容
- */
-export interface FightStart {
-    from: string; //战斗类型
-    seed: number; //随机种子
-    teams: {
-        [iid: string]: FightTeam;
-    };
-}
-/**
- * 单个阵容信息
- */
-export interface FightTeam {
-    fid: string; //业务中身份
-    seat: number //位置
-    eps: {[id:string]:number}; //属性
-}
-
-//单回合内战斗日志
-export interface fightLogOne {
-    aType: ActionType; //战斗动作类型
-    seat:number, //位置
-    atker: fightLogOneData; //出手方
-    target: fightLogOneData[]; //目标
-}
-/**
- * 战斗动作类型
- */
-export enum ActionType {
-    wu = "wu", //默认没有 不处理
-    round = "0", //回合开始 玩家出手前
-    buff = "1", //buff
-    atk = "2", //普通攻击
-    wxsk = "3", //技能
-    over = "999", //回合结束
-}
-/**
- * 日志格式
- */
-export interface fightLogOneData {
-    iid: string; //阵容下标
-    hp: number; //剩余血量
-    buff: [string, number][]; //上BUFF [ [BuffID,回合数]]
-    effect: [string, number][]; //触发效果 [ [属性key,数值]]
+export interface ResFightTest extends FightBase {
+    
 }
 
 export const conf = {

+ 2 - 2
assets/script/shared/hc/PtlHcInfo.ts

@@ -38,8 +38,8 @@ export enum HcType {
 }
 //解锁状态
 export enum HcUnlock {
-    off = 0, //关
-    on = 1, //开
+    off = 1, //关
+    on = 0, //开
 }
 
 export const conf = {

+ 1 - 1
assets/script/shared/item/server/MsgItemChange_s.ts

@@ -4,6 +4,6 @@
  * 后端推送道具变化信息
  */
 export interface MsgItemChange_s {
-    [itemid:string]:number
+    items:number[][]
 }
 

+ 123 - 46
assets/script/shared/serviceProto.ts

@@ -28,6 +28,7 @@ import { MsgItems } from './common/MsgItems';
 import { MsgMessage } from './common/MsgMessage';
 import { ReqEpsInfo, ResEpsInfo } from './eps/PtlEpsInfo';
 import { MsgEpsChange_s } from './eps/server/MsgEpsChange_s';
+import { ReqFightHc, ResFightHc } from './fight/PtlFightHc';
 import { ReqFightTest, ResFightTest } from './fight/PtlFightTest';
 import { ReqHcEmit, ResHcEmit } from './hc/PtlHcEmit';
 import { ReqHcInfo, ResHcInfo } from './hc/PtlHcInfo';
@@ -153,6 +154,10 @@ export interface ServiceType {
             req: ReqEpsInfo,
             res: ResEpsInfo
         },
+        "fight/FightHc": {
+            req: ReqFightHc,
+            res: ResFightHc
+        },
         "fight/FightTest": {
             req: ReqFightTest,
             res: ResFightTest
@@ -239,7 +244,7 @@ export interface ServiceType {
 }
 
 export const serviceProto: ServiceProto<ServiceType> = {
-    "version": 60,
+    "version": 62,
     "services": [
         {
             "id": 39,
@@ -462,6 +467,14 @@ export const serviceProto: ServiceProto<ServiceType> = {
             "type": "msg"
         },
         {
+            "id": 90,
+            "name": "fight/FightHc",
+            "type": "api",
+            "conf": {
+                "connet": "ws"
+            }
+        },
+        {
             "id": 86,
             "name": "fight/FightTest",
             "type": "api",
@@ -1357,7 +1370,10 @@ export const serviceProto: ServiceProto<ServiceType> = {
                     "type": {
                         "type": "Array",
                         "elementType": {
-                            "type": "Number"
+                            "type": "Array",
+                            "elementType": {
+                                "type": "Number"
+                            }
                         }
                     }
                 }
@@ -1396,10 +1412,47 @@ export const serviceProto: ServiceProto<ServiceType> = {
                 }
             }
         },
-        "fight/PtlFightTest/ReqFightTest": {
-            "type": "Interface"
+        "fight/PtlFightHc/ReqFightHc": {
+            "type": "Interface",
+            "properties": [
+                {
+                    "id": 0,
+                    "name": "gzid",
+                    "type": {
+                        "type": "String"
+                    }
+                }
+            ]
         },
-        "fight/PtlFightTest/ResFightTest": {
+        "fight/PtlFightHc/ResFightHc": {
+            "type": "Interface",
+            "extends": [
+                {
+                    "id": 0,
+                    "type": {
+                        "type": "Reference",
+                        "target": "base/FightBase"
+                    }
+                }
+            ],
+            "properties": [
+                {
+                    "id": 0,
+                    "name": "list",
+                    "type": {
+                        "type": "Interface",
+                        "indexSignature": {
+                            "keyType": "String",
+                            "type": {
+                                "type": "Reference",
+                                "target": "hc/PtlHcInfo/HcInfoGeziInfo"
+                            }
+                        }
+                    }
+                }
+            ]
+        },
+        "base/FightBase": {
             "type": "Interface",
             "properties": [
                 {
@@ -1407,7 +1460,7 @@ export const serviceProto: ServiceProto<ServiceType> = {
                     "name": "fightStart",
                     "type": {
                         "type": "Reference",
-                        "target": "fight/PtlFightTest/FightStart"
+                        "target": "base/FightStart"
                     }
                 },
                 {
@@ -1428,7 +1481,7 @@ export const serviceProto: ServiceProto<ServiceType> = {
                                 "type": "Array",
                                 "elementType": {
                                     "type": "Reference",
-                                    "target": "fight/PtlFightTest/fightLogOne"
+                                    "target": "base/fightLogOne"
                                 }
                             }
                         }
@@ -1436,7 +1489,7 @@ export const serviceProto: ServiceProto<ServiceType> = {
                 }
             ]
         },
-        "fight/PtlFightTest/FightStart": {
+        "base/FightStart": {
             "type": "Interface",
             "properties": [
                 {
@@ -1462,14 +1515,14 @@ export const serviceProto: ServiceProto<ServiceType> = {
                             "keyType": "String",
                             "type": {
                                 "type": "Reference",
-                                "target": "fight/PtlFightTest/FightTeam"
+                                "target": "base/FightTeam"
                             }
                         }
                     }
                 }
             ]
         },
-        "fight/PtlFightTest/FightTeam": {
+        "base/FightTeam": {
             "type": "Interface",
             "properties": [
                 {
@@ -1501,7 +1554,7 @@ export const serviceProto: ServiceProto<ServiceType> = {
                 }
             ]
         },
-        "fight/PtlFightTest/fightLogOne": {
+        "base/fightLogOne": {
             "type": "Interface",
             "properties": [
                 {
@@ -1509,7 +1562,7 @@ export const serviceProto: ServiceProto<ServiceType> = {
                     "name": "aType",
                     "type": {
                         "type": "Reference",
-                        "target": "fight/PtlFightTest/ActionType"
+                        "target": "base/ActionType"
                     }
                 },
                 {
@@ -1524,7 +1577,7 @@ export const serviceProto: ServiceProto<ServiceType> = {
                     "name": "atker",
                     "type": {
                         "type": "Reference",
-                        "target": "fight/PtlFightTest/fightLogOneData"
+                        "target": "base/fightLogOneData"
                     }
                 },
                 {
@@ -1534,13 +1587,13 @@ export const serviceProto: ServiceProto<ServiceType> = {
                         "type": "Array",
                         "elementType": {
                             "type": "Reference",
-                            "target": "fight/PtlFightTest/fightLogOneData"
+                            "target": "base/fightLogOneData"
                         }
                     }
                 }
             ]
         },
-        "fight/PtlFightTest/ActionType": {
+        "base/ActionType": {
             "type": "Enum",
             "members": [
                 {
@@ -1569,7 +1622,7 @@ export const serviceProto: ServiceProto<ServiceType> = {
                 }
             ]
         },
-        "fight/PtlFightTest/fightLogOneData": {
+        "base/fightLogOneData": {
             "type": "Interface",
             "properties": [
                 {
@@ -1624,28 +1677,6 @@ export const serviceProto: ServiceProto<ServiceType> = {
                 }
             ]
         },
-        "hc/PtlHcEmit/ReqHcEmit": {
-            "type": "Interface",
-            "properties": [
-                {
-                    "id": 0,
-                    "name": "gzid",
-                    "type": {
-                        "type": "String"
-                    }
-                }
-            ]
-        },
-        "hc/PtlHcEmit/ResHcEmit": {
-            "type": "Interface",
-            "indexSignature": {
-                "keyType": "String",
-                "type": {
-                    "type": "Reference",
-                    "target": "hc/PtlHcInfo/HcInfoGeziInfo"
-                }
-            }
-        },
         "hc/PtlHcInfo/HcInfoGeziInfo": {
             "type": "Interface",
             "properties": [
@@ -1707,15 +1738,52 @@ export const serviceProto: ServiceProto<ServiceType> = {
             "type": "Enum",
             "members": [
                 {
+                    "id": 1,
+                    "value": 1
+                },
+                {
                     "id": 0,
                     "value": 0
-                },
+                }
+            ]
+        },
+        "fight/PtlFightTest/ReqFightTest": {
+            "type": "Interface"
+        },
+        "fight/PtlFightTest/ResFightTest": {
+            "type": "Interface",
+            "extends": [
                 {
-                    "id": 1,
-                    "value": 1
+                    "id": 0,
+                    "type": {
+                        "type": "Reference",
+                        "target": "base/FightBase"
+                    }
                 }
             ]
         },
+        "hc/PtlHcEmit/ReqHcEmit": {
+            "type": "Interface",
+            "properties": [
+                {
+                    "id": 0,
+                    "name": "gzid",
+                    "type": {
+                        "type": "String"
+                    }
+                }
+            ]
+        },
+        "hc/PtlHcEmit/ResHcEmit": {
+            "type": "Interface",
+            "indexSignature": {
+                "keyType": "String",
+                "type": {
+                    "type": "Reference",
+                    "target": "hc/PtlHcInfo/HcInfoGeziInfo"
+                }
+            }
+        },
         "hc/PtlHcInfo/ReqHcInfo": {
             "type": "Interface"
         },
@@ -1828,12 +1896,21 @@ export const serviceProto: ServiceProto<ServiceType> = {
         },
         "item/server/MsgItemChange_s/MsgItemChange_s": {
             "type": "Interface",
-            "indexSignature": {
-                "keyType": "String",
-                "type": {
-                    "type": "Number"
+            "properties": [
+                {
+                    "id": 0,
+                    "name": "items",
+                    "type": {
+                        "type": "Array",
+                        "elementType": {
+                            "type": "Array",
+                            "elementType": {
+                                "type": "Number"
+                            }
+                        }
+                    }
                 }
-            }
+            ]
         },
         "mail/PtlMailDelAll/ReqMailDelAll": {
             "type": "Interface"