master
humingxing 1 hour ago
parent a62b70ef4c
commit c730256492
  1. 147
      assets/bundles/battleHero/prefab/buff/万神幡.prefab
  2. 13
      assets/bundles/battleHero/prefab/buff/万神幡.prefab.meta
  3. 147
      assets/bundles/battleHero/prefab/buff/千里眼.prefab
  4. 13
      assets/bundles/battleHero/prefab/buff/千里眼.prefab.meta
  5. 147
      assets/bundles/battleHero/prefab/buff/封神榜上层.prefab
  6. 13
      assets/bundles/battleHero/prefab/buff/封神榜上层.prefab.meta
  7. 147
      assets/bundles/battleHero/prefab/buff/幻魂镜.prefab
  8. 13
      assets/bundles/battleHero/prefab/buff/幻魂镜.prefab.meta
  9. 147
      assets/bundles/battleHero/prefab/buff/幻魂镜上层.prefab
  10. 13
      assets/bundles/battleHero/prefab/buff/幻魂镜上层.prefab.meta
  11. 147
      assets/bundles/battleHero/prefab/buff/幻魂镜下层.prefab
  12. 13
      assets/bundles/battleHero/prefab/buff/幻魂镜下层.prefab.meta
  13. 147
      assets/bundles/battleHero/prefab/buff/授仙箓上层.prefab
  14. 13
      assets/bundles/battleHero/prefab/buff/授仙箓上层.prefab.meta
  15. 147
      assets/bundles/battleHero/prefab/buff/神偷手.prefab
  16. 13
      assets/bundles/battleHero/prefab/buff/神偷手.prefab.meta
  17. 293
      assets/bundles/battleHero/prefab/buff/缚仙网捕获.prefab
  18. 13
      assets/bundles/battleHero/prefab/buff/缚仙网捕获.prefab.meta
  19. 170
      assets/bundles/battleHero/prefab/skill/召唤哮天犬.prefab
  20. 13
      assets/bundles/battleHero/prefab/skill/召唤哮天犬.prefab.meta
  21. 170
      assets/bundles/battleHero/prefab/skill/定身术.prefab
  22. 13
      assets/bundles/battleHero/prefab/skill/定身术.prefab.meta
  23. 147
      assets/bundles/battleHero/prefab/skill/干扰迷雾.prefab
  24. 13
      assets/bundles/battleHero/prefab/skill/干扰迷雾.prefab.meta
  25. 170
      assets/bundles/battleHero/prefab/skill/李靖宝塔.prefab
  26. 13
      assets/bundles/battleHero/prefab/skill/李靖宝塔.prefab.meta
  27. 239
      assets/bundles/battleHero/prefab/skill/棍.prefab
  28. 13
      assets/bundles/battleHero/prefab/skill/棍.prefab.meta
  29. 170
      assets/bundles/battleHero/prefab/skill/生死簿.prefab
  30. 13
      assets/bundles/battleHero/prefab/skill/生死簿.prefab.meta
  31. 262
      assets/bundles/battleHero/prefab/skill/葫芦.prefab
  32. 13
      assets/bundles/battleHero/prefab/skill/葫芦.prefab.meta
  33. 7415
      assets/bundles/first/prefab/gm.prefab
  34. 13
      assets/bundles/first/prefab/gm.prefab.meta
  35. 14
      assets/bundles/rank/prefab/Rank.prefab
  36. 8
      assets/mx/module/battle/combat/DamagePipeline.ts
  37. 4
      assets/mx/module/battle/combat/LifecycleSystem.ts
  38. 12
      assets/mx/module/battle/deploy/DeploySystem.ts
  39. 10
      assets/mx/module/battle/events/BattleEvents.ts
  40. 47
      assets/mx/module/battle/index.ts
  41. 8
      assets/mx/module/battle/player/PlayerSlot.ts
  42. 8
      assets/mx/module/battle/registry/registerBuiltin.ts
  43. 8
      assets/mx/module/battle/unit/UnitFactory.ts
  44. 18
      assets/mx/module/battle/unit/WaveSpawner.ts
  45. 2
      assets/scene/main.scene
  46. 2
      assets/script/battle/combat/TowerRuinHost.ts
  47. 3
      assets/script/battle/config/BattleHeroTable.ts
  48. 2
      assets/script/battle/config/MonsterHpCalculator.ts
  49. 2
      assets/script/battle/runtime/DeployEntityQuery.ts
  50. 11
      assets/script/manager/MonsterDataManager.ts
  51. 34
      assets/script/ui/BattleGame/Monster.ts
  52. 17
      preview-template/workbench/js/device.js
  53. 10
      preview-template/workbench/js/host.js

@ -1,147 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "万神幡",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "万神幡",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 92.30000305175781,
"height": 110.5999984741211
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.4718309620492603,
"y": 0.46518988673384165
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "59EY36Mf9Dao7BOy95/CUP"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "8b3b9703-e078-4b01-afae-1dcbb2679720",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6dyrYMuzVMlpzyg7Oj7hO6"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "9cLeb87iBI96xQ46EaDItR",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "c2d568b7-f977-48ae-949a-a97c44069f6b",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "万神幡"
}
}

@ -1,147 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "千里眼",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "千里眼",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "03hJvoH0RMLIj04LXWcP7X"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "d73ed6c3-8de6-4f05-9028-c029acd8e35e",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "animation",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "815QfuvJRHXbiripP9taLM"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "b3sXw8H9RM7Kf5qZniu7/2",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "1f0c0968-547f-49b6-91fa-1914f110e58a",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "千里眼"
}
}

@ -1,147 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "封神榜上层",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "封神榜上层",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_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": 0.8,
"y": 0.8,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "46urP5DeJJ/ZHYGZa6MTny"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "cd5ff2d1-2db8-4758-9745-d1aa3ba48c90",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "授仙箓",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": false,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e3fBEupHxHsKmfFteaOKdx"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "39jYjEjrlN7JlOuQ0MAbqX",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "c0a6dc4e-ede2-4b74-abfb-7f87e1a224f4",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "封神榜上层"
}
}

@ -1,147 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "幻魂镜",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "幻魂镜",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 89.5999984741211,
"height": 27.299999237060547
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.44542411302539475,
"y": 2.36593399791044
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "86OA8I/o1O2b4o3Tm4Du8S"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "9241c72c-56e5-4eeb-a8e6-542254b299a9",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "施法效果",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": false,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "deTsnk8RlDk41FtDYJryPe"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "89Uk9Gfz1LN5h6x7Powumv",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "9536f98e-f3c4-487e-9800-31cf05181a6e",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "幻魂镜"
}
}

@ -1,147 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "幻魂镜上层",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "幻魂镜上层",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 89.5999984741211,
"height": 27.299999237060547
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.44542411302539475,
"y": 2.36593399791044
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "86OA8I/o1O2b4o3Tm4Du8S"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "9241c72c-56e5-4eeb-a8e6-542254b299a9",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "技能效果2",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "deTsnk8RlDk41FtDYJryPe"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "89Uk9Gfz1LN5h6x7Powumv",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "36f37b84-3d7f-4b5a-81d1-d4b937520f62",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "幻魂镜上层"
}
}

@ -1,147 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "幻魂镜下层",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "幻魂镜下层",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 89.5999984741211,
"height": 27.299999237060547
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.44542411302539475,
"y": 2.36593399791044
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "86OA8I/o1O2b4o3Tm4Du8S"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "9241c72c-56e5-4eeb-a8e6-542254b299a9",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "技能效果",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "deTsnk8RlDk41FtDYJryPe"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "89Uk9Gfz1LN5h6x7Powumv",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "559264ec-eff4-4568-91bd-b81d6c54ad11",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "幻魂镜下层"
}
}

@ -1,147 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "授仙箓上层",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "授仙箓上层",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_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": 0.8,
"y": 0.8,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "48n4DbMBxCiYF6xjEFIQgx"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "4366edec-ea38-4581-b857-1cddada03556",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "授仙箓",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": false,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c8wzXKAHREP4M9ezi7p+Rp"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "55Tu+wTEdOGYEiWdwmJEFG",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "df2fcdc3-575e-4a28-a310-af4dcd452b9e",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "授仙箓上层"
}
}

@ -1,147 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "神偷手",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "神偷手",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 101.5,
"height": 91
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5337931064549338,
"y": 0.5898901132436899
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "1fG1zeNqpBabDHrUhz0Ru8"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "05642a87-78b8-44ea-b90b-6fe56de07762",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "80CJaBWf5G4IdNhUkADneo"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "7bXSsGMJlD3qmFjTaZyQk5",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "db8e49d7-64cb-4bc1-aaf5-c1097d1e90cf",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "神偷手"
}
}

@ -1,293 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "缚仙网捕获",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "缚仙网捕获",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
}
],
"_active": true,
"_components": [
{
"__id__": 8
},
{
"__id__": 10
},
{
"__id__": 12
}
],
"_prefab": {
"__id__": 14
},
"_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": 0.7,
"y": 0.7,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "spine",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 3
},
{
"__id__": 5
}
],
"_prefab": {
"__id__": 7
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 4
},
"_contentSize": {
"__type__": "cc.Size",
"width": 107,
"height": 84
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.49065420560747663,
"y": 0.47619047619047616
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "2bN+6AswJOE7UqHsvyz/og"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 6
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "be839b0d-21d4-4b86-a7f1-89d8f8bcddaf",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "捕获",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "52+MtjPrREJ4fiCfu5/9y9"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "d6+NVrzTxP85xmZBcbLvWN",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 9
},
"_contentSize": {
"__type__": "cc.Size",
"width": 83,
"height": 83
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "3ezL62DwZPvolS/h9gdNGq"
},
{
"__type__": "cc.UIRenderer",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "f7nWFK+qxCZreg4LiazDPT"
},
{
"__type__": "cc.Sorting2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 13
},
"_sortingLayer": 3,
"_sortingOrder": 3,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "88R7nr7ydDAYAFAgx2zAB/"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "d3lPfoJoFNpIshxHDEpTpp",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "a903e4ee-4125-41dd-a085-350d075b7f13",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "缚仙网捕获"
}
}

@ -1,170 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "召唤哮天犬",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "召唤哮天犬",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
},
{
"__id__": 6
}
],
"_prefab": {
"__id__": 8
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d8ZtXDHR9HeZ08lEqhkIUl"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "95469b30-8082-4b82-8ae1-a7cc41e88b5a",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "杨戬技能",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "3cE8XEkXFASb86jTqIeEaI"
},
{
"__type__": "cc.Sorting2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_sortingLayer": 3,
"_sortingOrder": 3,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e7hTORFYpDA7gMOLDa1vMZ"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "c172j/w59DUaQuXc+TGnDR",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "3046f23a-121d-49f3-923a-637476a6ae85",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "召唤哮天犬"
}
}

@ -1,170 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "定身术",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "定身术",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
},
{
"__id__": 6
}
],
"_prefab": {
"__id__": 8
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d8ZtXDHR9HeZ08lEqhkIUl"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "59c2e162-8380-4c3b-ab38-afd6bcebb970",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "悟空施放",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "3cE8XEkXFASb86jTqIeEaI"
},
{
"__type__": "cc.Sorting2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_sortingLayer": 3,
"_sortingOrder": 3,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e7hTORFYpDA7gMOLDa1vMZ"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "c172j/w59DUaQuXc+TGnDR",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "e5beb88e-7f0e-47f3-a898-8a84458d18f3",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "定身术"
}
}

@ -1,147 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "干扰迷雾",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "干扰迷雾",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -37.585,
"y": 439.6,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 0.2,
"y": 0.4,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 177.19000244140625,
"height": 157.9600067138672
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.33043624600898147,
"y": 0.3956697730028216
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d5SnZEe6pDBayFNm8HEFe0"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "59119939-7ce3-443f-9798-5d0660a4aeed",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "皮肤字1_1",
"defaultAnimation": "技能效果",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "13GPMslQBMeK4o9hLHZnMn"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "42GuMVlBRBnZb8+WZwZWNR",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "fa04f0cb-bb64-48e9-a09d-0fa9a8421a0c",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "干扰迷雾"
}
}

@ -1,170 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "李靖宝塔",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "李靖宝塔",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
},
{
"__id__": 6
}
],
"_prefab": {
"__id__": 8
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 36.599998474121094,
"height": 64.80000305175781
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.8043716328259924,
"y": 0.6507715460331507
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d8ZtXDHR9HeZ08lEqhkIUl"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "00aa6e82-b6b2-4313-9a8c-88d1349e84df",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "李靖技能",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "3cE8XEkXFASb86jTqIeEaI"
},
{
"__type__": "cc.Sorting2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_sortingLayer": 3,
"_sortingOrder": 3,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e7hTORFYpDA7gMOLDa1vMZ"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "c172j/w59DUaQuXc+TGnDR",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "34a91445-fa32-4d7a-8502-775726e0de35",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "李靖宝塔"
}
}

@ -1,239 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "棍",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "棍",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
}
],
"_active": true,
"_components": [
{
"__id__": 8
}
],
"_prefab": {
"__id__": 10
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 9.856,
"y": 3.066,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 0.5,
"y": 0.5,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "剑气",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 3
},
{
"__id__": 5
}
],
"_prefab": {
"__id__": 7
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -20.568,
"y": 10.989,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 1,
"w": 6.123233995736766e-17
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 180
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 4
},
"_contentSize": {
"__type__": "cc.Size",
"width": 173.42999267578125,
"height": 148.72000122070312
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5006054509679297,
"y": 0.4103012369345594
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "faftZacVdAPpb77M0x0iJN"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 6
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "55439550-a81d-4ae0-8b2b-55a541ba162b",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "剑气红",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "06gh4gzJ9GA710GvBrStt7"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "b33ITW0vlFLanQ1WRCfGIb",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 9
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "9fu4lzkKZH2JAjsMyZFCqu"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "c6bl+833JG5oWC08q0+HyC",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "e23a1a9e-43ed-4ba1-8803-6bb72deab1c1",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "棍"
}
}

@ -1,170 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "生死簿",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "生死簿",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
},
{
"__id__": 6
}
],
"_prefab": {
"__id__": 8
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 199.47999572753906,
"height": 127.87000274658203
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5001002820979015,
"y": 0.2973332262541141
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "175Ch8+SxG7r5TCaU3W+XL"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "4db8a973-070a-4577-997a-d030858ed4f2",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "animation",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "ce7otLwP9Nf5kV0LTH+wJo"
},
{
"__type__": "cc.Sorting2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_sortingLayer": 3,
"_sortingOrder": 3,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "7fwihZ3htAB6tvkibC2IoO"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "b5yrWzQUlLf4Ieq/KcTvg8",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "d6d3bd6b-b4ca-4dcd-bcd0-beae5a30e0eb",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "生死簿"
}
}

@ -1,262 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "葫芦",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "葫芦",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
}
],
"_active": true,
"_components": [
{
"__id__": 10
}
],
"_prefab": {
"__id__": 12
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 24.573,
"y": 30.123,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0.3826834323650898,
"w": 0.9238795325112867
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 45
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "葫芦动画",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 3
},
{
"__id__": 5
},
{
"__id__": 7
}
],
"_prefab": {
"__id__": 9
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 11.097,
"y": 47.683,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": -0.7071067811865475,
"w": 0.7071067811865476
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": -90
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 4
},
"_contentSize": {
"__type__": "cc.Size",
"width": 177.19000244140625,
"height": 157.9600067138672
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.33043624600898147,
"y": 0.3956697730028216
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "2bwvYjaPNCLYlpgIJKIRiF"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 6
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "59119939-7ce3-443f-9798-5d0660a4aeed",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "皮肤字1_1",
"defaultAnimation": "技能葫芦",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c1H6LgGs1ElYb8hx2NOBwk"
},
{
"__type__": "cc.Sorting2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 8
},
"_sortingLayer": 3,
"_sortingOrder": 2,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "24NqImEcFL3KbjTzDDe6LJ"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "10z98Q3LNNoZzfed/0dUtz",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c2FiSvhfhMNJejyREkjYFV"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "29Xt84CwVO96BkUqaVgxDN",
"instance": null,
"targetOverrides": null
}
]

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "1897ab71-d685-4fc2-af93-5f3fd1706252",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "葫芦"
}
}

File diff suppressed because it is too large Load Diff

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "2bd8f6dd-2a79-470b-990e-40f516a55e9d",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "gm"
}
}

@ -4288,7 +4288,7 @@
"__id__": 172
},
"_children": [],
"_active": false,
"_active": true,
"_components": [
{
"__id__": 180
@ -4379,13 +4379,10 @@
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "00d1cf2c-49f7-451a-9996-ec8699d02eea@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_spriteFrame": null,
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
@ -8261,10 +8258,7 @@
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "00d1cf2c-49f7-451a-9996-ec8699d02eea@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_spriteFrame": null,
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,

@ -1,5 +1,5 @@
import type { World, EntityId } from 'db://assets/mx/module/ecs';
import type { AbilityContext } from 'db://assets/mx/module/battle/combat/AbilityContext';
import type { AbilityContext } from './AbilityContext';
import {
AttrId,
TagComp,
@ -11,9 +11,9 @@ import {
canDealDamageToYanClaimed,
isBajiaoBlowRetreating,
type AttributeModifier,
} from 'db://assets/mx/module/battle/ecs/Components';
import { BattleEventFactory } from 'db://assets/mx/module/battle/events/BattleEvents';
import type { BattleEventBus } from 'db://assets/mx/module/battle/events/BattleEventBus';
} from '../ecs/Components';
import { BattleEventFactory } from '../events/BattleEvents';
import type { BattleEventBus } from '../events/BattleEventBus';
import type { AttributeSystem } from './AttributeSystem';
import type { LifecycleSystem } from './LifecycleSystem';
import type { EffectExecutor } from './EffectExecutor';

@ -1,6 +1,6 @@
import type { World, EntityId } from 'db://assets/mx/module/ecs';
import { BattleEventFactory } from 'db://assets/mx/module/battle/events/BattleEvents';
import type { BattleEventBus } from 'db://assets/mx/module/battle/events/BattleEventBus';
import { BattleEventFactory } from '../events/BattleEvents';
import type { BattleEventBus } from '../events/BattleEventBus';
import type { GridMap } from '../battlefield/GridMap';
import type { SpatialGrid } from '../battlefield/SpatialGrid';
import type { AbilitySystem } from './AbilitySystem';

@ -1,10 +1,10 @@
import type { World, EntityId } from 'db://assets/mx/module/ecs';
import type { Cell } from 'db://assets/mx/module/battle/battlefield/Cell';
import type { UnitDef } from 'db://assets/mx/module/battle/config/BattleConfigTypes';
import { BattleEventFactory } from 'db://assets/mx/module/battle/events/BattleEvents';
import type { BattleEventBus } from 'db://assets/mx/module/battle/events/BattleEventBus';
import { UnitFactory } from 'db://assets/mx/module/battle/unit/UnitFactory';
import { UnitMetaComp, TeamComp } from 'db://assets/mx/module/battle/ecs/Components';
import type { Cell } from '../battlefield/Cell';
import type { UnitDef } from '../config/BattleConfigTypes';
import { BattleEventFactory } from '../events/BattleEvents';
import type { BattleEventBus } from '../events/BattleEventBus';
import { UnitFactory } from '../unit/UnitFactory';
import { UnitMetaComp, TeamComp } from '../ecs/Components';
import type { DeployResult } from './DeployTypes';
import { createDefaultDeployRules, type DeployRule } from './DeployValidator';
import type { IConfigProvider } from '../config/IConfigProvider';

@ -1,8 +1,8 @@
import type { EntityId } from 'db://assets/mx/module/battle/ecs/EntityId';
import type { AbilityContext } from 'db://assets/mx/module/battle/combat/AbilityContext';
import type { Cell } from 'db://assets/mx/module/battle/battlefield/Cell';
import type { UnitDefId, EffectSpec } from 'db://assets/mx/module/battle/config/BattleConfigTypes';
import { BattlePhase } from 'db://assets/mx/module/battle/core/BattlePhase';
import type { EntityId } from '../ecs/EntityId';
import type { AbilityContext } from '../combat/AbilityContext';
import type { Cell } from '../battlefield/Cell';
import type { UnitDefId, EffectSpec } from '../config/BattleConfigTypes';
import { BattlePhase } from '../core/BattlePhase';
import { BattleEventType } from './BattleEventType';
/** 战斗事件联合类型(type 字段必须使用 BattleEventType 枚举) */

@ -3,47 +3,14 @@
*
* ## 快速上手
*
* ```ts
* import {
* BattleHost,
* BattleEventType,
* EffectRegistry,
* registerBuiltinBattleEffects,
* } from 'db://assets/mx/module/battle';
* 业务侧从本模块入口引入 `BattleHost` / `BattleEventType` / `EffectRegistry` /
* `registerBuiltinBattleEffects`(本文件注释勿写回本入口的 from 字面量,避免 Rollup 误报环)。
*
* // 1. 注册内置通用效果(DealDamage / Heal / ApplyBuff 等原语)
* registerBuiltinBattleEffects();
* // 业务层专属效果在自己的模块里 EffectRegistry.register('MyEffect', handler)
*
* // 2. 配置:自实现 IConfigProvider 或用 InMemoryConfigProvider
* // const config = ...;
*
* // 3. 打开战斗(可选 bridge 注入寻路、表现)
* const host = BattleHost.open({
* levelId: 'sample_1',
* config,
* mode: 'solo',
* bridge: {
* onCombatTick(session, dt) { /* 怪物位移、同步 Node *\/ },
* onBattleEvent(session, e) {
* if (e.type === BattleEventType.UnitSpawned) { /* 创建 prefab *\/ }
* },
* },
* });
*
* // 4. 备战 → 放置 → 开战
* host.deploy(0, 'tower_blade', { row: 8, col: 4 });
* host.startCombat();
*
* // 5. 每帧驱动(游戏 loop / Cocos update)
* host.tick(1 / 60);
*
* // 6. 监听事件
* host.on(BattleEventType.DamageDealt, (e) => console.log(String(e)));
*
* // 7. 结束
* host.destroy();
* ```
* 1. `registerBuiltinBattleEffects()` 注册内置效果;业务效果自行 `EffectRegistry.register`
* 2. 自实现 `IConfigProvider` 或用 `InMemoryConfigProvider`
* 3. `BattleHost.open({ levelId, config, mode, bridge })` 开局
* 4. `host.deploy` → `host.startCombat` → 每帧 `host.tick`
* 5. `host.on(BattleEventType.…)` 听事件;结束 `host.destroy()`
*
* ## 扩展点
*

@ -1,7 +1,7 @@
import type { MapRegion } from 'db://assets/mx/module/battle/battlefield/MapRegion';
import type { EntityId } from 'db://assets/mx/module/battle/ecs/EntityId';
import type { BattleEventBus } from 'db://assets/mx/module/battle/events/BattleEventBus';
import { BattleEventFactory } from 'db://assets/mx/module/battle/events/BattleEvents';
import type { MapRegion } from '../battlefield/MapRegion';
import type { EntityId } from '../ecs/EntityId';
import type { BattleEventBus } from '../events/BattleEventBus';
import { BattleEventFactory } from '../events/BattleEvents';
/** 单玩家槽:经济、城墙、已部署单位 */
export class PlayerSlot {

@ -1,9 +1,9 @@
import { createAbilityContext } from 'db://assets/mx/module/battle/combat/AbilityContext';
import type { BattleServices } from 'db://assets/mx/module/battle/combat/BattleServices';
import type { EffectSpec } from 'db://assets/mx/module/battle/config/BattleConfigTypes';
import { createAbilityContext } from '../combat/AbilityContext';
import type { BattleServices } from '../combat/BattleServices';
import type { EffectSpec } from '../config/BattleConfigTypes';
import { BattleEventFactory } from '../events/BattleEvents';
import { EffectRegistry, ConditionRegistry } from './EffectRegistry';
import { TagComp, HealthComp, BuffContainerComp } from 'db://assets/mx/module/battle/ecs/Components';
import { TagComp, HealthComp, BuffContainerComp } from '../ecs/Components';
import { traceCombatDamage } from 'db://assets/mx/tools/CombatDamageTrace';
const BUILTIN_FLAG = '__mx_battle_builtinEffectsRegistered__';

@ -1,7 +1,7 @@
import type { BattleServices } from 'db://assets/mx/module/battle/combat/BattleServices';
import type { Cell } from 'db://assets/mx/module/battle/battlefield/Cell';
import type { EntityId } from 'db://assets/mx/module/battle/ecs/EntityId';
import type { UnitDef } from 'db://assets/mx/module/battle/config/BattleConfigTypes';
import type { BattleServices } from '../combat/BattleServices';
import type { Cell } from '../battlefield/Cell';
import type { EntityId } from '../ecs/EntityId';
import type { UnitDef } from '../config/BattleConfigTypes';
import {
TransformComp,
TeamComp,

@ -1,16 +1,16 @@
import type { World, EntityId } from 'db://assets/mx/module/ecs';
import type { ISystem } from 'db://assets/mx/module/ecs';
import type { Cell } from 'db://assets/mx/module/battle/battlefield/Cell';
import type { UnitDefId, WavePortPlan, WaveSpawnEntry, WaveSpawnSegment } from 'db://assets/mx/module/battle/config/BattleConfigTypes';
import { BattlePhase } from 'db://assets/mx/module/battle/core/BattlePhase';
import { BattleTeamId } from 'db://assets/mx/module/battle/ecs/BattleTeamId';
import { EntityTag } from 'db://assets/mx/module/battle/ecs/EntityTag';
import { BattleEventFactory } from 'db://assets/mx/module/battle/events/BattleEvents';
import type { BattleEventBus } from 'db://assets/mx/module/battle/events/BattleEventBus';
import { UnitFactory } from 'db://assets/mx/module/battle/unit/UnitFactory';
import type { Cell } from '../battlefield/Cell';
import type { UnitDefId, WavePortPlan, WaveSpawnEntry, WaveSpawnSegment } from '../config/BattleConfigTypes';
import { BattlePhase } from '../core/BattlePhase';
import { BattleTeamId } from '../ecs/BattleTeamId';
import { EntityTag } from '../ecs/EntityTag';
import { BattleEventFactory } from '../events/BattleEvents';
import type { BattleEventBus } from '../events/BattleEventBus';
import { UnitFactory } from './UnitFactory';
import { finitePositiveHp } from '../../../tools/FiniteHp';
import { traceCombatDamage } from '../../../tools/CombatDamageTrace';
import { TeamComp, TagComp, HealthComp, MovementComp, UnitMetaComp } from 'db://assets/mx/module/battle/ecs/Components';
import { TeamComp, TagComp, HealthComp, MovementComp, UnitMetaComp } from '../ecs/Components';
import type { IConfigProvider } from '../config/IConfigProvider';
import type { GridMap } from '../battlefield/GridMap';
import type { MapTopology } from '../battlefield/MapTopology';

@ -187,7 +187,7 @@
"_priority": 1,
"_fov": 45,
"_fovAxis": 0,
"_orthoHeight": 800,
"_orthoHeight": 799.9999999999999,
"_near": 0,
"_far": 2000,
"_color": {

@ -1,5 +1,5 @@
import type { EntityId } from 'db://assets/mx/module/ecs';
import { TeamComp } from 'db://assets/mx/module/battle';
import { TeamComp } from 'db://assets/mx/module/battle/ecs/Components';
import type { ProjectBattleHandle } from '../runtime/BattleRuntime';
import { findEntityIdByGridIndex, findGridIndexForEntity } from '../runtime/DeployEntityQuery';
import type { CocosBagBoardView } from '../view/CocosBagBoardView';

@ -215,9 +215,6 @@ export function heroForTextRow(text: ITableText | null | undefined): ITableHero
export function textIconName(text: ITableText): string {
const hero = heroForTextRow(text);
const res = (hero?.res ?? '').trim();
if (!res) {
console.log('[BattleHeroTable] textIconName 无 Hero.res', text?.id);
}
return res;
}

@ -1,5 +1,5 @@
import { TableNames } from '../../game/ConfigTableData';
import type { UnitDefId } from 'db://assets/mx/module/battle';
import type { UnitDefId } from 'db://assets/mx/module/battle/config/BattleConfigTypes';
import { logChapterMonsterHpCalc } from '../debug/MonsterHpDebugLog';
import type { ProjectLevelMonsterConfig } from './LevelMonsterConfig';

@ -1,4 +1,4 @@
import type { BattleSession } from 'db://assets/mx/module/battle';
import type { BattleSession } from 'db://assets/mx/module/battle/core/BattleSession';
import { TransformComp } from 'db://assets/mx/module/battle/ecs/Components';
import type { ComposedUnit } from 'db://assets/mx/module/merge';
import type { EntityId } from 'db://assets/mx/module/ecs';

@ -101,10 +101,8 @@ export class MonsterDataManager {
* @param row Monster 行
*/
static resolveMarchAnim(row: ITableMonster | null | undefined): string {
if (!row) {
console.error('[MonsterDataManager] resolveMarchAnim 无配表');
return '';
}
// Data 已清空(回池)时 row 为空,属调用时机问题,不是配表缺失
if (!row) return '';
if (this.isElementSmallMonster(row)) {
const icon = String(row.icon ?? '').trim();
const anim = ELEMENT_MARCH_BY_ICON[icon];
@ -122,10 +120,7 @@ export class MonsterDataManager {
* @param row Monster 行
*/
static resolveDeathAnim(row: ITableMonster | null | undefined): string {
if (!row) {
console.error('[MonsterDataManager] resolveDeathAnim 无配表');
return '';
}
if (!row) return '';
if (!this.isElementSmallMonster(row)) return '';
const march = this.resolveMarchAnim(row);
if (!march) return '';

@ -139,7 +139,8 @@ export class Monster extends Component {
this._lastAttackTime = 0;
if (this.mechanismImmobile) {
this.state = MonsterState.STOP;
} else {
} else if (this.anim?.isValid) {
// 皮肤异步未挂上时不播;_attachMonsterSkin 后会再 playWalk
this.playWalk();
}
}
@ -173,7 +174,7 @@ export class Monster extends Component {
/** 当前是否在播死亡轨(旧「死亡」或五行「系小怪2」) */
private _isDeathAnimPlaying(): boolean {
if (this.IsDead) return true;
if (!this.anim?.isValid) return false;
if (!this.Data || !this.anim?.isValid) return false;
const cur = String(this.anim.animation ?? '');
if (cur === '死亡') return true;
const death = MonsterDataManager.resolveDeathAnim(this.Data);
@ -1346,13 +1347,17 @@ export class Monster extends Component {
playWalk(speed = 1) {
if (!this.Data || this.Data.type == MonsterType.TreasureBox) return;
if (!this.anim?.isValid) return;
if (this._isDeathAnimPlaying()) return;
const anim = MonsterDataManager.resolveMarchAnim(this.Data);
if (!anim) {
console.error('[Monster] 行进动画名为空', this.Data.id, this.Data.icon);
return;
}
// 行军轨:先 REALTIME 起播再进 PRIVATE_CACHE(池化残留缓存会导致 findAnimation 失败)
this._ensureRealtimeSpine();
this.playSpine(anim, null, speed);
this.applyMarchSpineCache();
}
/**
@ -1380,10 +1385,8 @@ export class Monster extends Component {
onComplete?.();
return false;
}
// 行军用 PRIVATE_CACHE;死亡轨含附件切换,缓存模式无法起播,须切 REALTIME
if (typeof this.anim.setAnimationCacheMode === 'function') {
this.anim.setAnimationCacheMode(sp.SpineAnimationCacheMode.REALTIME);
}
// 行军用 PRIVATE_CACHE;死亡轨含附件切换,须 REALTIME
this._ensureRealtimeSpine();
// 禁止直接 findAnimation:Spine runtime 未就绪时会抛 Cannot read properties of null (reading 'lv')
this._animBaseTimeScale = 1;
const ok = BattleSpinePlayback.play(this.anim, anim, {
@ -1425,6 +1428,14 @@ export class Monster extends Component {
return;
}
if (this._isDeathAnimPlaying()) return;
// PRIVATE_CACHE / runtime 未就绪时先切 REALTIME 再查;仍无则等皮肤挂载后重试
if (BattleSpinePlayback.getAnimDuration(this.anim, name) == null) {
this._ensureRealtimeSpine();
if (BattleSpinePlayback.getAnimDuration(this.anim, name) == null) {
callback?.();
return;
}
}
this._animBaseTimeScale = timeScale;
const ok = BattleSpinePlayback.play(this.anim, name, {
loop,
@ -1437,6 +1448,16 @@ export class Monster extends Component {
}
}
/** 切 REALTIME,便于起播;行军成功后再 applyMarchSpineCache */
private _ensureRealtimeSpine(): void {
const sk = this.anim;
if (!sk?.isValid || typeof sk.setAnimationCacheMode !== 'function') return;
if (typeof sk.isAnimationCached === 'function' && sk.isAnimationCached()) {
sk.invalidAnimationCache?.();
}
sk.setAnimationCacheMode(sp.SpineAnimationCacheMode.REALTIME);
}
clear() {
this.unscheduleAllCallbacks();
GEvent.Ins.targetOff(this);
@ -1458,6 +1479,7 @@ export class Monster extends Component {
}
this.anim = null;
this.entityId = null;
this.IsDead = false;
this.Data = null;
this.mechanismImmobile = false;
this.boold = null;

@ -602,7 +602,22 @@
if (typeof cc.view.resizeWithBrowserSize === 'function') {
cc.view.resizeWithBrowserSize(false);
}
if (typeof cc.view.setFrameSize === 'function') {
// 3.8+ 用 screen.windowSize,避免 setFrameSize 废弃警告
var scr = global.screen || (cc.screen);
var applied = false;
if (scr) {
try {
if (cc.Size) {
scr.windowSize = new cc.Size(w, h);
} else if (scr.windowSize && typeof scr.windowSize === 'object') {
scr.windowSize = { width: w, height: h };
} else if (typeof scr.setWindowSize === 'function') {
scr.setWindowSize(w, h);
}
applied = true;
} catch (eScr) { /* 回退 setFrameSize */ }
}
if (!applied && typeof cc.view.setFrameSize === 'function') {
cc.view.setFrameSize(w, h);
}
var dr = null;

@ -367,7 +367,7 @@
var deviceSel = document.getElementById('pw-device-select');
if (deviceSel) {
deviceSel.addEventListener('change', function () {
self.bridge.call('device.set', { id: deviceSel.value });
self.bridge.call('device.set', { id: deviceSel.value }).catch(function () { /* */ });
});
}
var rotateBtn = document.getElementById('pw-device-rotate');
@ -422,7 +422,7 @@
if (pauseBtn) {
pauseBtn.addEventListener('click', function () {
self._paused = !self._paused;
self.bridge.call(self._paused ? 'game.pause' : 'game.resume');
self.bridge.call(self._paused ? 'game.pause' : 'game.resume').catch(function () { /* */ });
pauseBtn.textContent = self._paused ? '继续' : '暂停';
pauseBtn.classList.toggle('active', self._paused);
});
@ -433,13 +433,13 @@
btn.addEventListener('click', function () {
if (!self._paused) {
self._paused = true;
self.bridge.call('game.pause');
self.bridge.call('game.pause').catch(function () { /* */ });
if (pauseBtn) {
pauseBtn.textContent = '继续';
pauseBtn.classList.add('active');
}
}
self.bridge.call('game.step');
self.bridge.call('game.step').catch(function () { /* */ });
});
};
bindStep(document.getElementById('pw-game-step'));
@ -512,7 +512,7 @@
var apply = function (on) {
self._fpsOn = !!on;
syncUi(self._fpsOn);
if (self.bridge) self.bridge.call('game.fps', { on: self._fpsOn });
if (self.bridge) self.bridge.call('game.fps', { on: self._fpsOn }).catch(function () { /* 引擎未就绪时忽略 */ });
};
var toggle = function () { apply(!self._fpsOn); };
if (main) main.addEventListener('click', toggle);

Loading…
Cancel
Save