diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.json b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.json
deleted file mode 100644
index b659ec84..00000000
--- a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.json
+++ /dev/null
@@ -1 +0,0 @@
-{"skeleton":{"hash":"NjFXZWlty76fb0bhzSazhcj6jEo","spine":"3.5.51","width":100.08,"height":113.76,"images":"./pic/"},"bones":[{"name":"root"},{"name":"scale","parent":"root","x":0.39,"y":-1.81,"scaleX":0.72,"scaleY":0.72},{"name":"jifei","parent":"scale","x":4.68,"y":71.76},{"name":"shenti","parent":"jifei","length":44.42,"rotation":87.31,"x":-1.08,"y":-59.93},{"name":"beimian","parent":"shenti","length":88.49,"rotation":-61.8,"x":50.61,"y":57.25},{"name":"jiao1","parent":"shenti","length":26.87,"rotation":-169.49,"x":7.06,"y":16.53},{"name":"jiao2","parent":"shenti","length":27.69,"rotation":-179.47,"x":13.31,"y":50.27},{"name":"jiao3","parent":"shenti","length":21.71,"rotation":-167.62,"x":12.77,"y":-38.07},{"name":"jiao4","parent":"shenti","length":22.47,"rotation":-174.64,"x":11.22,"y":-5.22},{"name":"yan","parent":"beimian","x":75.26,"y":-16.82},{"name":"ye","parent":"beimian","x":83.03,"y":43.09}],"slots":[{"name":"jiao3","bone":"jiao3","attachment":"guaiA1a/jiao3"},{"name":"jiao4","bone":"jiao4","attachment":"guaiA1a/jiao4"},{"name":"beimian","bone":"beimian","attachment":"guaiA1a/beimian"},{"name":"yan","bone":"yan","attachment":"guaiA1a/yan"},{"name":"ye","bone":"ye","attachment":"guaiA1a/ye"},{"name":"shenti","bone":"shenti","attachment":"guaiA1a/shenti"},{"name":"jiao2","bone":"jiao2","attachment":"guaiA1a/jiao2"},{"name":"jiao1","bone":"jiao1","attachment":"guaiA1a/jiao1"}],"skins":{"default":{"beimian":{"guaiA1a/beimian":{"x":53.69,"y":-3.82,"rotation":-25.51,"width":125,"height":115}},"jiao1":{"guaiA1a/jiao1":{"x":12.5,"y":-0.23,"rotation":82.18,"width":29,"height":34}},"jiao2":{"guaiA1a/jiao2":{"x":12.73,"y":0.86,"rotation":92.16,"width":30,"height":37}},"jiao3":{"guaiA1a/jiao3":{"x":-3.7,"y":-18.99,"rotation":80.31,"width":71,"height":54}},"jiao4":{"guaiA1a/jiao4":{"x":-1.4,"y":-20.41,"rotation":87.34,"width":71,"height":54}},"shenti":{"guaiA1a/shenti":{"x":25.16,"y":5.9,"rotation":-87.31,"width":139,"height":70}},"yan":{"guaiA1a/yan":{"x":-2.58,"y":1.72,"rotation":-25.51,"width":43,"height":19}},"ye":{"guaiA1a/ye":{"x":-5.56,"y":-14.5,"rotation":-25.51,"width":86,"height":48}}}},"animations":{"atk":{"bones":{"beimian":{"rotate":[{"time":0,"angle":1.1},{"time":0.5,"angle":-1.28},{"time":0.6333,"angle":17.94},{"time":0.7,"angle":-2.47},{"time":1,"angle":1.1}],"translate":[{"time":0,"x":-1.89,"y":-0.1},{"time":0.5,"x":-6.86,"y":-0.37},{"time":0.7,"x":-9.01,"y":-0.49},{"time":1,"x":-1.89,"y":-0.1}]},"ye":{"rotate":[{"time":0,"angle":0.16},{"time":0.5,"angle":-6.51},{"time":0.6333,"angle":13.57},{"time":1,"angle":0.16}]},"shenti":{"rotate":[{"time":0,"angle":-0.42,"curve":"stepped"},{"time":1,"angle":-0.42}],"translate":[{"time":0,"x":0,"y":0.63},{"time":0.5,"x":-15.77,"y":-0.2},{"time":0.6333,"x":26.56,"y":-1.86},{"time":1,"x":0,"y":0.63}]},"jiao4":{"rotate":[{"time":0,"angle":-4.66},{"time":0.5,"angle":23.77},{"time":0.6333,"angle":320.08},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0,"curve":"stepped"},{"time":1,"x":0,"y":0}]},"jiao2":{"rotate":[{"time":0,"angle":355.34},{"time":0.5,"angle":23.77},{"time":0.6333,"angle":320.08},{"time":1,"angle":355.34}],"translate":[{"time":0,"x":0,"y":0,"curve":"stepped"},{"time":1,"x":0,"y":0}]},"jiao3":{"rotate":[{"time":0,"angle":-4.66},{"time":0.5,"angle":23.77},{"time":0.6333,"angle":320.08},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0,"curve":"stepped"},{"time":1,"x":0,"y":0}]},"jiao1":{"rotate":[{"time":0,"angle":-4.66},{"time":0.5,"angle":23.77},{"time":0.6333,"angle":320.08},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0,"curve":"stepped"},{"time":1,"x":0,"y":0}]}}},"jifei":{"bones":{"jifei":{"rotate":[{"time":0,"angle":-0.91},{"time":0.0667,"angle":63.87},{"time":0.1333,"angle":132.99},{"time":0.2,"angle":-104.76},{"time":0.2667,"angle":-0.91}]},"jiao3":{"rotate":[{"time":0.2667,"angle":-4.66}],"translate":[{"time":0.2667,"x":0,"y":0}]},"jiao2":{"rotate":[{"time":0.2667,"angle":355.34}],"translate":[{"time":0.2667,"x":0,"y":0}]},"jiao4":{"rotate":[{"time":0.2667,"angle":-4.66}],"translate":[{"time":0.2667,"x":0,"y":0}]},"jiao1":{"rotate":[{"time":0.2667,"angle":-4.66}],"translate":[{"time":0.2667,"x":0,"y":0}]},"beimian":{"rotate":[{"time":0.2667,"angle":1.1}],"translate":[{"time":0.2667,"x":-1.89,"y":-0.1}]},"shenti":{"rotate":[{"time":0.2667,"angle":-0.42}],"translate":[{"time":0.2667,"x":0,"y":0.63}]},"ye":{"rotate":[{"time":0.2667,"angle":0.16}]}}},"std":{"slots":{"yan":{"attachment":[{"time":0.2667,"name":null},{"time":0.5,"name":"guaiA1a/yan"}]}},"bones":{"shenti":{"rotate":[{"time":0,"angle":-0.42,"curve":"stepped"},{"time":1,"angle":-0.42}],"translate":[{"time":0,"x":0,"y":0.63},{"time":0.5,"x":0,"y":-3.15},{"time":1,"x":0,"y":0.63}]},"beimian":{"rotate":[{"time":0,"angle":1.1,"curve":"stepped"},{"time":1,"angle":1.1}],"translate":[{"time":0,"x":-1.89,"y":-0.1},{"time":0.5,"x":8.56,"y":0.47},{"time":1,"x":-1.89,"y":-0.1}]},"ye":{"rotate":[{"time":0,"angle":0.16},{"time":0.5,"angle":8.71},{"time":1,"angle":0.16}]},"jiao1":{"rotate":[{"time":0,"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0},{"time":0.5,"x":3.15,"y":0.17},{"time":1,"x":0,"y":0}]},"jiao2":{"rotate":[{"time":0,"angle":355.34,"curve":"stepped"},{"time":1,"angle":355.34}],"translate":[{"time":0,"x":0,"y":0},{"time":0.5,"x":3.15,"y":0.17},{"time":1,"x":0,"y":0}]},"jiao3":{"rotate":[{"time":0,"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0},{"time":0.5,"x":3.15,"y":0.17},{"time":1,"x":0,"y":0}]},"jiao4":{"rotate":[{"time":0,"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0},{"time":0.5,"x":3.15,"y":0.17},{"time":1,"x":0,"y":0}]}}},"std2":{"slots":{"yan":{"attachment":[{"time":0.2667,"name":null},{"time":0.5,"name":"guaiA1a/yan"}]}},"bones":{"shenti":{"rotate":[{"time":0,"angle":-0.42,"curve":"stepped"},{"time":1,"angle":-0.42}],"translate":[{"time":0,"x":0,"y":0.63},{"time":0.5,"x":0,"y":-3.15},{"time":1,"x":0,"y":0.63}]},"beimian":{"rotate":[{"time":0,"angle":1.1,"curve":"stepped"},{"time":1,"angle":1.1}],"translate":[{"time":0,"x":-1.89,"y":-0.1},{"time":0.5,"x":8.56,"y":0.47},{"time":1,"x":-1.89,"y":-0.1}]},"ye":{"rotate":[{"time":0,"angle":0.16},{"time":0.5,"angle":8.71},{"time":1,"angle":0.16}]},"jiao1":{"rotate":[{"time":0,"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0},{"time":0.5,"x":3.15,"y":0.17},{"time":1,"x":0,"y":0}]},"jiao2":{"rotate":[{"time":0,"angle":355.34,"curve":"stepped"},{"time":1,"angle":355.34}],"translate":[{"time":0,"x":0,"y":0},{"time":0.5,"x":3.15,"y":0.17},{"time":1,"x":0,"y":0}]},"jiao3":{"rotate":[{"time":0,"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0},{"time":0.5,"x":3.15,"y":0.17},{"time":1,"x":0,"y":0}]},"jiao4":{"rotate":[{"time":0,"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0},{"time":0.5,"x":3.15,"y":0.17},{"time":1,"x":0,"y":0}]},"scale":{"scale":[{"time":0,"x":0.486,"y":0.486,"curve":"stepped"},{"time":1,"x":0.486,"y":0.486}]}}},"walk":{"bones":{"beimian":{"rotate":[{"time":0,"angle":1.1,"curve":"stepped"},{"time":0.2667,"angle":1.1},{"time":0.5,"angle":12.56},{"time":0.7667,"angle":1.1,"curve":"stepped"},{"time":1,"angle":1.1}],"translate":[{"time":0,"x":-1.89,"y":-0.1},{"time":0.2667,"x":-13.75,"y":-0.75},{"time":0.5,"x":10.75,"y":0.58},{"time":0.7667,"x":-13.75,"y":-0.75},{"time":1,"x":-1.89,"y":-0.1}]},"ye":{"rotate":[{"time":0,"angle":0.16},{"time":0.2667,"angle":-11.44},{"time":0.5,"angle":20.22},{"time":0.7667,"angle":-10.04},{"time":1,"angle":0.16}]},"shenti":{"rotate":[{"time":0,"angle":-0.42,"curve":"stepped"},{"time":0.2667,"angle":-0.42,"curve":"stepped"},{"time":0.7667,"angle":-0.42,"curve":"stepped"},{"time":1,"angle":-0.42}],"translate":[{"time":0,"x":0,"y":0.63},{"time":0.2667,"x":0,"y":-6.35},{"time":0.5,"x":0,"y":32.73},{"time":0.7667,"x":0,"y":-6.35},{"time":1,"x":0,"y":0.63}]},"jiao4":{"rotate":[{"time":0,"angle":-4.66},{"time":0.2667,"angle":353.03,"curve":"stepped"},{"time":0.7667,"angle":353.03},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0},{"time":0.2667,"x":6.97,"y":0.38,"curve":"stepped"},{"time":0.7667,"x":6.97,"y":0.38},{"time":1,"x":0,"y":0}]},"jiao2":{"rotate":[{"time":0,"angle":355.34},{"time":0.2667,"angle":7.77},{"time":0.5,"angle":317.41},{"time":0.7667,"angle":7.77},{"time":1,"angle":355.34}],"translate":[{"time":0,"x":0,"y":0},{"time":0.2667,"x":6.97,"y":0.38},{"time":0.5,"x":1.48,"y":8.05},{"time":0.7667,"x":6.97,"y":0.38},{"time":1,"x":0,"y":0}]},"jiao3":{"rotate":[{"time":0,"angle":-4.66},{"time":0.2667,"angle":346.87},{"time":0.5,"angle":22.23},{"time":0.7667,"angle":346.87},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0},{"time":0.2667,"x":6.97,"y":0.38},{"time":0.5,"x":-2.02,"y":-7.35},{"time":0.7667,"x":6.97,"y":0.38},{"time":1,"x":0,"y":0}]},"jiao1":{"rotate":[{"time":0,"angle":-4.66},{"time":0.2667,"angle":1.09},{"time":0.5,"angle":8.4},{"time":0.7667,"angle":1.09},{"time":1,"angle":-4.66}],"translate":[{"time":0,"x":0,"y":0},{"time":0.2667,"x":6.97,"y":0.38},{"time":0.5,"x":-4.43,"y":-3.14},{"time":0.7667,"x":6.97,"y":0.38},{"time":1,"x":0,"y":0}]}}}}}
\ No newline at end of file
diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.png b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.png
deleted file mode 100644
index e474557b..00000000
Binary files a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.png and /dev/null differ
diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.spine b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.spine
index 0ba1b7f3..d6f0d364 100644
Binary files a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.spine and b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.spine differ
diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine.meta b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine.meta
new file mode 100644
index 00000000..995bf437
--- /dev/null
+++ b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine.meta
@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "91200219-cf2f-4928-b01a-a3de1f556a1e",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}
diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.atlas b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.atlas
similarity index 52%
rename from JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.atlas
rename to JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.atlas
index e475aa3d..2c72440b 100644
--- a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.atlas
+++ b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.atlas
@@ -1,62 +1,62 @@
 
 guaiA1a.png
-size: 512,128
+size: 146,288
 format: RGBA8888
 filter: Linear,Linear
 repeat: none
 guaiA1a/beimian
   rotate: false
-  xy: 2, 2
-  size: 125, 115
+  xy: 2, 173
+  size: 123, 113
   orig: 125, 115
-  offset: 0, 0
+  offset: 1, 1
   index: -1
 guaiA1a/jiao1
-  rotate: false
-  xy: 161, 11
-  size: 29, 34
+  rotate: true
+  xy: 110, 3
+  size: 27, 32
   orig: 29, 34
-  offset: 0, 0
+  offset: 1, 1
   index: -1
 guaiA1a/jiao2
-  rotate: false
-  xy: 129, 8
-  size: 30, 37
+  rotate: true
+  xy: 73, 2
+  size: 28, 35
   orig: 30, 37
-  offset: 0, 0
+  offset: 1, 1
   index: -1
 guaiA1a/jiao3
-  rotate: false
-  xy: 358, 63
-  size: 71, 54
+  rotate: true
+  xy: 88, 32
+  size: 69, 51
   orig: 71, 54
-  offset: 0, 0
+  offset: 1, 1
   index: -1
 guaiA1a/jiao4
   rotate: false
-  xy: 431, 63
-  size: 71, 54
+  xy: 2, 2
+  size: 69, 51
   orig: 71, 54
-  offset: 0, 0
+  offset: 1, 1
   index: -1
 guaiA1a/shenti
   rotate: false
-  xy: 129, 47
-  size: 139, 70
+  xy: 2, 103
+  size: 137, 68
   orig: 139, 70
-  offset: 0, 0
+  offset: 1, 1
   index: -1
 guaiA1a/yan
-  rotate: false
-  xy: 270, 48
-  size: 43, 19
+  rotate: true
+  xy: 127, 245
+  size: 41, 17
   orig: 43, 19
-  offset: 0, 0
+  offset: 1, 1
   index: -1
 guaiA1a/ye
   rotate: false
-  xy: 270, 69
-  size: 86, 48
+  xy: 2, 55
+  size: 84, 46
   orig: 86, 48
-  offset: 0, 0
+  offset: 1, 1
   index: -1
diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.atlas.meta b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.atlas.meta
similarity index 73%
rename from JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.atlas.meta
rename to JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.atlas.meta
index c8076204..31fa8a01 100644
--- a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.atlas.meta
+++ b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.atlas.meta
@@ -2,7 +2,7 @@
   "ver": "1.0.1",
   "importer": "*",
   "imported": true,
-  "uuid": "73de6ac4-0559-42d0-b426-1f0c681fd5ab",
+  "uuid": "9eb72656-748d-4794-8dac-4b7299e6cd39",
   "files": [
     ".atlas",
     ".json"
diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.json b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.json
new file mode 100644
index 00000000..edb57bf6
--- /dev/null
+++ b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.json
@@ -0,0 +1 @@
+{"skeleton":{"hash":"Dbo+3u9wKOWpBQSL3xGAbdPiqEE","spine":"3.8.75","x":-50.45,"y":-8.84,"width":100.08,"height":113.76},"bones":[{"name":"root"},{"name":"scale","parent":"root","x":0.39,"y":-1.81,"scaleX":0.72,"scaleY":0.72},{"name":"jifei","parent":"scale","x":4.68,"y":71.76},{"name":"shenti","parent":"jifei","length":44.42,"rotation":87.31,"x":-1.08,"y":-59.93},{"name":"beimian","parent":"shenti","length":88.49,"rotation":-61.8,"x":50.61,"y":57.25},{"name":"yan","parent":"beimian","x":75.26,"y":-16.82},{"name":"ye","parent":"beimian","x":83.03,"y":43.09},{"name":"jiao1","parent":"shenti","length":26.87,"rotation":-169.49,"x":7.06,"y":16.53},{"name":"jiao2","parent":"shenti","length":27.69,"rotation":-179.47,"x":13.31,"y":50.27},{"name":"jiao3","parent":"shenti","length":21.71,"rotation":-167.62,"x":12.77,"y":-38.07},{"name":"jiao4","parent":"shenti","length":22.47,"rotation":-174.64,"x":11.22,"y":-5.22}],"slots":[{"name":"jiao3","bone":"jiao3","attachment":"guaiA1a/jiao3"},{"name":"jiao4","bone":"jiao4","attachment":"guaiA1a/jiao4"},{"name":"beimian","bone":"beimian","attachment":"guaiA1a/beimian"},{"name":"yan","bone":"yan","attachment":"guaiA1a/yan"},{"name":"ye","bone":"ye","attachment":"guaiA1a/ye"},{"name":"shenti","bone":"shenti","attachment":"guaiA1a/shenti"},{"name":"jiao2","bone":"jiao2","attachment":"guaiA1a/jiao2"},{"name":"jiao1","bone":"jiao1","attachment":"guaiA1a/jiao1"}],"skins":[{"name":"default","attachments":{"ye":{"guaiA1a/ye":{"x":-5.56,"y":-14.5,"rotation":-25.51,"width":86,"height":48}},"beimian":{"guaiA1a/beimian":{"x":53.69,"y":-3.82,"rotation":-25.51,"width":125,"height":115}},"yan":{"guaiA1a/yan":{"x":-2.58,"y":1.72,"rotation":-25.51,"width":43,"height":19}},"jiao1":{"guaiA1a/jiao1":{"x":12.5,"y":-0.23,"rotation":82.18,"width":29,"height":34}},"jiao2":{"guaiA1a/jiao2":{"x":12.73,"y":0.86,"rotation":92.16,"width":30,"height":37}},"jiao3":{"guaiA1a/jiao3":{"x":-3.7,"y":-18.99,"rotation":80.31,"width":71,"height":54}},"jiao4":{"guaiA1a/jiao4":{"x":-1.4,"y":-20.41,"rotation":87.34,"width":71,"height":54}},"shenti":{"guaiA1a/shenti":{"x":25.16,"y":5.9,"rotation":-87.31,"width":139,"height":70}}}}],"events":{"attack":{}},"animations":{"atk":{"bones":{"beimian":{"rotate":[{"angle":1.1},{"time":0.5,"angle":-1.28},{"time":0.6333,"angle":17.94},{"time":0.7,"angle":-2.47},{"time":1,"angle":1.1}],"translate":[{"x":-1.89,"y":-0.1},{"time":0.5,"x":-6.86,"y":-0.37},{"time":0.7,"x":-9.01,"y":-0.49},{"time":1,"x":-1.89,"y":-0.1}]},"ye":{"rotate":[{"angle":0.16},{"time":0.5,"angle":-6.51},{"time":0.6333,"angle":13.57},{"time":1,"angle":0.16}]},"shenti":{"rotate":[{"angle":-0.42,"curve":"stepped"},{"time":1,"angle":-0.42}],"translate":[{"y":0.63},{"time":0.5,"x":-15.77,"y":-0.2},{"time":0.6333,"x":26.56,"y":-1.86},{"time":1,"y":0.63}]},"jiao4":{"rotate":[{"angle":-4.66},{"time":0.5,"angle":23.77},{"time":0.6333,"angle":320.08},{"time":1,"angle":-4.66}],"translate":[{"curve":"stepped"},{"time":1}]},"jiao2":{"rotate":[{"angle":355.34},{"time":0.5,"angle":23.77},{"time":0.6333,"angle":320.08},{"time":1,"angle":355.34}],"translate":[{"curve":"stepped"},{"time":1}]},"jiao3":{"rotate":[{"angle":-4.66},{"time":0.5,"angle":23.77},{"time":0.6333,"angle":320.08},{"time":1,"angle":-4.66}],"translate":[{"curve":"stepped"},{"time":1}]},"jiao1":{"rotate":[{"angle":-4.66},{"time":0.5,"angle":23.77},{"time":0.6333,"angle":320.08},{"time":1,"angle":-4.66}],"translate":[{"curve":"stepped"},{"time":1}]}},"events":[{"time":0.6667,"name":"attack"}]},"jifei":{"bones":{"jifei":{"rotate":[{"angle":-0.91},{"time":0.0667,"angle":63.87},{"time":0.1333,"angle":132.99},{"time":0.2,"angle":-104.76},{"time":0.2667,"angle":-0.91}]},"jiao3":{"rotate":[{"time":0.2667,"angle":-4.66}],"translate":[{"time":0.2667}]},"jiao2":{"rotate":[{"time":0.2667,"angle":355.34}],"translate":[{"time":0.2667}]},"jiao4":{"rotate":[{"time":0.2667,"angle":-4.66}],"translate":[{"time":0.2667}]},"jiao1":{"rotate":[{"time":0.2667,"angle":-4.66}],"translate":[{"time":0.2667}]},"beimian":{"rotate":[{"time":0.2667,"angle":1.1}],"translate":[{"time":0.2667,"x":-1.89,"y":-0.1}]},"shenti":{"rotate":[{"time":0.2667,"angle":-0.42}],"translate":[{"time":0.2667,"y":0.63}]},"ye":{"rotate":[{"time":0.2667,"angle":0.16}]}}},"std":{"slots":{"yan":{"attachment":[{"time":0.2667,"name":null},{"time":0.5,"name":"guaiA1a/yan"}]}},"bones":{"shenti":{"rotate":[{"angle":-0.42,"curve":"stepped"},{"time":1,"angle":-0.42}],"translate":[{"y":0.63},{"time":0.5,"y":-3.15},{"time":1,"y":0.63}]},"beimian":{"rotate":[{"angle":1.1,"curve":"stepped"},{"time":1,"angle":1.1}],"translate":[{"x":-1.89,"y":-0.1},{"time":0.5,"x":8.56,"y":0.47},{"time":1,"x":-1.89,"y":-0.1}]},"ye":{"rotate":[{"angle":0.16},{"time":0.5,"angle":8.71},{"time":1,"angle":0.16}]},"jiao1":{"rotate":[{"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{},{"time":0.5,"x":3.15,"y":0.17},{"time":1}]},"jiao2":{"rotate":[{"angle":355.34,"curve":"stepped"},{"time":1,"angle":355.34}],"translate":[{},{"time":0.5,"x":3.15,"y":0.17},{"time":1}]},"jiao3":{"rotate":[{"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{},{"time":0.5,"x":3.15,"y":0.17},{"time":1}]},"jiao4":{"rotate":[{"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{},{"time":0.5,"x":3.15,"y":0.17},{"time":1}]}}},"std2":{"slots":{"yan":{"attachment":[{"time":0.2667,"name":null},{"time":0.5,"name":"guaiA1a/yan"}]}},"bones":{"shenti":{"rotate":[{"angle":-0.42,"curve":"stepped"},{"time":1,"angle":-0.42}],"translate":[{"y":0.63},{"time":0.5,"y":-3.15},{"time":1,"y":0.63}]},"beimian":{"rotate":[{"angle":1.1,"curve":"stepped"},{"time":1,"angle":1.1}],"translate":[{"x":-1.89,"y":-0.1},{"time":0.5,"x":8.56,"y":0.47},{"time":1,"x":-1.89,"y":-0.1}]},"ye":{"rotate":[{"angle":0.16},{"time":0.5,"angle":8.71},{"time":1,"angle":0.16}]},"jiao1":{"rotate":[{"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{},{"time":0.5,"x":3.15,"y":0.17},{"time":1}]},"jiao2":{"rotate":[{"angle":355.34,"curve":"stepped"},{"time":1,"angle":355.34}],"translate":[{},{"time":0.5,"x":3.15,"y":0.17},{"time":1}]},"jiao3":{"rotate":[{"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{},{"time":0.5,"x":3.15,"y":0.17},{"time":1}]},"jiao4":{"rotate":[{"angle":-4.66,"curve":"stepped"},{"time":1,"angle":-4.66}],"translate":[{},{"time":0.5,"x":3.15,"y":0.17},{"time":1}]},"scale":{"scale":[{"x":0.486,"y":0.486,"curve":"stepped"},{"time":1,"x":0.486,"y":0.486}]}}},"walk":{"bones":{"beimian":{"rotate":[{"angle":1.1,"curve":"stepped"},{"time":0.2667,"angle":1.1},{"time":0.5,"angle":12.56},{"time":0.7667,"angle":1.1,"curve":"stepped"},{"time":1,"angle":1.1}],"translate":[{"x":-1.89,"y":-0.1},{"time":0.2667,"x":-13.75,"y":-0.75},{"time":0.5,"x":10.75,"y":0.58},{"time":0.7667,"x":-13.75,"y":-0.75},{"time":1,"x":-1.89,"y":-0.1}]},"ye":{"rotate":[{"angle":0.16},{"time":0.2667,"angle":-11.44},{"time":0.5,"angle":20.22},{"time":0.7667,"angle":-10.04},{"time":1,"angle":0.16}]},"shenti":{"rotate":[{"angle":-0.42,"curve":"stepped"},{"time":0.2667,"angle":-0.42,"curve":"stepped"},{"time":0.7667,"angle":-0.42,"curve":"stepped"},{"time":1,"angle":-0.42}],"translate":[{"y":0.63},{"time":0.2667,"y":-6.35},{"time":0.5,"y":32.73},{"time":0.7667,"y":-6.35},{"time":1,"y":0.63}]},"jiao4":{"rotate":[{"angle":-4.66},{"time":0.2667,"angle":353.03,"curve":"stepped"},{"time":0.7667,"angle":353.03},{"time":1,"angle":-4.66}],"translate":[{},{"time":0.2667,"x":6.97,"y":0.38,"curve":"stepped"},{"time":0.7667,"x":6.97,"y":0.38},{"time":1}]},"jiao2":{"rotate":[{"angle":355.34},{"time":0.2667,"angle":7.77},{"time":0.5,"angle":317.41},{"time":0.7667,"angle":7.77},{"time":1,"angle":355.34}],"translate":[{},{"time":0.2667,"x":6.97,"y":0.38},{"time":0.5,"x":1.48,"y":8.05},{"time":0.7667,"x":6.97,"y":0.38},{"time":1}]},"jiao3":{"rotate":[{"angle":-4.66},{"time":0.2667,"angle":346.87},{"time":0.5,"angle":22.23},{"time":0.7667,"angle":346.87},{"time":1,"angle":-4.66}],"translate":[{},{"time":0.2667,"x":6.97,"y":0.38},{"time":0.5,"x":-2.02,"y":-7.35},{"time":0.7667,"x":6.97,"y":0.38},{"time":1}]},"jiao1":{"rotate":[{"angle":-4.66},{"time":0.2667,"angle":1.09},{"time":0.5,"angle":8.4},{"time":0.7667,"angle":1.09},{"time":1,"angle":-4.66}],"translate":[{},{"time":0.2667,"x":6.97,"y":0.38},{"time":0.5,"x":-4.43,"y":-3.14},{"time":0.7667,"x":6.97,"y":0.38},{"time":1}]}}}}}
\ No newline at end of file
diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.json.meta b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.json.meta
similarity index 72%
rename from JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.json.meta
rename to JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.json.meta
index 116dcd62..031f6b2a 100644
--- a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.json.meta
+++ b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.json.meta
@@ -2,7 +2,7 @@
   "ver": "1.2.6",
   "importer": "spine-data",
   "imported": true,
-  "uuid": "c1cb94d4-afaf-4205-97ba-8896abcb7ec1",
+  "uuid": "42029fae-0ee0-48c1-b7c5-850c03664ae4",
   "files": [
     ".json"
   ],
diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.png b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.png
new file mode 100644
index 00000000..b2b187a1
Binary files /dev/null and b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.png differ
diff --git a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.png.meta b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.png.meta
similarity index 60%
rename from JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.png.meta
rename to JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.png.meta
index af20ee8d..84f023c3 100644
--- a/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/guaiA1a.png.meta
+++ b/JisolGameCocos/assets/res/spine/召唤与合成819个Spine/guaiA1a/spine/guaiA1a.png.meta
@@ -2,7 +2,7 @@
   "ver": "1.0.26",
   "importer": "image",
   "imported": true,
-  "uuid": "d749e084-5bd8-4c0c-877b-6e488137649d",
+  "uuid": "2357c44f-3cf0-47eb-8f7a-0f303eaefe08",
   "files": [
     ".json",
     ".png"
@@ -10,14 +10,14 @@
   "subMetas": {
     "6c48a": {
       "importer": "texture",
-      "uuid": "d749e084-5bd8-4c0c-877b-6e488137649d@6c48a",
+      "uuid": "2357c44f-3cf0-47eb-8f7a-0f303eaefe08@6c48a",
       "displayName": "guaiA1a",
       "id": "6c48a",
       "name": "texture",
       "userData": {
         "wrapModeS": "clamp-to-edge",
         "wrapModeT": "clamp-to-edge",
-        "imageUuidOrDatabaseUri": "d749e084-5bd8-4c0c-877b-6e488137649d",
+        "imageUuidOrDatabaseUri": "2357c44f-3cf0-47eb-8f7a-0f303eaefe08",
         "isUuid": true,
         "visible": false,
         "minfilter": "linear",
@@ -34,7 +34,7 @@
     },
     "f9941": {
       "importer": "sprite-frame",
-      "uuid": "d749e084-5bd8-4c0c-877b-6e488137649d@f9941",
+      "uuid": "2357c44f-3cf0-47eb-8f7a-0f303eaefe08@f9941",
       "displayName": "guaiA1a",
       "id": "f9941",
       "name": "spriteFrame",
@@ -42,14 +42,14 @@
         "trimType": "auto",
         "trimThreshold": 1,
         "rotated": false,
-        "offsetX": -4,
-        "offsetY": 4.5,
-        "trimX": 3,
-        "trimY": 3,
-        "width": 498,
-        "height": 113,
-        "rawWidth": 512,
-        "rawHeight": 128,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 2,
+        "trimY": 2,
+        "width": 142,
+        "height": 284,
+        "rawWidth": 146,
+        "rawHeight": 288,
         "borderTop": 0,
         "borderBottom": 0,
         "borderLeft": 0,
@@ -61,17 +61,17 @@
         "meshType": 0,
         "vertices": {
           "rawPosition": [
-            -249,
-            -56.5,
+            -71,
+            -142,
             0,
-            249,
-            -56.5,
+            71,
+            -142,
             0,
-            -249,
-            56.5,
+            -71,
+            142,
             0,
-            249,
-            56.5,
+            71,
+            142,
             0
           ],
           "indexes": [
@@ -83,38 +83,38 @@
             3
           ],
           "uv": [
-            3,
-            125,
-            501,
-            125,
-            3,
-            12,
-            501,
-            12
+            2,
+            286,
+            144,
+            286,
+            2,
+            2,
+            144,
+            2
           ],
           "nuv": [
-            0.005859375,
-            0.09375,
-            0.978515625,
-            0.09375,
-            0.005859375,
-            0.9765625,
-            0.978515625,
-            0.9765625
+            0.0136986301369863,
+            0.006944444444444444,
+            0.9863013698630136,
+            0.006944444444444444,
+            0.0136986301369863,
+            0.9930555555555556,
+            0.9863013698630136,
+            0.9930555555555556
           ],
           "minPos": [
-            -249,
-            -56.5,
+            -71,
+            -142,
             0
           ],
           "maxPos": [
-            249,
-            56.5,
+            71,
+            142,
             0
           ]
         },
         "isUuid": true,
-        "imageUuidOrDatabaseUri": "d749e084-5bd8-4c0c-877b-6e488137649d@6c48a",
+        "imageUuidOrDatabaseUri": "2357c44f-3cf0-47eb-8f7a-0f303eaefe08@6c48a",
         "atlasUuid": ""
       },
       "ver": "1.0.12",
@@ -129,6 +129,6 @@
     "type": "sprite-frame",
     "hasAlpha": true,
     "fixAlphaTransparencyArtifacts": false,
-    "redirect": "d749e084-5bd8-4c0c-877b-6e488137649d@f9941"
+    "redirect": "2357c44f-3cf0-47eb-8f7a-0f303eaefe08@f9941"
   }
 }
diff --git a/JisolGameCocos/assets/resources/prefab/battle/role/RolePVPEntity.prefab b/JisolGameCocos/assets/resources/prefab/battle/role/RolePVPEntity.prefab
index 35195dee..9f29eaf9 100644
--- a/JisolGameCocos/assets/resources/prefab/battle/role/RolePVPEntity.prefab
+++ b/JisolGameCocos/assets/resources/prefab/battle/role/RolePVPEntity.prefab
@@ -17,12 +17,123 @@
     "_objFlags": 0,
     "__editorExtras__": {},
     "_parent": null,
-    "_children": [],
+    "_children": [
+      {
+        "__id__": 2
+      }
+    ],
     "_active": true,
     "_components": [
       {
-        "__id__": 2
+        "__id__": 16
       },
+      {
+        "__id__": 18
+      },
+      {
+        "__id__": 20
+      }
+    ],
+    "_prefab": {
+      "__id__": 22
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 1,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "blood",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 3
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 9
+      },
+      {
+        "__id__": 11
+      },
+      {
+        "__id__": 13
+      }
+    ],
+    "_prefab": {
+      "__id__": 15
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -51.954,
+      "y": 126.253,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 1,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Bar",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
       {
         "__id__": 4
       },
@@ -62,6 +173,203 @@
     },
     "_id": ""
   },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 3
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 5
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 15
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "f6mlvX+zpDQKQyTNI8m1ge"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 3
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 7
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "24a704da-2867-446d-8d1a-5e920c75e09d@f9941",
+      "__expectedType__": "cc.SpriteFrame"
+    },
+    "_type": 1,
+    "_fillType": 0,
+    "_sizeMode": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_useGrayscale": false,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "ab2/RZSBpHM6hxBpsZcelP"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "d6plfNQY5CgK2nsYLzhuGq",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 10
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 15
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "7eKZQXr4dA9ZZ1pNU9m4Id"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 12
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "9fd900dd-221b-4f89-8f2c-fba34243c835@f9941",
+      "__expectedType__": "cc.SpriteFrame"
+    },
+    "_type": 1,
+    "_fillType": 0,
+    "_sizeMode": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_useGrayscale": false,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "6dRnnmVKhM8KMkR+Ef0QZc"
+  },
+  {
+    "__type__": "cc.ProgressBar",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 14
+    },
+    "_barSprite": {
+      "__id__": 6
+    },
+    "_mode": 0,
+    "_totalLength": 100,
+    "_progress": 1,
+    "_reverse": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "13jsaXw0ZN24wtPkmda7Fc"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "4duWBgdflEeJnCTVFxBgL5",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
   {
     "__type__": "cc.UITransform",
     "_name": "",
@@ -72,7 +380,7 @@
     },
     "_enabled": true,
     "__prefab": {
-      "__id__": 3
+      "__id__": 17
     },
     "_contentSize": {
       "__type__": "cc.Size",
@@ -81,8 +389,8 @@
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
-      "x": 0,
-      "y": 0
+      "x": 0.5040967210222901,
+      "y": 0.07770745417182541
     },
     "_id": ""
   },
@@ -100,7 +408,7 @@
     },
     "_enabled": true,
     "__prefab": {
-      "__id__": 5
+      "__id__": 19
     },
     "_customMaterial": null,
     "_srcBlendFactor": 2,
@@ -113,11 +421,11 @@
       "a": 255
     },
     "_skeletonData": {
-      "__uuid__": "c1cb94d4-afaf-4205-97ba-8896abcb7ec1",
+      "__uuid__": "42029fae-0ee0-48c1-b7c5-850c03664ae4",
       "__expectedType__": "sp.SkeletonData"
     },
     "defaultSkin": "default",
-    "defaultAnimation": "walk",
+    "defaultAnimation": "",
     "_premultipliedAlpha": true,
     "_timeScale": 1,
     "_preCacheMode": 0,
@@ -146,7 +454,10 @@
     },
     "_enabled": true,
     "__prefab": {
-      "__id__": 7
+      "__id__": 21
+    },
+    "bloodVolume": {
+      "__id__": 13
     },
     "_id": ""
   },
diff --git a/JisolGameCocos/assets/script/App.ts b/JisolGameCocos/assets/script/App.ts
index 5a9500f6..29227ec5 100644
--- a/JisolGameCocos/assets/script/App.ts
+++ b/JisolGameCocos/assets/script/App.ts
@@ -23,7 +23,7 @@ class JNGLayer extends JNLayer{
 //重写Socket
 class JNGSocket extends JNSocket{
     public url() {
-        return "ws://192.168.0.127:8080/websocket";
+        return "ws://localhost:8080/websocket";
     }
 }
 
@@ -96,7 +96,7 @@ export const app = {
     event : EventDispatcher.getIns(), //通知
     proto : NGameMessage.getIns(), //消息
     api : axios.create({
-        baseURL: "http://192.168.0.127:8080",
+        baseURL: "http://localhost:8080",
     }), //请求
     battle : GBattleModeManager.getIns(), //战斗
 }
\ No newline at end of file
diff --git a/JisolGameCocos/assets/script/Main.ts b/JisolGameCocos/assets/script/Main.ts
index cc3a60e2..afac02df 100644
--- a/JisolGameCocos/assets/script/Main.ts
+++ b/JisolGameCocos/assets/script/Main.ts
@@ -2,7 +2,6 @@ import { _decorator, Component, director, instantiate, Node, Prefab } from 'cc';
 import { app } from './App';
 import { JNGame } from '../../extensions/ngame/assets/ngame/JNGame';
 import { JNSyncAction } from '../../extensions/ngame/assets/ngame/sync/JNSyncAction';
-import JNFrameTween, { JTween } from '../../extensions/ngame/assets/ngame/sync/frame/game/tween/JNFrameTween';
 const { ccclass, property } = _decorator;
 
 @ccclass('Main')
@@ -16,8 +15,6 @@ export class Main extends Component {
 
     async onLoad(){
 
-        JTween().start();
-
         //加载 APP
         await JNGame.Init(app,[
             {path:"proto/GDemo"}
diff --git a/JisolGameCocos/assets/script/battle/PVP/GPVPMode.ts b/JisolGameCocos/assets/script/battle/PVP/GPVPMode.ts
index 6d8f2420..ca76c3b4 100644
--- a/JisolGameCocos/assets/script/battle/PVP/GPVPMode.ts
+++ b/JisolGameCocos/assets/script/battle/PVP/GPVPMode.ts
@@ -70,7 +70,8 @@ export default class GPVPMode extends GBaseMode{
         entity.ones = type;
         entity.tactical = this.getInfo(type).tactical;
         entity.tacticalIndex = index;
-        this.addGObject(entity,this.getInfo(type).tactical.getPosition(index,this.getTacticalPos(type)));
+        entity.tacticalPos = this.getInfo(type).tactical.getPosition(index,this.getTacticalPos(type));
+        this.addGObject(entity,entity.tacticalPos);
         this.getOnesRole(type).push(entity);
 
     }
diff --git a/JisolGameCocos/assets/script/battle/base/fsm/base/GFSMBattle/GFSMBattle.ts b/JisolGameCocos/assets/script/battle/base/fsm/base/GFSMBattle/GFSMBattle.ts
index c25a1639..638c58e7 100644
--- a/JisolGameCocos/assets/script/battle/base/fsm/base/GFSMBattle/GFSMBattle.ts
+++ b/JisolGameCocos/assets/script/battle/base/fsm/base/GFSMBattle/GFSMBattle.ts
@@ -25,25 +25,25 @@ export default abstract class GFSMBattle extends GFSMBase{
             title:"寻找敌人",
             execute: this.onSeekEnemyProcess.bind(this),
             // to:[ProcessEnum.MoveToAttackRange], //移动到可攻击范围
-            to:[ProcessEnum.AttackEnemy], //移动到可攻击范围
+            to:[ProcessEnum.MoveToAttackRange], //移动到可攻击范围
         },
         [ProcessEnum.MoveToAttackRange]:{
             title:"移动到可攻击范围",
             mode:GFSMProcessMode.WaitExecute,
             execute: this.onMoveToAttackRangeProcess.bind(this),
-            to:[ProcessEnum.AttackEnemy,ProcessEnum.MoveToTactical] //攻击敌人 回阵型
+            to:[ProcessEnum.AttackEnemy] //攻击敌人 回阵型
         },
         [ProcessEnum.AttackEnemy]:{
             title:"攻击敌人",
             mode:GFSMProcessMode.WaitExecute,
             execute: this.onAttackProcess.bind(this),
+            to:[ProcessEnum.MoveToTactical],//移动回阵型
         },
-        [ProcessEnum.MoveToTactical]:{
-            title:"移动回阵型",
-            mode:GFSMProcessMode.WaitExecute,
-            execute: this.onMoveToTacticalProcess.bind(this),
-            to:[ProcessEnum.SeekEnemy], //寻找敌人
-        }
+        // [ProcessEnum.MoveToTactical]:{
+        //     title:"移动回阵型",
+        //     mode:GFSMProcessMode.WaitExecute,
+        //     execute: this.onMoveToTacticalProcess.bind(this),
+        // }
     }
 
     //锁定的敌人
@@ -59,6 +59,10 @@ export default abstract class GFSMBattle extends GFSMBase{
     //寻敌流程
     onSeekEnemyProcess(dt:number):number{
 
+        //播放等待
+        this.player.fsmAnim.isMove = false;
+        this.player.fsmAnim.isAttack = false;
+
         if(this.enemy){
             //如果有敌人 直接 攻击
             return ProcessEnum.MoveToAttackRange;
@@ -75,10 +79,14 @@ export default abstract class GFSMBattle extends GFSMBase{
     }
 
     //移动可攻击范围
-    onMoveToAttackRangeProcess(){
+    onMoveToAttackRangeProcess(dt:number){
 
-        //如果没有敌人则回阵型
-        if(!this.enemy) return ProcessEnum.MoveToTactical;
+        //播放移动
+        this.player.fsmAnim.isMove = true;
+        this.player.fsmAnim.isAttack = false;
+
+        //如果没有敌人则重置
+        if(!this.enemy) return GFSMProcessEnum.Reset;
 
         let distance = Vec2.distance(this.player.v2World,this.enemy.v2World);
 
@@ -87,24 +95,34 @@ export default abstract class GFSMBattle extends GFSMBase{
             return ProcessEnum.AttackEnemy;
         }else{
             //靠近目标
-            // this.player.
+            this.player.onMoveTarget(this.enemy.v2World,dt);
+            return GFSMProcessEnum.Wait;
         }
 
     }
 
     //移动回阵型
-    onMoveToTacticalProcess(){
+    onMoveToTacticalProcess(dt:number){
+
+        //播放移动
+        this.player.fsmAnim.isMove = true;
+        this.player.fsmAnim.isAttack = false;
+
+        if(this.player.onMoveTarget(this.player.tacticalPos,dt)){
+            //回到阵容 重置
+            return GFSMProcessEnum.Reset;
+        }
+
+        return GFSMProcessEnum.Wait;
 
     }
-
-    onAttack(dt:number){
-        this.player.onAttackUpdate(dt);
-    }
-
+    
     //攻击敌人
     onAttackProcess(dt:number){
-        this.onAttack(dt);
-        return GFSMProcessEnum.Reset;
+        //播放移动
+        this.player.fsmAnim.isMove = false;
+        this.player.fsmAnim.isAttack = true;
+        return GFSMProcessEnum.Wait;
     }
 
 
diff --git a/JisolGameCocos/assets/script/battle/base/fsm/base/GFSMBattle/GFSMBattleAmin.ts b/JisolGameCocos/assets/script/battle/base/fsm/base/GFSMBattle/GFSMBattleAmin.ts
index bc08a896..c5cde451 100644
--- a/JisolGameCocos/assets/script/battle/base/fsm/base/GFSMBattle/GFSMBattleAmin.ts
+++ b/JisolGameCocos/assets/script/battle/base/fsm/base/GFSMBattle/GFSMBattleAmin.ts
@@ -20,6 +20,7 @@ export interface GFSMProcessAnimInfo extends GFSMProcessInfo{
     mixs?:number[];
     //播放的轨道
     track?:sp.spine.TrackEntry;
+    //条件跳转
     ifTo?:(() => boolean)[];
 }
 
@@ -48,12 +49,31 @@ export class GFSMBattleAmin extends GFSMBase{
     //动画Root
     spine:sp.Skeleton;
 
+    events:{event:string,fun:Function}[] = [];
+
     constructor(spine:sp.Skeleton,trackIndex?:number){
         super();
         this.spine = spine;
         this.trackIndex = trackIndex || 0;
+        //设置监听
+        this.spine.setEventListener(this.onEventListener.bind(this));
     }
 
+    //添加事件监听
+    addEventListener(event:string,fun:Function){
+        this.events.push({
+            event,
+            fun,
+        })
+    }
+
+    onEventListener(entry: sp.spine.TrackEntry, ev: sp.spine.Event){
+        this.events.forEach(item => {
+            if(item.event == ev.data.name){
+                item.fun();
+            }
+        });
+    }
 
     // 流程图
     process: { [key: number]: GFSMProcessAnimInfo; } = {
@@ -130,6 +150,5 @@ export class GFSMBattleAmin extends GFSMBase{
 
     }
 
-
 }
 
diff --git a/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts b/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts
index 025a5295..ad9c7667 100644
--- a/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts
+++ b/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts
@@ -6,8 +6,14 @@ import GFSMBattle from "../fsm/base/GFSMBattle/GFSMBattle";
 import { GFSMBattleAmin } from "../fsm/base/GFSMBattle/GFSMBattleAmin";
 import { Vec2 } from "cc";
 import { v2 } from "cc";
+import { v3 } from "cc";
+import { GTactical } from "../../entity/GTactical";
 const { ccclass, property } = _decorator;
 
+export enum GRoleAnimEvent{
+    Attack = "attack", //普通攻击
+}
+
 //角色基类
 export default abstract class GRoleBase<T> extends GObject<T>{
 
@@ -24,7 +30,23 @@ export default abstract class GRoleBase<T> extends GObject<T>{
     _isMirror:boolean = false;
 
     //玩家攻击范围
-    range:number = 10;
+    range:number = 100;
+
+    //移动速度
+    moveSpeed:number = 80;
+
+    //在阵容中的下标
+    tacticalIndex:number;
+    //阵容
+    tactical:GTactical;
+    //阵容位置
+    _tacticalPos:Vec2;
+    get tacticalPos(){ return this._tacticalPos}
+    set tacticalPos(value:Vec2){ this._tacticalPos = value}
+
+    //血量
+    blood:number = 100;
+    fullBlood:number = 100;
 
     get isMirror(){
         return this._isMirror;
@@ -51,9 +73,24 @@ export default abstract class GRoleBase<T> extends GObject<T>{
         this.fsm = this.fsmCreate();
         //创建角色动画状态机
         this.fsmAnim = this.fsmAnimCreate();
+        
+        //监听攻击
+        this.fsmAnim.addEventListener(GRoleAnimEvent.Attack,this.onAttack.bind(this));
 
     }
 
+    //攻击
+    onAttack(){
+        //敌人扣血
+        this.fsm.enemy.onHit();
+    }
+
+    //受击
+    onHit(){
+        this.blood--;
+    }
+
+
     //创建一个状态机
     protected abstract fsmCreate():GFSMBattle;
     //创建一个动画状态机
@@ -61,14 +98,26 @@ export default abstract class GRoleBase<T> extends GObject<T>{
 
     onSyncUpdate(dt: number,frame:JNFrameInfo, input?: T){
         //更新状态机
-        this.fsm && this.fsm.onUpdate(dt);
-        this.fsmAnim && this.fsmAnim.onUpdate(dt);
+        this.fsm && this.fsm.onUpdate(dt / 1000);
+        this.fsmAnim && this.fsmAnim.onUpdate(dt / 1000);
     }
 
-    //普攻更新
-    onAttackUpdate(dt:number){
-
-        this.fsmAnim.isAttack = true;
+    //向目标点移动
+    onMoveTarget(target:Vec2,dt:number){
+        
+        //获取两个坐标差值向量
+        let mins = this.v2World.subtract(target);
+        let normal = this.v2World.subtract(target).normalize();
+        
+        if(Vec2.len(normal) >= Vec2.len(mins)){
+            this.node.setWorldPosition(Object.assign(v3(),target.clone()));
+            return true;
+        }else{
+            //移动
+            this.node.worldPosition = this.node.worldPosition.subtract(v3(normal.x*dt*this.moveSpeed,normal.y*dt*this.moveSpeed,0))
+            return false;
+        }
+        
     }
 
 }
diff --git a/JisolGameCocos/assets/script/battle/base/role/PVP/GRolePVPEntity.ts b/JisolGameCocos/assets/script/battle/base/role/PVP/GRolePVPEntity.ts
index 4a314825..02f66af1 100644
--- a/JisolGameCocos/assets/script/battle/base/role/PVP/GRolePVPEntity.ts
+++ b/JisolGameCocos/assets/script/battle/base/role/PVP/GRolePVPEntity.ts
@@ -6,6 +6,9 @@ import GPVPMode, { GPVPModePlayerEnum } from "../../../PVP/GPVPMode";
 import { GTactical } from "../../../entity/GTactical";
 import { GFSMBattleAmin } from "../../fsm/base/GFSMBattle/GFSMBattleAmin";
 import { JNFrameInfo } from "../../../../../../extensions/ngame/assets/ngame/sync/frame/JNSyncFrame";
+import { Vec2 } from "cc";
+import { v2 } from "cc";
+import { ProgressBar } from "cc";
 const { ccclass, property } = _decorator;
 
 export interface GDemoMessage{
@@ -19,7 +22,6 @@ export default class GRolePVPEntity extends GRoleBase<GDemoMessage>{
 
     //所属阵容
     _ones:GPVPModePlayerEnum;
-
     get ones():GPVPModePlayerEnum{
         return this._ones;
     }
@@ -33,11 +35,12 @@ export default class GRolePVPEntity extends GRoleBase<GDemoMessage>{
         this._ones = value;
     }
 
-    //攻击距离
+    @property(ProgressBar)
+    bloodVolume:ProgressBar;
 
-    //在阵容中的下标
-    tacticalIndex:number;
-    tactical:GTactical;
+    onSyncLoad(){
+        super.onSyncLoad();
+    }
 
     getClassName():string{return "GDemoMessage"}
     onSyncUpdate(dt: number,frame:JNFrameInfo, input?: GDemoMessage) { 
@@ -50,6 +53,9 @@ export default class GRolePVPEntity extends GRoleBase<GDemoMessage>{
                 this.fsmAnim.isMove = input.isRun;
             }
         }
+
+        //更新血量显示
+        this.bloodVolume.progress =  this.blood / this.fullBlood;
     }
     
 
@@ -61,7 +67,7 @@ export default class GRolePVPEntity extends GRoleBase<GDemoMessage>{
     }
 
     protected fsmCreate(): GFSMPVP {
-        return null;
+        // return null;
         return new GFSMPVP(this);
     }
     protected fsmAnimCreate(): GFSMBattleAmin {