Browse Source

辣椒特效及方块优化完成

181404010226 3 months ago
parent
commit
c5db1e92f0
25 changed files with 1163 additions and 485 deletions
  1. 383 309
      assets/Scenes/GameLevel.scene
  2. 5 5
      assets/assets/Prefabs/Blocks/BlockD-T.prefab
  3. 5 5
      assets/assets/Prefabs/Blocks/BlockF-S.prefab
  4. 5 5
      assets/assets/Prefabs/Blocks/BlockH-I.prefab
  5. 5 5
      assets/assets/Prefabs/Blocks/BlockI.prefab
  6. 7 7
      assets/assets/Prefabs/Blocks/BlockL.prefab
  7. 7 7
      assets/assets/Prefabs/Blocks/BlockL2.prefab
  8. 7 7
      assets/assets/Prefabs/Blocks/BlockL3.prefab
  9. 7 7
      assets/assets/Prefabs/Blocks/BlockL4.prefab
  10. 7 7
      assets/assets/Prefabs/Blocks/BlockS.prefab
  11. 6 6
      assets/assets/Prefabs/Blocks/BlockT.prefab
  12. 9 0
      assets/resources/Animation/WeaponBurnAni/燃烧.meta
  13. 321 0
      assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.atlas
  14. 12 0
      assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.atlas.meta
  15. 0 0
      assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.json
  16. 13 0
      assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.json.meta
  17. BIN
      assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.png
  18. 134 0
      assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.png.meta
  19. 1 1
      assets/resources/data/weapons.json
  20. 2 2
      assets/resources/prefabs/GroundBurnArea.prefab
  21. 158 41
      assets/scripts/CombatSystem/BlockManager.ts
  22. 1 1
      assets/scripts/CombatSystem/BlockSelection/BlockInfo.ts
  23. 68 15
      assets/scripts/CombatSystem/BlockSelection/GameBlockSelection.ts
  24. 0 46
      assets/scripts/TestScene/WeaponBlockTestScript.ts
  25. 0 9
      视觉音效资源配置表.csv

File diff suppressed because it is too large
+ 383 - 309
assets/Scenes/GameLevel.scene


+ 5 - 5
assets/assets/Prefabs/Blocks/BlockD-T.prefab

@@ -432,8 +432,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 0.5,
-      "y": 0.5,
+      "x": 0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -460,8 +460,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -497,7 +497,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 5 - 5
assets/assets/Prefabs/Blocks/BlockF-S.prefab

@@ -432,8 +432,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": -0.5,
-      "y": 0.5,
+      "x": -0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -460,8 +460,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -497,7 +497,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 5 - 5
assets/assets/Prefabs/Blocks/BlockH-I.prefab

@@ -250,8 +250,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 0.5,
-      "y": 0.5,
+      "x": 0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -278,8 +278,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -315,7 +315,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 5 - 5
assets/assets/Prefabs/Blocks/BlockI.prefab

@@ -250,8 +250,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 0.5,
-      "y": 0.5,
+      "x": 0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -278,8 +278,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -315,7 +315,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 7 - 7
assets/assets/Prefabs/Blocks/BlockL.prefab

@@ -328,8 +328,8 @@
     },
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 6.975999999999999,
-      "y": -11.371000000000095,
+      "x": 2.418,
+      "y": -17.082,
       "z": 0
     },
     "_lrot": {
@@ -341,8 +341,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 0.5,
-      "y": 0.5,
+      "x": 0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -369,8 +369,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -406,7 +406,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 7 - 7
assets/assets/Prefabs/Blocks/BlockL2.prefab

@@ -328,8 +328,8 @@
     },
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 10.716,
-      "y": -6.387,
+      "x": 14.924,
+      "y": -1.034,
       "z": 0
     },
     "_lrot": {
@@ -341,8 +341,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 0.5,
-      "y": 0.5,
+      "x": 0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -369,8 +369,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -406,7 +406,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 7 - 7
assets/assets/Prefabs/Blocks/BlockL3.prefab

@@ -328,8 +328,8 @@
     },
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 1.784,
-      "y": -10.617,
+      "x": 0.932,
+      "y": -17.08,
       "z": 0
     },
     "_lrot": {
@@ -341,8 +341,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 0.5,
-      "y": 0.5,
+      "x": 0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -369,8 +369,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -406,7 +406,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 7 - 7
assets/assets/Prefabs/Blocks/BlockL4.prefab

@@ -328,8 +328,8 @@
     },
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 10.421,
-      "y": -2.39,
+      "x": 13.987,
+      "y": -1.671,
       "z": 0
     },
     "_lrot": {
@@ -341,8 +341,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 0.5,
-      "y": 0.5,
+      "x": 0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -369,8 +369,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -406,7 +406,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 7 - 7
assets/assets/Prefabs/Blocks/BlockS.prefab

@@ -419,8 +419,8 @@
     },
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": -0.5570000000000164,
-      "y": -30.538999999999987,
+      "x": -0.481,
+      "y": -30.539,
       "z": 0
     },
     "_lrot": {
@@ -432,8 +432,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 0.5,
-      "y": 0.5,
+      "x": 0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -460,8 +460,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -497,7 +497,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 6 - 6
assets/assets/Prefabs/Blocks/BlockT.prefab

@@ -419,7 +419,7 @@
     },
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 0.585,
+      "x": -0.01,
       "y": 16.189,
       "z": 0
     },
@@ -432,8 +432,8 @@
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 0.5,
-      "y": 0.5,
+      "x": 0.4,
+      "y": 0.4,
       "z": 1
     },
     "_mobility": 0,
@@ -460,8 +460,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 69,
-      "height": 118
+      "width": 117,
+      "height": 165
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -497,7 +497,7 @@
       "a": 255
     },
     "_spriteFrame": {
-      "__uuid__": "7efa8afb-730c-43f8-9d0a-5cbf71082a54@f9941",
+      "__uuid__": "f24e38d6-88df-4dab-bdd0-f8d47663d951@f9941",
       "__expectedType__": "cc.SpriteFrame"
     },
     "_type": 0,

+ 9 - 0
assets/resources/Animation/WeaponBurnAni/燃烧.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "5761c672-94bd-428c-816f-393543fd52cc",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 321 - 0
assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.atlas

@@ -0,0 +1,321 @@
+
+ui_zhuling.png
+size: 110,720
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+dianlan
+  rotate: false
+  xy: 58, 73
+  size: 42, 42
+  orig: 50, 50
+  offset: 4, 4
+  index: -1
+huoyann_01
+  rotate: true
+  xy: 2, 337
+  size: 52, 64
+  orig: 53, 80
+  offset: 0, 1
+  index: -1
+huoyann_02
+  rotate: true
+  xy: 2, 391
+  size: 53, 67
+  orig: 53, 80
+  offset: 0, 0
+  index: -1
+huoyann_03
+  rotate: true
+  xy: 2, 555
+  size: 53, 71
+  orig: 53, 80
+  offset: 0, 0
+  index: -1
+huoyann_04
+  rotate: true
+  xy: 2, 665
+  size: 53, 72
+  orig: 53, 80
+  offset: 0, 0
+  index: -1
+huoyann_05
+  rotate: true
+  xy: 2, 610
+  size: 53, 72
+  orig: 53, 80
+  offset: 0, 0
+  index: -1
+huoyann_06
+  rotate: true
+  xy: 2, 446
+  size: 53, 70
+  orig: 53, 80
+  offset: 0, 1
+  index: -1
+huoyann_07
+  rotate: true
+  xy: 2, 501
+  size: 52, 71
+  orig: 53, 80
+  offset: 1, 0
+  index: -1
+huoyann_08
+  rotate: true
+  xy: 2, 282
+  size: 53, 60
+  orig: 53, 80
+  offset: 0, 1
+  index: -1
+tx_hm01
+  rotate: false
+  xy: 42, 49
+  size: 11, 15
+  orig: 72, 63
+  offset: 0, 2
+  index: -1
+tx_hm02
+  rotate: false
+  xy: 55, 18
+  size: 20, 17
+  orig: 72, 63
+  offset: 0, 2
+  index: -1
+tx_hm03
+  rotate: false
+  xy: 76, 700
+  size: 32, 18
+  orig: 72, 63
+  offset: 5, 3
+  index: -1
+tx_hm04
+  rotate: false
+  xy: 75, 516
+  size: 28, 20
+  orig: 72, 63
+  offset: 9, 4
+  index: -1
+tx_hm05
+  rotate: true
+  xy: 31, 14
+  size: 25, 22
+  orig: 72, 63
+  offset: 16, 6
+  index: -1
+tx_hm06
+  rotate: true
+  xy: 2, 2
+  size: 22, 24
+  orig: 72, 63
+  offset: 23, 10
+  index: -1
+tx_hm07
+  rotate: true
+  xy: 75, 491
+  size: 23, 27
+  orig: 72, 63
+  offset: 28, 15
+  index: -1
+tx_hm08
+  rotate: false
+  xy: 2, 217
+  size: 56, 41
+  orig: 72, 63
+  offset: 0, 7
+  index: -1
+tx_hm09
+  rotate: false
+  xy: 76, 657
+  size: 31, 41
+  orig: 72, 63
+  offset: 29, 9
+  index: -1
+tx_hm10
+  rotate: true
+  xy: 76, 583
+  size: 29, 31
+  orig: 72, 63
+  offset: 34, 22
+  index: -1
+tx_hm11
+  rotate: false
+  xy: 76, 614
+  size: 31, 41
+  orig: 72, 63
+  offset: 34, 14
+  index: -1
+tx_hm12
+  rotate: false
+  xy: 77, 20
+  size: 15, 15
+  orig: 72, 63
+  offset: 52, 43
+  index: -1
+tx_hm13
+  rotate: false
+  xy: 94, 23
+  size: 12, 12
+  orig: 72, 63
+  offset: 55, 46
+  index: -1
+tx_hm14
+  rotate: false
+  xy: 94, 9
+  size: 12, 12
+  orig: 72, 63
+  offset: 57, 48
+  index: -1
+tx_hm15
+  rotate: false
+  xy: 102, 79
+  size: 6, 6
+  orig: 72, 63
+  offset: 61, 52
+  index: -1
+tx_hm201
+  rotate: true
+  xy: 102, 96
+  size: 19, 6
+  orig: 100, 94
+  offset: 0, 0
+  index: -1
+tx_hm202
+  rotate: false
+  xy: 2, 26
+  size: 27, 13
+  orig: 100, 94
+  offset: 0, 0
+  index: -1
+tx_hm203
+  rotate: false
+  xy: 2, 41
+  size: 38, 23
+  orig: 100, 94
+  offset: 0, 0
+  index: -1
+tx_hm204
+  rotate: true
+  xy: 75, 538
+  size: 43, 30
+  orig: 100, 94
+  offset: 4, 0
+  index: -1
+tx_hm205
+  rotate: false
+  xy: 55, 37
+  size: 41, 34
+  orig: 100, 94
+  offset: 11, 4
+  index: -1
+tx_hm206
+  rotate: true
+  xy: 71, 388
+  size: 43, 37
+  orig: 100, 94
+  offset: 17, 8
+  index: -1
+tx_hm207
+  rotate: false
+  xy: 68, 297
+  size: 38, 41
+  orig: 100, 94
+  offset: 23, 12
+  index: -1
+tx_hm208
+  rotate: true
+  xy: 60, 155
+  size: 37, 43
+  orig: 100, 94
+  offset: 27, 18
+  index: -1
+tx_hm209
+  rotate: false
+  xy: 68, 340
+  size: 40, 46
+  orig: 100, 94
+  offset: 29, 21
+  index: -1
+tx_hm210
+  rotate: false
+  xy: 64, 246
+  size: 44, 49
+  orig: 100, 94
+  offset: 31, 23
+  index: -1
+tx_hm211
+  rotate: false
+  xy: 60, 194
+  size: 46, 50
+  orig: 100, 94
+  offset: 34, 27
+  index: -1
+tx_hm212
+  rotate: true
+  xy: 58, 117
+  size: 36, 50
+  orig: 100, 94
+  offset: 50, 30
+  index: -1
+tx_hm213
+  rotate: true
+  xy: 2, 66
+  size: 34, 51
+  orig: 100, 94
+  offset: 52, 32
+  index: -1
+tx_hm214
+  rotate: true
+  xy: 2, 122
+  size: 35, 54
+  orig: 100, 94
+  offset: 54, 33
+  index: -1
+tx_hm215
+  rotate: false
+  xy: 74, 433
+  size: 34, 56
+  orig: 100, 94
+  offset: 57, 34
+  index: -1
+tx_hm216
+  rotate: true
+  xy: 2, 181
+  size: 34, 56
+  orig: 100, 94
+  offset: 60, 35
+  index: -1
+tx_hm217
+  rotate: true
+  xy: 2, 159
+  size: 20, 55
+  orig: 100, 94
+  offset: 76, 37
+  index: -1
+tx_hm218
+  rotate: true
+  xy: 2, 260
+  size: 20, 58
+  orig: 100, 94
+  offset: 77, 34
+  index: -1
+tx_hm219
+  rotate: true
+  xy: 2, 102
+  size: 18, 54
+  orig: 100, 94
+  offset: 79, 37
+  index: -1
+tx_hm220
+  rotate: false
+  xy: 102, 87
+  size: 6, 7
+  orig: 100, 94
+  offset: 83, 69
+  index: -1
+tx_hm221
+  rotate: true
+  xy: 105, 532
+  size: 4, 3
+  orig: 100, 94
+  offset: 84, 72
+  index: -1

+ 12 - 0
assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.atlas.meta

@@ -0,0 +1,12 @@
+{
+  "ver": "1.0.0",
+  "importer": "*",
+  "imported": true,
+  "uuid": "3f6846df-550a-4986-ad23-c5a1d6c02f83",
+  "files": [
+    ".atlas",
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {}
+}

File diff suppressed because it is too large
+ 0 - 0
assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.json


+ 13 - 0
assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.json.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.2.7",
+  "importer": "spine-data",
+  "imported": true,
+  "uuid": "5746662e-6f4c-420c-b290-e0d09e1e12c9",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "atlasUuid": "3f6846df-550a-4986-ad23-c5a1d6c02f83"
+  }
+}

BIN
assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.png


+ 134 - 0
assets/resources/Animation/WeaponBurnAni/燃烧/ui_zhuling.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "2a562b3e-8e6f-4b80-ab3c-654b4e4f9346",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "2a562b3e-8e6f-4b80-ab3c-654b4e4f9346@6c48a",
+      "displayName": "ui_zhuling",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "2a562b3e-8e6f-4b80-ab3c-654b4e4f9346",
+        "isUuid": true,
+        "visible": false,
+        "minfilter": "linear",
+        "magfilter": "linear",
+        "mipfilter": "none",
+        "anisotropy": 0
+      },
+      "ver": "1.0.22",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    },
+    "f9941": {
+      "importer": "sprite-frame",
+      "uuid": "2a562b3e-8e6f-4b80-ab3c-654b4e4f9346@f9941",
+      "displayName": "ui_zhuling",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 2,
+        "trimY": 2,
+        "width": 106,
+        "height": 716,
+        "rawWidth": 110,
+        "rawHeight": 720,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -53,
+            -358,
+            0,
+            53,
+            -358,
+            0,
+            -53,
+            358,
+            0,
+            53,
+            358,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            2,
+            718,
+            108,
+            718,
+            2,
+            2,
+            108,
+            2
+          ],
+          "nuv": [
+            0.01818181818181818,
+            0.002777777777777778,
+            0.9818181818181818,
+            0.002777777777777778,
+            0.01818181818181818,
+            0.9972222222222222,
+            0.9818181818181818,
+            0.9972222222222222
+          ],
+          "minPos": [
+            -53,
+            -358,
+            0
+          ],
+          "maxPos": [
+            53,
+            358,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "2a562b3e-8e6f-4b80-ab3c-654b4e4f9346@6c48a",
+        "atlasUuid": "",
+        "trimType": "auto"
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "2a562b3e-8e6f-4b80-ab3c-654b4e4f9346@6c48a"
+  }
+}

+ 1 - 1
assets/resources/data/weapons.json

@@ -626,7 +626,7 @@
           "bulletImages": "images/PlantsSprite/005",
           "hitEffect": "Animation/WeaponTx/tx0002/tx0002",
           "trailEffect": true,
-          "burnEffect": "Animation/WeaponTx/tx0006/tx0006"
+          "burnEffect": "Animation/WeaponBurnAni/燃烧/ui_zhuling"
         }
       },
       "visualConfig": {

+ 2 - 2
assets/resources/prefabs/GroundBurnArea.prefab

@@ -170,11 +170,11 @@
       "a": 255
     },
     "_skeletonData": {
-      "__uuid__": "78d0e2ea-dcc4-4130-8ccc-3eb008a641a6",
+      "__uuid__": "5746662e-6f4c-420c-b290-e0d09e1e12c9",
       "__expectedType__": "sp.SkeletonData"
     },
     "defaultSkin": "default",
-    "defaultAnimation": "",
+    "defaultAnimation": "chiyou",
     "_premultipliedAlpha": true,
     "_timeScale": 1,
     "_preCacheMode": 0,

+ 158 - 41
assets/scripts/CombatSystem/BlockManager.ts

@@ -31,6 +31,46 @@ export class BlockManager extends Component {
     })
     public kuangContainer: Node = null;
     
+    // Block1节点
+    @property({
+        type: Node,
+        tooltip: '拖拽Block1节点到这里(Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block1)'
+    })
+    public block1Container: Node = null;
+    
+    // Block2节点
+    @property({
+        type: Node,
+        tooltip: '拖拽Block2节点到这里(Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block2)'
+    })
+    public block2Container: Node = null;
+    
+    // Block3节点
+    @property({
+        type: Node,
+        tooltip: '拖拽Block3节点到这里(Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block3)'
+    })
+    public block3Container: Node = null;
+    
+    // 价格节点装饰器
+    @property({
+        type: Node,
+        tooltip: '拖拽Block1价格节点到这里(Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block1/db01/Price)'
+    })
+    public block1PriceNode: Node = null;
+    
+    @property({
+        type: Node,
+        tooltip: '拖拽Block2价格节点到这里(Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block2/db01/Price)'
+    })
+    public block2PriceNode: Node = null;
+    
+    @property({
+        type: Node,
+        tooltip: '拖拽Block3价格节点到这里(Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block3/db01/Price)'
+    })
+    public block3PriceNode: Node = null;
+    
     // 金币标签节点
     @property({
         type: Node,
@@ -258,6 +298,33 @@ export class BlockManager extends Component {
             }
         }
         
+        // 如果没有指定Block1Container,尝试找到它
+        if (!this.block1Container) {
+            this.block1Container = find('Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block1');
+            if (!this.block1Container) {
+                console.error('找不到Block1节点');
+                return;
+            }
+        }
+        
+        // 如果没有指定Block2Container,尝试找到它
+        if (!this.block2Container) {
+            this.block2Container = find('Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block2');
+            if (!this.block2Container) {
+                console.error('找不到Block2节点');
+                return;
+            }
+        }
+        
+        // 如果没有指定Block3Container,尝试找到它
+        if (!this.block3Container) {
+            this.block3Container = find('Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block3');
+            if (!this.block3Container) {
+                console.error('找不到Block3节点');
+                return;
+            }
+        }
+        
         // 如果没有指定coinLabelNode,尝试找到它
         if (!this.coinLabelNode) {
             this.coinLabelNode = find('Canvas/GameLevelUI/CoinNode/CoinLabel');
@@ -272,6 +339,28 @@ export class BlockManager extends Component {
             this.placedBlocksContainer = find('Canvas/GameLevelUI/PlacedBlocks');   
         }
         
+        // 如果没有指定价格节点,尝试找到它们
+        if (!this.block1PriceNode) {
+            this.block1PriceNode = find('Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block1/db01/Price');
+            if (!this.block1PriceNode) {
+                console.warn('找不到Block1价格节点');
+            }
+        }
+        
+        if (!this.block2PriceNode) {
+            this.block2PriceNode = find('Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block2/db01/Price');
+            if (!this.block2PriceNode) {
+                console.warn('找不到Block2价格节点');
+            }
+        }
+        
+        if (!this.block3PriceNode) {
+            this.block3PriceNode = find('Canvas/GameLevelUI/BlockSelectionUI/diban/kuang/Block3/db01/Price');
+            if (!this.block3PriceNode) {
+                console.warn('找不到Block3价格节点');
+            }
+        }
+        
         // 确保有PlacedBlocks节点用于存放已放置的方块
         this.ensurePlacedBlocksNode();
         
@@ -462,22 +551,33 @@ export class BlockManager extends Component {
             return;
         }
         
-        const kuangNode = this.kuangContainer;
-        if (!kuangNode) {
-            console.error('找不到kuang节点');
-            return;
+        // 使用Block1、Block2、Block3节点作为方块容器
+        const blockContainers = [
+            this.block1Container,
+            this.block2Container,
+            this.block3Container
+        ];
+        
+        // 检查所有Block容器是否存在
+        for (let i = 0; i < blockContainers.length; i++) {
+            if (!blockContainers[i]) {
+                console.error(`找不到Block${i + 1}节点`);
+                return;
+            }
         }
         
+        // 方块在各自容器中的位置偏移(相对于容器中心)
         const offsets = [
-            new Vec3(-200, 0, 0),
-            new Vec3(0, 0, 0),
-            new Vec3(200, 0, 0)
+            new Vec3(0, 0, 0),  // Block1中心
+            new Vec3(0, 0, 0),  // Block2中心
+            new Vec3(0, 0, 0)   // Block3中心
         ];
         
-        const dbNodes = [
-            kuangNode.getChildByName('db01'),
-            kuangNode.getChildByName('db02'),
-            kuangNode.getChildByName('db03')
+        // 价格节点使用装饰器属性
+        const priceNodes = [
+            this.block1PriceNode,
+            this.block2PriceNode,
+            this.block3PriceNode
         ];
         
         // 获取当前关卡的武器配置列表
@@ -542,7 +642,7 @@ export class BlockManager extends Component {
             }
             
             const block = instantiate(prefab);
-            kuangNode.addChild(block);
+            blockContainers[i].addChild(block);
             
             block.position = offsets[i];
             
@@ -555,27 +655,32 @@ export class BlockManager extends Component {
             block['weaponId'] = weaponConfig.id;
             
             this.originalPositions.set(block, offsets[i].clone());
-            this.blockLocations.set(block, 'kuang');
+            this.blockLocations.set(block, `block${i + 1}`);
             this.blocks.push(block);
             
-            if (dbNodes[i]) {
-                const priceNode = dbNodes[i].getChildByName('Price');
-                if (priceNode) {
-                    this.blockPriceMap.set(block, priceNode);
-                    priceNode.active = true;
-                    
-                    // 根据武器配置和方块形状设置价格
-                    this.setBlockPriceByWeaponConfig(block, priceNode);
-                }
+            // 处理价格显示
+            if (priceNodes[i]) {
+                this.blockPriceMap.set(block, priceNodes[i]);
+                priceNodes[i].active = true;
                 
-                this.associateDbNodeWithBlock(block, dbNodes[i]);
+                // 根据武器配置和方块形状设置价格
+                this.setBlockPriceByWeaponConfig(block, priceNodes[i]);
+            } else {
+                console.warn(`Block${i + 1}容器下找不到Price节点`);
             }
             
+            // 关联Block容器与方块(替代原来的dbNode关联)
+            this.associateBlockContainerWithBlock(block, blockContainers[i]);
+            
+            // 设置方块位置信息到blockLocations映射中
+            const blockLocation = `block${i + 1}`;
+            this.blockLocations.set(block, blockLocation);
+            
             // 设置方块的武器外观,传入目标形状ID以确保正确加载图片
             this.setupBlockWeaponVisual(block, weaponConfig, targetShapeId);
             
-            // 设置BlockInfo组件信息
-            this.setupBlockInfo(block, weaponConfig, targetShapeId);
+            // 设置BlockInfo组件信息,传入容器位置信息
+            this.setupBlockInfo(block, weaponConfig, targetShapeId, blockLocation);
             
             // 为新生成的方块添加标签
             BlockTag.addTag(block);
@@ -593,34 +698,44 @@ export class BlockManager extends Component {
     }
     
     // 将db节点与方块关联
-    associateDbNodeWithBlock(block: Node, dbNode: Node) {
-        block['dbNode'] = dbNode;
+    // 将Block容器与方块关联
+    associateBlockContainerWithBlock(block: Node, blockContainer: Node) {
+        block['blockContainer'] = blockContainer;
         
         block.on(Node.EventType.TRANSFORM_CHANGED, () => {
-            if (dbNode && block.parent) {
+            if (blockContainer && block.parent) {
                 const location = this.blockLocations.get(block);
+                const priceNode = this.blockPriceMap.get(block);
                 
                 if (location === 'grid') {
-                    dbNode.active = false;
+                    // 方块在网格区域时,隐藏价格标签
+                    if (priceNode) {
+                        priceNode.active = false;
+                    }
                     return;
                 }
                 
                 // 检查方块是否正在被拖动,如果是则隐藏价格标签
                 if (block['isDragging']) {
-                    dbNode.active = false;
+                    if (priceNode) {
+                        priceNode.active = false;
+                    }
                     return;
                 }
                 
-                dbNode.active = true;
-                
-                const worldPos = block.parent.getComponent(UITransform).convertToWorldSpaceAR(block.position);
-                const localPos = dbNode.parent.getComponent(UITransform).convertToNodeSpaceAR(worldPos);
-                
-                dbNode.position = new Vec3(localPos.x, localPos.y - 80, localPos.z);
+                // 方块在Block容器区域时,显示价格标签
+                if (priceNode && location && location.startsWith('block')) {
+                    priceNode.active = true;
+                }
             }
         });
     }
     
+    // 保留原方法以兼容可能的调用(现在委托给新方法)
+    associateDbNodeWithBlock(block: Node, dbNode: Node) {
+        this.associateBlockContainerWithBlock(block, dbNode);
+    }
+    
     // 更新金币显示
     updateCoinDisplay() {
         if (this.coinLabelNode) {
@@ -996,13 +1111,14 @@ export class BlockManager extends Component {
         for (const block of this.blocks) {
             if (block.isValid) {
                 const location = this.blockLocations.get(block);
-                if (location === 'kuang') {
+                // 清除kuang区域和Block容器中的方块
+                if (location === 'kuang' || location === 'block1' || location === 'block2' || location === 'block3') {
                     blocksToRemove.push(block);
                 }
             }
         }
         
-        console.log('[BlockManager] 找到需要清理的kuang区域方块数量:', blocksToRemove.length);
+        console.log('[BlockManager] 找到需要清理的方块数量:', blocksToRemove.length);
         
         for (const block of blocksToRemove) {
             const dbNode = block['dbNode'];
@@ -1029,7 +1145,7 @@ export class BlockManager extends Component {
             // 清理武器配置映射
             this.blockWeaponConfigs.delete(block);
             
-            console.log('[BlockManager] 销毁kuang区域方块:', block.name);
+            console.log('[BlockManager] 销毁方块:', block.name, '位置:', this.blockLocations.get(block));
             block.destroy();
         }
         
@@ -1351,8 +1467,9 @@ export class BlockManager extends Component {
      * @param block 方块节点
      * @param weaponConfig 武器配置
      * @param targetShapeId 目标形状ID
+     * @param blockLocation 方块所在位置
      */
-    private setupBlockInfo(block: Node, weaponConfig: WeaponConfig, targetShapeId?: string) {
+    private setupBlockInfo(block: Node, weaponConfig: WeaponConfig, targetShapeId?: string, blockLocation?: string) {
         const blockInfo = block.getComponent(BlockInfo);
         if (!blockInfo) {
             console.warn(`[BlockManager] 方块 ${block.name} 没有BlockInfo组件`);
@@ -1386,7 +1503,7 @@ export class BlockManager extends Component {
         }
         
         // 设置位置信息
-        blockInfo.currentLocation = 'kuang';
+        blockInfo.currentLocation = blockLocation || 'kuang';
         blockInfo.gridPosition = new cc.Vec2(-1, -1);
         
         // 设置状态信息

+ 1 - 1
assets/scripts/CombatSystem/BlockSelection/BlockInfo.ts

@@ -100,7 +100,7 @@ export class BlockInfo extends Component {
     // 位置信息
     @property({
         displayName: '所在区域',
-        tooltip: '方块当前所在的区域(kuang/grid)'
+        tooltip: '方块当前所在的区域(kuang/block1/block2/block3/grid)'
     })
     public currentLocation: string = 'kuang';
     

+ 68 - 15
assets/scripts/CombatSystem/BlockSelection/GameBlockSelection.ts

@@ -752,35 +752,88 @@ export class GameBlockSelection extends Component {
     
     // 检查是否在kuang区域内
     private isInKuangArea(touchPos: Vec2): boolean {
-        if (!this.blockManager.kuangContainer) return false;
+        // 检查是否在任何一个Block容器区域内
+        const blockContainers = [
+            this.blockManager.block1Container,
+            this.blockManager.block2Container,
+            this.blockManager.block3Container
+        ];
         
-        const kuangTransform = this.blockManager.kuangContainer.getComponent(UITransform);
-        if (!kuangTransform) return false;
+        for (const container of blockContainers) {
+            if (container) {
+                const transform = container.getComponent(UITransform);
+                if (transform) {
+                    const boundingBox = new Rect(
+                        container.worldPosition.x - transform.width * transform.anchorX,
+                        container.worldPosition.y - transform.height * transform.anchorY,
+                        transform.width,
+                        transform.height
+                    );
+                    
+                    if (boundingBox.contains(new Vec2(touchPos.x, touchPos.y))) {
+                        return true;
+                    }
+                }
+            }
+        }
         
-        const kuangBoundingBox = new Rect(
-            this.blockManager.kuangContainer.worldPosition.x - kuangTransform.width * kuangTransform.anchorX,
-            this.blockManager.kuangContainer.worldPosition.y - kuangTransform.height * kuangTransform.anchorY,
-            kuangTransform.width,
-            kuangTransform.height
-        );
+        // 如果Block容器都不可用,回退到检查kuang容器
+        if (this.blockManager.kuangContainer) {
+            const kuangTransform = this.blockManager.kuangContainer.getComponent(UITransform);
+            if (kuangTransform) {
+                const kuangBoundingBox = new Rect(
+                    this.blockManager.kuangContainer.worldPosition.x - kuangTransform.width * kuangTransform.anchorX,
+                    this.blockManager.kuangContainer.worldPosition.y - kuangTransform.height * kuangTransform.anchorY,
+                    kuangTransform.width,
+                    kuangTransform.height
+                );
+                
+                return kuangBoundingBox.contains(new Vec2(touchPos.x, touchPos.y));
+            }
+        }
         
-        return kuangBoundingBox.contains(new Vec2(touchPos.x, touchPos.y));
+        return false;
     }
     
-    // 返回方块到kuang区域
+    // 返回方块到对应的Block容器区域
     private returnBlockToKuang(startLocation: string) {
         const originalPos = this.blockManager.originalPositions.get(this.currentDragBlock);
+        const blockLocation = this.blockManager.blockLocations.get(this.currentDragBlock);
+        
         if (originalPos) {
-            const kuangNode = this.blockManager.kuangContainer;
-            if (kuangNode && this.currentDragBlock.parent !== kuangNode) {
+            // 根据方块的原始位置确定应该返回到哪个Block容器
+            let targetContainer: Node = null;
+            let targetLocation = 'kuang'; // 默认位置
+            
+            if (blockLocation && blockLocation.startsWith('block')) {
+                // 如果方块原本在Block容器中,返回到对应的容器
+                if (blockLocation === 'block1') {
+                    targetContainer = this.blockManager.block1Container;
+                    targetLocation = 'block1';
+                } else if (blockLocation === 'block2') {
+                    targetContainer = this.blockManager.block2Container;
+                    targetLocation = 'block2';
+                } else if (blockLocation === 'block3') {
+                    targetContainer = this.blockManager.block3Container;
+                    targetLocation = 'block3';
+                }
+            }
+            
+            // 如果没有找到对应的Block容器,回退到kuang容器
+            if (!targetContainer) {
+                targetContainer = this.blockManager.kuangContainer;
+                targetLocation = 'kuang';
+            }
+            
+            if (targetContainer && this.currentDragBlock.parent !== targetContainer) {
                 this.currentDragBlock.removeFromParent();
-                kuangNode.addChild(this.currentDragBlock);
+                targetContainer.addChild(this.currentDragBlock);
             }
             
             this.currentDragBlock.position = originalPos.clone();
+            this.blockManager.blockLocations.set(this.currentDragBlock, targetLocation);
         }
         
-        this.blockManager.blockLocations.set(this.currentDragBlock, 'kuang');
         this.blockManager.showPriceLabel(this.currentDragBlock);
         
         // 当方块返回kuang区域时,重新设置植物图标缩放至0.45倍

+ 0 - 46
assets/scripts/TestScene/WeaponBlockTestScript.ts

@@ -399,49 +399,6 @@ export class WeaponBlockTestScript extends Component {
     }
     
     // 加载武器图标
-    /**
-     * 应用自适应缩放和居中逻辑
-     * 基于武器精灵的原始尺寸和方块的ContentSize自动计算缩放比例
-     * 并将武器图标居中显示
-     */
-    private applyAdaptiveScalingAndCentering(weaponNode: Node, block: Node): void {
-        if (!weaponNode || !block) {
-            console.warn('[WeaponBlockTestScript] applyAdaptiveScalingAndCentering: 无效的节点参数');
-            return;
-        }
-
-        const weaponTransform = weaponNode.getComponent(UITransform);
-        const blockTransform = block.getComponent(UITransform);
-        
-        if (!weaponTransform || !blockTransform) {
-            console.warn('[WeaponBlockTestScript] applyAdaptiveScalingAndCentering: 缺少UITransform组件');
-            return;
-        }
-
-        // 获取武器精灵的原始尺寸
-        const weaponSprite = weaponNode.getComponent(Sprite);
-        if (!weaponSprite || !weaponSprite.spriteFrame) {
-            console.warn('[WeaponBlockTestScript] applyAdaptiveScalingAndCentering: 武器精灵或SpriteFrame无效');
-            return;
-        }
-
-        const originalSize = weaponSprite.spriteFrame.originalSize;
-        const blockContentSize = blockTransform.contentSize;
-        
-        // 计算缩放比例,保持10%的边距
-        const marginFactor = 0.9; // 90%的空间用于武器图标,10%作为边距
-        const scaleX = (blockContentSize.width * marginFactor) / originalSize.width;
-        const scaleY = (blockContentSize.height * marginFactor) / originalSize.height;
-        const finalScale = Math.min(scaleX, scaleY); // 使用较小的缩放比例以保持宽高比
-        
-        // 应用缩放
-        weaponNode.setScale(finalScale, finalScale, 1);
-        
-        // 居中武器图标
-        weaponNode.setPosition(0, 0, 0);
-        
-        console.log(`[WeaponBlockTestScript] 自适应缩放应用: 原始尺寸(${originalSize.width}x${originalSize.height}), 方块尺寸(${blockContentSize.width}x${blockContentSize.height}), 最终缩放: ${finalScale.toFixed(3)}`);
-    }
 
     private loadWeaponIcon(block: Node, weaponConfig: WeaponConfig) {
         // 根据预制体结构:WeaponBlock -> B1 -> Weapon
@@ -487,9 +444,6 @@ export class WeaponBlockTestScript extends Component {
                 spriteFrame && spriteFrame.isValid) {
                 weaponSprite.spriteFrame = spriteFrame;
                 
-                // 应用自适应缩放和居中逻辑
-                this.applyAdaptiveScalingAndCentering(weaponNode, block);
-                
                 console.log(`[WeaponBlockTestScript] 成功加载武器图标: ${weaponConfig.name}`);
             }
         });

+ 0 - 9
视觉音效资源配置表.csv

@@ -1,9 +0,0 @@
-武器ID,武器名称,1x1贴图,1x2贴图,2x1贴图,2x2贴图,子弹预制体,击中特效,拖尾特效,燃烧特效,枪口特效,发射音效
-pea_shooter,毛豆射手,images/PlantsSprite/001-1,images/PlantsSprite/001-1,images/PlantsSprite/001-1,images/PlantsSprite/001-1,bullets/PeaBullet,Animation/WeaponTx/tx0002/tx0002,,Animation/WeaponTx/tx0002/tx0002,audio/pea_shot
-sharp_carrot,尖胡萝卜,images/PlantsSprite/002,images/PlantsSprite/002,images/PlantsSprite/002,images/PlantsSprite/002,bullets/CarrotBullet,,Animation/WeaponTx/tx0001/tx0001,,Animation/WeaponTx/tx0001/tx0001,audio/carrot_shot
-saw_grass,锯齿草,images/PlantsSprite/003,images/PlantsSprite/003,images/PlantsSprite/003,images/PlantsSprite/003,bullets/SawBullet,Animation/WeaponTx/tx0002/tx0002,,,Animation/WeaponTx/tx0002/tx0002,audio/saw_shot
-watermelon_bomb,西瓜炸弹,images/PlantsSprite/007,images/PlantsSprite/007,images/PlantsSprite/007,images/PlantsSprite/007,bullets/WatermelonBomb,Animation/WeaponTx/tx0007/tx0007,,,Animation/WeaponTx/tx0007/tx0007,audio/bomb_launch
-boomerang_plant,回旋镖盆栽,images/PlantsSprite/004,images/PlantsSprite/004,images/PlantsSprite/004,images/PlantsSprite/004,bullets/BoomerangBullet,Animation/WeaponTx/tx0003/tx0003,,,Animation/WeaponTx/tx0003/tx0003,audio/boomerang_throw
-hot_pepper,炙热辣椒,images/PlantsSprite/005,images/PlantsSprite/005,images/PlantsSprite/005,images/PlantsSprite/005,bullets/PepperBomb,Animation/WeaponTx/tx0005/tx0005,,Animation/WeaponTx/tx0005/tx0005,Animation/WeaponTx/tx0005/tx0005,audio/pepper_launch
-cactus_shotgun,仙人散弹,images/PlantsSprite/008,images/PlantsSprite/008,images/PlantsSprite/008,images/PlantsSprite/008,bullets/CactusBullet,Animation/WeaponTx/tx0005/tx0005,,,Animation/WeaponTx/tx0005/tx0005,audio/cactus_shot
-okra_missile,秋葵导弹,images/PlantsSprite/006,images/PlantsSprite/006,images/PlantsSprite/006,images/PlantsSprite/006,bullets/OkraMissile,Animation/WeaponTx/tx0006/tx0006,,,Animation/WeaponTx/tx0006/tx0006,audio/missile_launch 

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