释放技能动画 设定在技能参数中+伤害系统建立

This commit is contained in:
2025-02-03 10:45:06 +08:00
parent 89978ddbe8
commit cdb8261be9
17 changed files with 960 additions and 462 deletions

View File

@@ -25,13 +25,13 @@
"__id__": 8 "__id__": 8
}, },
{ {
"__id__": 17 "__id__": 16
}, },
{ {
"__id__": 25 "__id__": 28
}, },
{ {
"__id__": 37 "__id__": 39
}, },
{ {
"__id__": 48 "__id__": 48
@@ -41,28 +41,25 @@
}, },
{ {
"__id__": 66 "__id__": 66
},
{
"__id__": 75
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 84 "__id__": 75
}, },
{ {
"__id__": 86 "__id__": 77
}, },
{ {
"__id__": 88 "__id__": 79
}, },
{ {
"__id__": 90 "__id__": 81
} }
], ],
"_prefab": { "_prefab": {
"__id__": 92 "__id__": 83
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -229,131 +226,6 @@
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": null "nestedPrefabInstanceRoots": null
}, },
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 9
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 8
},
"asset": {
"__uuid__": "198e9c93-3ac9-4564-9d0e-63c9836e509a",
"__expectedType__": "cc.Prefab"
},
"fileId": "54R/aYBglLI4Jn5pm++Jx8",
"instance": {
"__id__": 10
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "cdIK+ocxBJRLNeMROksdDi",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 11
},
{
"__id__": 13
},
{
"__id__": 14
},
{
"__id__": 15
},
{
"__id__": 16
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 12
},
"propertyPath": [
"_name"
],
"value": "max"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"54R/aYBglLI4Jn5pm++Jx8"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 12
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": -0.07,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 12
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 12
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 12
},
"propertyPath": [
"_active"
],
"value": false
},
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "anm", "_name": "anm",
@@ -366,17 +238,17 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 18 "__id__": 9
}, },
{ {
"__id__": 20 "__id__": 11
}, },
{ {
"__id__": 22 "__id__": 13
} }
], ],
"_prefab": { "_prefab": {
"__id__": 24 "__id__": 15
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -413,11 +285,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 17 "__id__": 8
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 19 "__id__": 10
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -441,11 +313,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 17 "__id__": 8
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 21 "__id__": 12
}, },
"_customMaterial": null, "_customMaterial": null,
"_srcBlendFactor": 2, "_srcBlendFactor": 2,
@@ -486,11 +358,11 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 17 "__id__": 8
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 23 "__id__": 14
}, },
"_id": "" "_id": ""
}, },
@@ -518,14 +390,14 @@
"__id__": 1 "__id__": 1
}, },
"_prefab": { "_prefab": {
"__id__": 26 "__id__": 17
}, },
"__editorExtras__": {} "__editorExtras__": {}
}, },
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
"root": { "root": {
"__id__": 25 "__id__": 16
}, },
"asset": { "asset": {
"__uuid__": "e1b8a315-ece3-41a2-941e-a66861753f1b", "__uuid__": "e1b8a315-ece3-41a2-941e-a66861753f1b",
@@ -533,7 +405,7 @@
}, },
"fileId": "c46/YsCPVOJYA4mWEpNYRx", "fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": { "instance": {
"__id__": 27 "__id__": 18
}, },
"targetOverrides": null "targetOverrides": null
}, },
@@ -547,25 +419,25 @@
"mountedComponents": [], "mountedComponents": [],
"propertyOverrides": [ "propertyOverrides": [
{ {
"__id__": 28 "__id__": 19
}, },
{ {
"__id__": 30 "__id__": 21
}, },
{ {
"__id__": 31 "__id__": 22
}, },
{ {
"__id__": 32 "__id__": 23
}, },
{ {
"__id__": 33 "__id__": 24
}, },
{ {
"__id__": 34 "__id__": 25
}, },
{ {
"__id__": 36 "__id__": 27
} }
], ],
"removedComponents": [] "removedComponents": []
@@ -573,7 +445,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 29 "__id__": 20
}, },
"propertyPath": [ "propertyPath": [
"_name" "_name"
@@ -589,7 +461,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 29 "__id__": 20
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -604,7 +476,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 29 "__id__": 20
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -620,7 +492,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 29 "__id__": 20
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -635,7 +507,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 29 "__id__": 20
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -645,7 +517,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 35 "__id__": 26
}, },
"propertyPath": [ "propertyPath": [
"_contentSize" "_contentSize"
@@ -665,7 +537,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 29 "__id__": 20
}, },
"propertyPath": [ "propertyPath": [
"_lscale" "_lscale"
@@ -684,14 +556,14 @@
"__id__": 1 "__id__": 1
}, },
"_prefab": { "_prefab": {
"__id__": 38 "__id__": 29
}, },
"__editorExtras__": {} "__editorExtras__": {}
}, },
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
"root": { "root": {
"__id__": 37 "__id__": 28
}, },
"asset": { "asset": {
"__uuid__": "50c3d5e4-49f8-4bd7-a15b-cda359a0ae5c", "__uuid__": "50c3d5e4-49f8-4bd7-a15b-cda359a0ae5c",
@@ -699,7 +571,7 @@
}, },
"fileId": "5fqU0L3/FOhKaco5UkHuWT", "fileId": "5fqU0L3/FOhKaco5UkHuWT",
"instance": { "instance": {
"__id__": 39 "__id__": 30
}, },
"targetOverrides": null "targetOverrides": null
}, },
@@ -713,22 +585,22 @@
"mountedComponents": [], "mountedComponents": [],
"propertyOverrides": [ "propertyOverrides": [
{ {
"__id__": 40 "__id__": 31
}, },
{ {
"__id__": 42 "__id__": 33
}, },
{ {
"__id__": 43 "__id__": 34
}, },
{ {
"__id__": 44 "__id__": 35
}, },
{ {
"__id__": 45 "__id__": 36
}, },
{ {
"__id__": 47 "__id__": 38
} }
], ],
"removedComponents": [] "removedComponents": []
@@ -736,7 +608,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 41 "__id__": 32
}, },
"propertyPath": [ "propertyPath": [
"_name" "_name"
@@ -752,7 +624,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 41 "__id__": 32
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -767,7 +639,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 41 "__id__": 32
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -783,7 +655,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 41 "__id__": 32
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -798,7 +670,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 46 "__id__": 37
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -819,7 +691,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 41 "__id__": 32
}, },
"propertyPath": [ "propertyPath": [
"_lscale" "_lscale"
@@ -831,6 +703,131 @@
"z": 1 "z": 1
} }
}, },
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 40
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 39
},
"asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90",
"__expectedType__": "cc.Prefab"
},
"fileId": "0d6ZXmA5dHkZxoGONDL2sE",
"instance": {
"__id__": 41
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 42
},
{
"__id__": 44
},
{
"__id__": 45
},
{
"__id__": 46
},
{
"__id__": 47
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 43
},
"propertyPath": [
"_name"
],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 43
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 43
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 43
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 43
},
"propertyPath": [
"_active"
],
"value": false
},
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_objFlags": 0, "_objFlags": 0,
@@ -848,10 +845,10 @@
"__id__": 48 "__id__": 48
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 50 "__id__": 50
}, },
@@ -859,7 +856,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -892,12 +889,12 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip" "value": "up"
}, },
{ {
"__type__": "cc.TargetInfo", "__type__": "cc.TargetInfo",
"localID": [ "localID": [
"0d6ZXmA5dHkZxoGONDL2sE" "91yoyAQGNDm5ziI7NUChZ+"
] ]
}, },
{ {
@@ -910,8 +907,8 @@
], ],
"value": { "value": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 4.65, "x": 4.302,
"y": 129.718, "y": 45.887,
"z": 0 "z": 0
} }
}, },
@@ -973,10 +970,10 @@
"__id__": 57 "__id__": 57
}, },
"asset": { "asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338", "__uuid__": "afb84e4d-b478-4ab6-8f14-4f69d7a2c57f",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "91yoyAQGNDm5ziI7NUChZ+", "fileId": "733PKzwANLyJWD2ume4u5f",
"instance": { "instance": {
"__id__": 59 "__id__": 59
}, },
@@ -984,7 +981,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M", "fileId": "6e93Sa8IZKKa8Fw7xWs/I6",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -1017,12 +1014,12 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "up" "value": "wind"
}, },
{ {
"__type__": "cc.TargetInfo", "__type__": "cc.TargetInfo",
"localID": [ "localID": [
"91yoyAQGNDm5ziI7NUChZ+" "733PKzwANLyJWD2ume4u5f"
] ]
}, },
{ {
@@ -1035,8 +1032,8 @@
], ],
"value": { "value": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 4.302, "x": 0,
"y": 45.887, "y": 0,
"z": 0 "z": 0
} }
}, },
@@ -1098,10 +1095,10 @@
"__id__": 66 "__id__": 66
}, },
"asset": { "asset": {
"__uuid__": "afb84e4d-b478-4ab6-8f14-4f69d7a2c57f", "__uuid__": "3899fa6a-77a8-4809-b34b-64e0daa5674c",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "733PKzwANLyJWD2ume4u5f", "fileId": "65v9q/98dMjafRlb094Ctr",
"instance": { "instance": {
"__id__": 68 "__id__": 68
}, },
@@ -1109,7 +1106,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "6e93Sa8IZKKa8Fw7xWs/I6", "fileId": "526SUDeQZOCbXYj7Jb2Rfx",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -1142,131 +1139,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "wind"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"733PKzwANLyJWD2ume4u5f"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 70
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 70
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 70
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 70
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 76
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 75
},
"asset": {
"__uuid__": "3899fa6a-77a8-4809-b34b-64e0daa5674c",
"__expectedType__": "cc.Prefab"
},
"fileId": "65v9q/98dMjafRlb094Ctr",
"instance": {
"__id__": 77
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "526SUDeQZOCbXYj7Jb2Rfx",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 78
},
{
"__id__": 80
},
{
"__id__": 81
},
{
"__id__": 82
},
{
"__id__": 83
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 79
},
"propertyPath": [
"_name"
],
"value": "buff" "value": "buff"
}, },
{ {
@@ -1278,7 +1150,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 79 "__id__": 70
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -1293,7 +1165,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 79 "__id__": 70
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -1309,7 +1181,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 79 "__id__": 70
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -1324,7 +1196,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 79 "__id__": 70
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -1341,7 +1213,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 85 "__id__": 76
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -1369,10 +1241,10 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 87 "__id__": 78
}, },
"anm": { "anm": {
"__id__": 22 "__id__": 13
}, },
"_id": "" "_id": ""
}, },
@@ -1390,7 +1262,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 89 "__id__": 80
}, },
"_id": "" "_id": ""
}, },
@@ -1408,7 +1280,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 91 "__id__": 82
}, },
"_id": "" "_id": ""
}, },
@@ -1428,9 +1300,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 75
},
{ {
"__id__": 66 "__id__": 66
}, },
@@ -1441,13 +1310,13 @@
"__id__": 48 "__id__": 48
}, },
{ {
"__id__": 37 "__id__": 39
}, },
{ {
"__id__": 25 "__id__": 28
}, },
{ {
"__id__": 8 "__id__": 16
} }
] ]
} }

View File

@@ -26,10 +26,13 @@
"_components": [ "_components": [
{ {
"__id__": 8 "__id__": 8
},
{
"__id__": 10
} }
], ],
"_prefab": { "_prefab": {
"__id__": 10 "__id__": 12
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -224,6 +227,24 @@
"__type__": "cc.CompPrefabInfo", "__type__": "cc.CompPrefabInfo",
"fileId": "77z0467LpD9JrxJ4yirYik" "fileId": "77z0467LpD9JrxJ4yirYik"
}, },
{
"__type__": "f140bFcc0VDZIGOeHAB+xwZ",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "18p/ymMfpOAYzUdQFqBjOm"
},
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
"root": { "root": {

View File

@@ -1,7 +1,7 @@
[ [
{ {
"__type__": "cc.Prefab", "__type__": "cc.Prefab",
"_name": "buff_do", "_name": "max_blue",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_native": "", "_native": "",
@@ -13,7 +13,7 @@
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "buff_do", "_name": "max_blue",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": null, "_parent": null,

View File

@@ -8,6 +8,6 @@
], ],
"subMetas": {}, "subMetas": {},
"userData": { "userData": {
"syncNodeName": "buff_do" "syncNodeName": "max_blue"
} }
} }

View File

@@ -1,7 +1,7 @@
[ [
{ {
"__type__": "cc.Prefab", "__type__": "cc.Prefab",
"_name": "buff_do2", "_name": "max_red",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_native": "", "_native": "",
@@ -13,7 +13,7 @@
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "buff_do2", "_name": "max_red",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": null, "_parent": null,

View File

@@ -8,6 +8,6 @@
], ],
"subMetas": {}, "subMetas": {},
"userData": { "userData": {
"syncNodeName": "buff_do2" "syncNodeName": "max_red"
} }
} }

449
assets/scene.scene Normal file
View File

@@ -0,0 +1,449 @@
[
{
"__type__": "cc.SceneAsset",
"_name": "scene",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"scene": {
"__id__": 1
}
},
{
"__type__": "cc.Scene",
"_name": "scene-2d",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
}
],
"_active": true,
"_components": [],
"_prefab": null,
"_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": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"autoReleaseAssets": false,
"_globals": {
"__id__": 8
},
"_id": "ec2587ed-e88a-4f08-a890-a4af6075a75e"
},
{
"__type__": "cc.Node",
"_name": "Canvas",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
}
],
"_active": true,
"_components": [
{
"__id__": 5
},
{
"__id__": 6
},
{
"__id__": 7
}
],
"_prefab": null,
"_lpos": {
"__type__": "cc.Vec3",
"x": 360,
"y": 640,
"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": "beI88Z2HpFELqR4T5EMHpg"
},
{
"__type__": "cc.Node",
"_name": "Camera",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 4
}
],
"_prefab": null,
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 1000
},
"_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": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": "ebFwiq8gBFaYpqYbdoDODe"
},
{
"__type__": "cc.Camera",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": null,
"_projection": 0,
"_priority": 0,
"_fov": 45,
"_fovAxis": 0,
"_orthoHeight": 640,
"_near": 0,
"_far": 1000,
"_color": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_depth": 1,
"_stencil": 0,
"_clearFlags": 7,
"_rect": {
"__type__": "cc.Rect",
"x": 0,
"y": 0,
"width": 1,
"height": 1
},
"_aperture": 19,
"_shutter": 7,
"_iso": 0,
"_screenScale": 1,
"_visibility": 1108344832,
"_targetTexture": null,
"_postProcess": null,
"_usePostProcess": false,
"_cameraType": -1,
"_trackingType": 0,
"_id": "63WIch3o5BEYRlXzTT0oWc"
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": null,
"_contentSize": {
"__type__": "cc.Size",
"width": 720,
"height": 1280
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": "d6rUX5yfhMlKoWX2bSbawx"
},
{
"__type__": "cc.Canvas",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": null,
"_cameraComponent": {
"__id__": 4
},
"_alignCanvasWithScreen": true,
"_id": "12O/ljcVlEqLmVm3U2gEOQ"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": null,
"_alignFlags": 45,
"_target": null,
"_left": 0,
"_right": 0,
"_top": 5.684341886080802e-14,
"_bottom": 5.684341886080802e-14,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 0,
"_originalHeight": 0,
"_alignMode": 2,
"_lockFlags": 0,
"_id": "c5V1EV8IpMtrIvY1OE9t2u"
},
{
"__type__": "cc.SceneGlobals",
"ambient": {
"__id__": 9
},
"shadows": {
"__id__": 10
},
"_skybox": {
"__id__": 11
},
"fog": {
"__id__": 12
},
"octree": {
"__id__": 13
},
"skin": {
"__id__": 14
},
"lightProbeInfo": {
"__id__": 15
},
"postSettings": {
"__id__": 16
},
"bakedWithStationaryMainLight": false,
"bakedWithHighpLightmap": false
},
{
"__type__": "cc.AmbientInfo",
"_skyColorHDR": {
"__type__": "cc.Vec4",
"x": 0,
"y": 0,
"z": 0,
"w": 0.520833125
},
"_skyColor": {
"__type__": "cc.Vec4",
"x": 0,
"y": 0,
"z": 0,
"w": 0.520833125
},
"_skyIllumHDR": 20000,
"_skyIllum": 20000,
"_groundAlbedoHDR": {
"__type__": "cc.Vec4",
"x": 0,
"y": 0,
"z": 0,
"w": 0
},
"_groundAlbedo": {
"__type__": "cc.Vec4",
"x": 0,
"y": 0,
"z": 0,
"w": 0
},
"_skyColorLDR": {
"__type__": "cc.Vec4",
"x": 0.2,
"y": 0.5,
"z": 0.8,
"w": 1
},
"_skyIllumLDR": 20000,
"_groundAlbedoLDR": {
"__type__": "cc.Vec4",
"x": 0.2,
"y": 0.2,
"z": 0.2,
"w": 1
}
},
{
"__type__": "cc.ShadowsInfo",
"_enabled": false,
"_type": 0,
"_normal": {
"__type__": "cc.Vec3",
"x": 0,
"y": 1,
"z": 0
},
"_distance": 0,
"_planeBias": 1,
"_shadowColor": {
"__type__": "cc.Color",
"r": 76,
"g": 76,
"b": 76,
"a": 255
},
"_maxReceived": 4,
"_size": {
"__type__": "cc.Vec2",
"x": 512,
"y": 512
}
},
{
"__type__": "cc.SkyboxInfo",
"_envLightingType": 0,
"_envmapHDR": null,
"_envmap": null,
"_envmapLDR": null,
"_diffuseMapHDR": null,
"_diffuseMapLDR": null,
"_enabled": false,
"_useHDR": true,
"_editableMaterial": null,
"_reflectionHDR": null,
"_reflectionLDR": null,
"_rotationAngle": 0
},
{
"__type__": "cc.FogInfo",
"_type": 0,
"_fogColor": {
"__type__": "cc.Color",
"r": 200,
"g": 200,
"b": 200,
"a": 255
},
"_enabled": false,
"_fogDensity": 0.3,
"_fogStart": 0.5,
"_fogEnd": 300,
"_fogAtten": 5,
"_fogTop": 1.5,
"_fogRange": 1.2,
"_accurate": false
},
{
"__type__": "cc.OctreeInfo",
"_enabled": false,
"_minPos": {
"__type__": "cc.Vec3",
"x": -1024,
"y": -1024,
"z": -1024
},
"_maxPos": {
"__type__": "cc.Vec3",
"x": 1024,
"y": 1024,
"z": 1024
},
"_depth": 8
},
{
"__type__": "cc.SkinInfo",
"_enabled": false,
"_blurRadius": 0.01,
"_sssIntensity": 3
},
{
"__type__": "cc.LightProbeInfo",
"_giScale": 1,
"_giSamples": 1024,
"_bounces": 2,
"_reduceRinging": 0,
"_showProbe": true,
"_showWireframe": true,
"_showConvex": false,
"_data": null,
"_lightProbeSphereVolume": 1
},
{
"__type__": "cc.PostSettingsInfo",
"_toneMappingType": 0
}
]

11
assets/scene.scene.meta Normal file
View File

@@ -0,0 +1,11 @@
{
"ver": "1.1.50",
"importer": "scene",
"imported": true,
"uuid": "ec2587ed-e88a-4f08-a890-a4af6075a75e",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}

View File

@@ -99,38 +99,37 @@ export const MSlist={
* } * }
*/ */
export const SkillSet = { export const SkillSet = {
6001:{uuid:6001,path:"6001",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"凛冬之触",sp_name:"ball_blue",info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"}, 6001:{uuid:6001,path:"6001",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"凛冬之触",sp_name:"ball_blue",info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"},
6002:{uuid:6002,path:"6002",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"烈焰之怒",sp_name:"ball_red",info:"向最前方敌人释放火焰弹,造成100%攻击的伤害"}, 6002:{uuid:6002,path:"6002",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"烈焰之怒",sp_name:"ball_red",info:"向最前方敌人释放火焰弹,造成100%攻击的伤害"},
6003:{uuid:6003,path:"6003",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"奥术冲击",sp_name:"ball_green",info:"向最前方敌人释放魔法弹,造成100%攻击的伤害"}, 6003:{uuid:6003,path:"6003",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"奥术冲击",sp_name:"ball_green",info:"向最前方敌人释放魔法弹,造成100%攻击的伤害"},
6004:{uuid:6004,path:"6004",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"神圣裁决",sp_name:"ball_yellow",info:"向最前方敌人释放圣光弹,造成100%攻击的伤害"}, 6004:{uuid:6004,path:"6004",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"神圣裁决",sp_name:"ball_yellow",info:"向最前方敌人释放圣光弹,造成100%攻击的伤害"},
6005:{uuid:6005,path:"6005",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:50,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"破空斩击",sp_name:"patk",info:"攻击前方直线100码内的敌人造成50%伤害"}, 6005:{uuid:6005,path:"6005",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:50,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"破空斩击",sp_name:"patk",info:"攻击前方直线100码内的敌人造成50%伤害"},
6006:{uuid:6006,path:"6006",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"穿心箭矢",sp_name:"arrow",info:"向最前方敌人释放箭矢,造成100%攻击的伤害"}, 6006:{uuid:6006,path:"6006",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"穿心箭矢",sp_name:"arrow",info:"向最前方敌人释放箭矢,造成100%攻击的伤害"},
6007:{uuid:6007,path:"6007",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"铁斧打击",sp_name:"mon_ft",info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"}, 6007:{uuid:6007,path:"6007",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"铁斧打击",sp_name:"mon_ft",info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"},
6008:{uuid:6008,path:"6008",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"木棍打击",sp_name:"mon_ly",info:"向最前方敌人扔出木棍,造成100%攻击的伤害"}, 6008:{uuid:6008,path:"6008",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"木棍打击",sp_name:"mon_ly",info:"向最前方敌人扔出木棍,造成100%攻击的伤害"},
6009:{uuid:6009,path:"6009",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"飞刀打击",sp_name:"mon_xd",info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"}, 6009:{uuid:6009,path:"6009",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"飞刀打击",sp_name:"mon_xd",info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"},
6010:{uuid:6010,path:"6010",TargetType:1,TargetGroup:3,CdType:CdType.HeroCD,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"石斧打击",sp_name:"mon_sf",info:"向最前方敌人扔出石斧,造成100%攻击的伤害"}, 6010:{uuid:6010,path:"6010",TargetType:1,TargetGroup:3,act:"atk",CdType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"石斧打击",sp_name:"mon_sf",info:"向最前方敌人扔出石斧,造成100%攻击的伤害"},
6011:{uuid:6011,path:"6011",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:0.5,hited:0.3,shield:0,speed:100,sonsk:0,hero:0,name:"烈火呼吸",sp_name:"firequan",info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"}, 6011:{uuid:6011,path:"6011",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:0.5,hited:0.3,shield:0,speed:100,sonsk:0,hero:0,name:"烈火呼吸",sp_name:"firequan",info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
6012:{uuid:6012,path:"6012",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:2,depb:20,debtime:2,derate:100,in:1,count:1,def:0,apup:0,ap:300,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"大火球",sp_name:"fire",info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"}, 6012:{uuid:6012,path:"6012",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:2,depb:20,debtime:2,derate:100,in:1,count:1,def:0,apup:0,ap:300,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"大火球",sp_name:"fire",info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"},
6013:{uuid:6013,path:"6013",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:10,count:1,def:0,apup:0,ap:50,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"火墙",sp_name:"firewall",info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"}, 6013:{uuid:6013,path:"6013",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:10,count:1,def:0,apup:0,ap:50,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"火墙",sp_name:"firewall",info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"},
6014:{uuid:6014,path:"6014",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:1,depb:20,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"寒冰箭",sp_name:"arrow_blue",info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"}, 6014:{uuid:6014,path:"6014",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:1,depb:20,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"寒冰箭",sp_name:"arrow_blue",info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
6015:{uuid:6015,path:"6015",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:3,depb:20,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"烈焰射击",sp_name:"arrow_yellow",info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"}, 6015:{uuid:6015,path:"6015",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:3,depb:20,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"烈焰射击",sp_name:"arrow_yellow",info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"},
6016:{uuid:6016,path:"6016",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:300,sonsk:0,hero:0,name:"龙卷风",sp_name:"bwind",info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"}, 6016:{uuid:6016,path:"6016",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:300,sonsk:0,hero:0,name:"龙卷风",sp_name:"bwind",info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"},
6017:{uuid:6017,path:"6017",TargetType:1,TargetGroup:2,CdType:CdType.HeroPower,fname:"buff_do",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:5,count:1,def:0,apup:0,ap:100,mhp:0,hp:3,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"生命之泉",sp_name:"heath",info:"5秒持续为全体友方恢复施法者最大生命值15%的生命"}, 6017:{uuid:6017,path:"6017",TargetType:1,TargetGroup:2,act:"max",CdType:2,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:5,count:1,def:0,apup:0,ap:100,mhp:0,hp:3,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"生命之泉",sp_name:"heath",info:"5秒持续为全体友方恢复施法者最大生命值15%的生命"},
6018:{uuid:6018,path:"6018",TargetType:1,TargetGroup:0,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:30,speed:350,sonsk:0,hero:0,name:"神圣护盾",sp_name:"shield",info:"召唤圣盾保护自己,可以抵御3次攻击"}, 6018:{uuid:6018,path:"6018",TargetType:1,TargetGroup:0,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:30,speed:350,sonsk:0,hero:0,name:"神圣护盾",sp_name:"shield",info:"召唤圣盾保护自己,可以抵御3次攻击"},
6019:{uuid:6019,path:"6019",TargetType:1,TargetGroup:2,CdType:CdType.HeroPower,fname:"buff_do2",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:1,count:1,def:0,apup:20,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"战争咆哮",sp_name:"apup",info:"为全体友方增加施法者攻击力20%的攻击"}, 6019:{uuid:6019,path:"6019",TargetType:1,TargetGroup:2,act:"max",CdType:2,fname:"max_red",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:1,count:1,def:0,apup:20,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"战争咆哮",sp_name:"apup",info:"为全体友方增加施法者攻击力20%的攻击"},
6021:{uuid:6021,path:"6021",TargetType:2,TargetGroup:3,CdType:CdType.HeroPower,fname:"buff_do",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:1,count:1,def:0,apup:0,ap:600,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"死亡射击",sp_name:"shoot2",info:"攻击最后方的敌人,造成600%攻击的伤害"}, 6021:{uuid:6021,path:"6021",TargetType:2,TargetGroup:3,act:"max",CdType:2,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:1,count:1,def:0,apup:0,ap:600,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"死亡射击",sp_name:"shoot2",info:"攻击最后方的敌人,造成600%攻击的伤害"},
6022:{uuid:6022,path:"6022",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:1,depb:50,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:300,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"寒霜之矛",sp_name:"icez",info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"}, 6022:{uuid:6022,path:"6022",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:1,depb:50,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:300,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"寒霜之矛",sp_name:"icez",info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
6023:{uuid:6023,path:"6023",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:1,count:1,def:0,apup:0,ap:400,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"冰墙",sp_name:"icet",info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"}, 6023:{uuid:6023,path:"6023",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:1,count:1,def:0,apup:0,ap:400,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"冰墙",sp_name:"icet",info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"},
6024:{uuid:6024,path:"6024",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:2,count:1,def:0,apup:0,ap:80,mhp:0,hp:0,cd:10,buff_cd:0.5,hited:0.3,shield:0,speed:100,sonsk:0,hero:0,name:"旋风斩",sp_name:"fwind",info:"旋转武器对周围的敌人造成80%攻击,2秒内旋转4次"}, 6024:{uuid:6024,path:"6024",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max_red",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:2,count:1,def:0,apup:0,ap:80,mhp:0,hp:0,cd:5,buff_cd:0.5,hited:0.3,shield:0,speed:100,sonsk:0,hero:0,name:"旋风斩",sp_name:"fwind",info:"旋转武器对周围的敌人造成80%攻击,2秒内旋转4次"},
6025:{uuid:6025,path:"6025",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:0,hero:0,name:"火焰漩涡",sp_name:"fireball",info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"}, 6025:{uuid:6025,path:"6025",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:0,hero:0,name:"火焰漩涡",sp_name:"fireball",info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"},
6026:{uuid:6026,path:"6026",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:8,depb:50,debtime:2,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:0,hero:0,name:"潮汐",sp_name:"watert",info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"}, 6026:{uuid:6026,path:"6026",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:2,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:0,hero:0,name:"潮汐",sp_name:"watert",info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"},
6027:{uuid:6027,path:"6027",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:8,depb:100,debtime:2,derate:0,in:3,count:1,def:0,apup:2,ap:400,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:0,hero:0,name:"国王霸气",sp_name:"kingba",info:"释放霸气攻击周围敌人,造成400%伤害,并100%几率击退敌人"}, 6027:{uuid:6027,path:"6027",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:8,depb:100,debtime:2,derate:0,in:3,count:1,def:0,apup:2,ap:400,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:0,hero:0,name:"国王霸气",sp_name:"kingba",info:"释放霸气攻击周围敌人,造成400%伤害,并100%几率击退敌人"},
6028:{uuid:6028,path:"6028",TargetType:1,TargetGroup:2,CdType:CdType.HeroPower,fname:"buff_do",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:0,apup:0,ap:100,mhp:0,hp:10,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"自然庇佑",sp_name:"heath2",info:"为全体友方恢复施法者最大生命值10%的生命,和抵御1次攻击的护盾"}, 6028:{uuid:6028,path:"6028",TargetType:1,TargetGroup:2,act:"max",CdType:2,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:0,apup:0,ap:100,mhp:0,hp:10,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"自然庇佑",sp_name:"heath2",info:"为全体友方恢复施法者最大生命值10%的生命,和抵御1次攻击的护盾"},
6029:{uuid:6029,path:"6029",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:8,depb:50,debtime:2,derate:0,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:0,hero:0,name:"陨石术",sp_name:"fireys",info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"}, 6029:{uuid:6029,path:"6029",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:2,derate:0,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:0,hero:0,name:"陨石术",sp_name:"fireys",info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"},
6030:{uuid:6030,path:"6030",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:10,buff_cd:0.5,hited:0.3,shield:0,speed:100,sonsk:0,hero:0,name:"闪电呼吸",sp_name:"dianquan",info:"召唤闪电攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"}, 6030:{uuid:6030,path:"6030",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:0.5,hited:0.3,shield:0,speed:100,sonsk:0,hero:0,name:"闪电呼吸",sp_name:"dianquan",info:"召唤闪电攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
6031:{uuid:6031,path:"6031",TargetType:1,TargetGroup:0,CdType:CdType.HeroPower,fname:"buff_do",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:20,apup:0,ap:70,mhp:0,hp:70,cd:10,buff_cd:1,hited:0.3,shield:0,speed:120,sonsk:0,hero:5211,name:"召唤仆从",sp_name:"zhaohuan",info:"召唤一个与施法者等级相同的骷髅战士为我方而战"}, 6031:{uuid:6031,path:"6031",TargetType:1,TargetGroup:0,act:"max",CdType:2,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:20,apup:0,ap:70,mhp:0,hp:70,cd:5,buff_cd:1,hited:0.3,shield:0,speed:120,sonsk:0,hero:5211,name:"召唤仆从",sp_name:"zhaohuan",info:"召唤一个与施法者等级相同的骷髅战士为我方而战"},
6032:{uuid:6032,path:"6032",TargetType:1,TargetGroup:0,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:0,apup:0,ap:100,mhp:0,hp:5,cd:10,buff_cd:1,hited:0.3,shield:0,speed:120,sonsk:0,hero:0,name:"自愈",sp_name:"heath_small",info:"主动:自己回复自身5%最大生命值的生命"}, 6032:{uuid:6032,path:"6032",TargetType:1,TargetGroup:0,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:0,apup:0,ap:100,mhp:0,hp:5,cd:5,buff_cd:1,hited:0.3,shield:0,speed:120,sonsk:0,hero:0,name:"自愈",sp_name:"heath_small",info:"主动:自己回复自身5%最大生命值的生命"},
6033:{uuid:6033,path:"6033",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:4,depb:100,debtime:1,derate:20,in:1,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:6035,hero:0,name:"震地裂击",sp_name:"cuida",info:"捶爆前方目标造成300%攻击的伤害震慑敌人本局内全部敌方降低对方10%攻击力"}, 6033:{uuid:6033,path:"6033",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:4,depb:100,debtime:1,derate:20,in:1,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:6035,hero:0,name:"震地裂击",sp_name:"cuida",info:"捶爆前方目标造成300%攻击的伤害震慑敌人本局内全部敌方降低对方10%攻击力"},
6034:{uuid:6034,path:"6034",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:4,depb:100,debtime:1,derate:20,in:1,count:1,def:0,apup:0,ap:80,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"风暴之矢",sp_name:"bingyu",info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"}, 6034:{uuid:6034,path:"6034",TargetType:1,TargetGroup:3,act:"max",CdType:2,fname:"max",flash:false,with:50,debuff:4,depb:100,debtime:1,derate:20,in:1,count:1,def:0,apup:0,ap:80,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:350,sonsk:0,hero:0,name:"风暴之矢",sp_name:"bingyu",info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"}
6035:{uuid:6035,path:"6035",TargetType:1,TargetGroup:3,CdType:CdType.HeroPower,fname:"",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:1,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:10,buff_cd:1,hited:0.3,shield:0,speed:500,sonsk:0,hero:0,name:"召唤仆从",sp_name:"zhaohuan",info:"召唤一个与施法者等级相同的骷髅战士为我方而战"}
}; };

View File

@@ -0,0 +1,41 @@
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
export enum DamageType {
Physical = 1,
Magic = 2,
True = 3
}
/** 伤害请求组件 */
@ecs.register('DamageRequest')
export class DamageRequest extends ecs.Comp {
source!: ecs.Entity; // 伤害来源
target!: ecs.Entity; // 伤害目标
baseValue!: number; // 基础伤害值
damageType: number = 1; // 伤害类型
canCrit: boolean = true; // 是否可暴击
ignoreDefense: boolean = false; // 是否忽略防御
reset() {
this.source = null!;
this.target = null!;
this.baseValue = 0;
this.damageType = 1;
this.canCrit = true;
this.ignoreDefense = false;
}
}
/** 伤害结果组件 */
@ecs.register('DamageResult')
export class DamageResult extends ecs.Comp {
finalDamage: number = 0;
isCrit: boolean = false;
isDodged: boolean = false;
reset(finalDamage: number = 0, isCrit: boolean = false, isDodged: boolean = false) {
this.finalDamage = finalDamage;
this.isCrit = isCrit;
this.isDodged = isDodged;
}
}

View File

@@ -0,0 +1,70 @@
import { oops } from "db://oops-framework/core/Oops";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { HeroViewComp } from "../hero/HeroViewComp";
import { DamageRequest, DamageResult } from "./DamageComp";
@ecs.register('DamageSystem')
export class DamageSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate {
filter(): ecs.IMatcher {
return ecs.allOf(DamageRequest);
}
update(entity: ecs.Entity) {
const req = entity.get(DamageRequest);
const result = this.calculateDamage(req);
this.applyDamage(req.target, result);
entity.remove(DamageRequest);
}
private calculateDamage(req: DamageRequest): DamageResult {
const targetView = req.target.get(HeroViewComp);
const sourceView = req.source.get(HeroViewComp);
let final = req.baseValue;
// 闪避判定
if (Math.random() < targetView.dodge) {
const result = new DamageResult();
result.finalDamage = 0;
result.isDodged = true;
return result;
}
// 护甲减伤
if (!req.ignoreDefense) {
final -= targetView.def * 0.5;
}
// 暴击判定
let isCrit = false;
if (req.canCrit) {
const critRate = sourceView.crit;
if (Math.random() < critRate) {
final *= 1.5;
isCrit = true;
}
}
const result = new DamageResult();
result.finalDamage = Math.max(0, final);
result.isCrit = isCrit;
return result;
}
private applyDamage(target: ecs.Entity, result: DamageResult) {
const view = target.get(HeroViewComp);
view.hp -= result.finalDamage;
// 添加伤害结果组件
const comp = target.add(DamageResult);
comp.finalDamage = result.finalDamage;
comp.isCrit = result.isCrit;
comp.isDodged = result.isDodged;
// 触发伤害事件
oops.message.dispatchEvent("OnDamage", {
target,
damage: result.finalDamage,
isCrit: result.isCrit
});
}
}

View File

@@ -80,11 +80,11 @@ export class BuffComp extends Component {
} }
max_show(){ max_show(name:string){
// this.node.getChildByName("max").active=true var path = "game/skills/"+name;
// this.scheduleOnce(()=>{ var prefab: Prefab = oops.res.get(path, Prefab)!;
// this.node.getChildByName("max").active=false var node = instantiate(prefab);
// },0.8) node.parent = this.node;
} }
show_do_buff(name:string){ show_do_buff(name:string){
var path = "game/skills/"+name; var path = "game/skills/"+name;

View File

@@ -49,12 +49,30 @@ export class HeroSpine extends Component {
// console.log("do max"); // console.log("do max");
this.anm.max() this.anm.max()
} }
play(name:string){
switch(name){
case "max":
this.max()
break
case "atk":
this.atk()
break
case "idle":
this.idle()
break
case "move":
this.move()
break
}
}
move(){ move(){
// console.log("doing move"); // console.log("doing move");
if(this.status=="move") return if(this.status=="move") return
this.status="move" this.status="move"
this.anm.move() this.anm.move()
} }
atked() { atked() {
// console.log("do atked"); // console.log("do atked");
this.anm.atked() this.anm.atked()

View File

@@ -177,18 +177,39 @@ export class HeroViewComp extends CCComp {
} }
//受伤判断 //受伤判断
check_uatk(skill:any){ check_uatk(damage:number,is_crit:boolean){
if(this.check_dodge()) return if(this.check_dodge()) return
this.in_atked(); this.in_atked();
let l_hp=this.check_less(skill.ap,skill.is_crit,skill.crit_add) let l_hp=damage
this.check_debuff(skill,l_hp) // this.check_debuff(skill,l_hp)
if(this.shield > 0){ if(this.shield > 0){
this.shield -=1 this.shield -= damage
if(this.shield == 0) this.BUFFCOMP.show_shield(false) if(this.shield <= 0) {
l_hp = 0 l_hp = -this.shield
this.shield = 0
this.BUFFCOMP.show_shield(false)
}
}
this.hp_less(l_hp,is_crit);
}
hp_less(hp: number,is_crit:boolean=false){
if(this.is_dead) return
hp=Math.floor(hp)
this.hp -= hp
if(is_crit){
this.BUFFCOMP.tooltip(4,hp.toFixed(0),250);
}else{
this.BUFFCOMP.tooltip(1,hp.toFixed(0),250);
}
if(this.hp > this.hp_max){
this.hp = this.hp_max;
}
if(this.hp <= 0){
this.dead();
this.to_grave()
this.is_dead = true;
} }
this.hp_less(l_hp,skill.is_crit);
} }
check_less(ap:number,is_crit:boolean,crit_add:number=0){ check_less(ap:number,is_crit:boolean,crit_add:number=0){
let d=this.def/ap let d=this.def/ap
@@ -455,24 +476,7 @@ export class HeroViewComp extends CCComp {
this.hp += Math.floor(hprate/100*this.hp_max) ; this.hp += Math.floor(hprate/100*this.hp_max) ;
} }
hp_less(hp: number,is_crit:boolean=false){
if(this.is_dead) return
hp=Math.floor(hp)
this.hp -= hp
if(is_crit){
this.BUFFCOMP.tooltip(4,hp.toFixed(0),250);
}else{
this.BUFFCOMP.tooltip(1,hp.toFixed(0),250);
}
if(this.hp > this.hp_max){
this.hp = this.hp_max;
}
if(this.hp <= 0){
this.dead();
this.to_grave()
this.is_dead = true;
}
}
/** 静止时间 */ /** 静止时间 */
in_stop (dt: number) { in_stop (dt: number) {
if(this.stop_cd > 0){ if(this.stop_cd > 0){
@@ -548,8 +552,18 @@ export class HeroViewComp extends CCComp {
this.node.destroy(); this.node.destroy();
} }
playSkillEffect() { playSkillEffect(skill_id:number) {
let skill = SkillSet[skill_id]
switch(skill.act){
case "max":
this.as.max() this.as.max()
this.BUFFCOMP.max_show(skill.fname)
this.BUFFCOMP.tooltip(3,skill.name,skill_id)
break
case "atk":
this.as.atk()
break
}
} }
public revive() { public revive() {

View File

@@ -19,18 +19,21 @@ import { HeroInfo } from "../common/config/heroSet";
import { Talents } from "../common/config/TalentSet"; import { Talents } from "../common/config/TalentSet";
import { MonModelComp } from "./MonModelComp"; import { MonModelComp } from "./MonModelComp";
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp"; import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
import { HeroSkillsComp } from "../skill/heroSkillsComp";
/** 角色实体 */ /** 角色实体 */
@ecs.register(`Monster`) @ecs.register(`Monster`)
export class Monster extends ecs.Entity { export class Monster extends ecs.Entity {
// 数据层 HeroModel!: MonModelComp;
MonModelComp!: MonModelComp;
// 视图层
HeroView!: HeroViewComp; HeroView!: HeroViewComp;
BattleMove!: BattleMoveComp;
HeroSkills!: HeroSkillsComp;
protected init() { protected init() {
this.addComponents<ecs.Comp>(
BattleMoveComp,
HeroSkillsComp,
MonModelComp
);
} }
destroy(): void { destroy(): void {
@@ -99,25 +102,42 @@ export class Monster extends ecs.Entity {
hv.dexp=hero.dexp; hv.dexp=hero.dexp;
this.add(hv); this.add(hv);
// 初始化多个技能组件
const skillsComp = this.get(HeroSkillsComp);
// 正确初始化已有技能
hero.skills.forEach(skillId => {
this.addSkill(skillId); // 使用addSkill方法确保初始化
});
// 初始化移动参数
const move = this.get(BattleMoveComp);
move.direction = 1; // 向右移动
move.targetX = 800; // 右边界
} }
set_ratio(uuid:number){ // 添加技能
let ratio=1; public addSkill(skillId: number) {
switch (HeroInfo[uuid].level) { const comp = this.get(HeroSkillsComp);
case 2: if (comp.skills.indexOf(skillId) === -1) {
ratio=1.05 comp.skills.push(skillId);
break; comp.cooldowns.set(skillId, 0);
case 3: comp.counters.set(skillId, 0);
ratio=1.1 console.log(`技能${skillId}初始化完成`,
break; '当前cooldowns:', comp.cooldowns,
case 4: '当前counters:', comp.counters);
ratio=1.15
break;
case 5:
ratio=1.2
break;
default:
ratio=1
} }
return ratio; }
// 移除技能
public removeSkill(skillId: number) {
const comp = this.get(HeroSkillsComp);
comp.skills = comp.skills.filter(id => id !== skillId);
}
public levelUp() {
// ...升级逻辑...
const comp = this.get(HeroSkillsComp);
comp.skills.forEach(skillId => {
comp.resetCooldown(skillId);
});
} }
} }

View File

@@ -53,9 +53,9 @@ export class HCardComp extends CCComp {
this.node.getChildByName("bg").getComponent(Sprite).grayscale=false this.node.getChildByName("bg").getComponent(Sprite).grayscale=false
this.is_dead=false this.is_dead=false
} }
this.hp.string=(this.heros[this.hi].HeroView.rhp_max).toFixed(0) this.hp.string=(this.heros[this.hi].HeroView.hp_max).toFixed(0)
this.ap.string=(this.heros[this.hi].HeroView.ap*(smc.vmdata.mission.ap+100)/100).toFixed(0) this.ap.string=(this.heros[this.hi].HeroView.ap*(smc.vmdata.mission.ap+100)/100).toFixed(0)
this.life.progress=this.heros[this.hi].HeroView.hp/this.heros[this.hi].HeroView.rhp_max this.life.progress=this.heros[this.hi].HeroView.hp/this.heros[this.hi].HeroView.hp_max
this.pw.progress=this.heros[this.hi].HeroView.pw/this.heros[this.hi].HeroView.pwm this.pw.progress=this.heros[this.hi].HeroView.pw/this.heros[this.hi].HeroView.pwm

View File

@@ -4,12 +4,13 @@ import { HeroViewComp } from "../hero/HeroViewComp";
import { HeroSkillsComp } from "./heroSkillsComp"; import { HeroSkillsComp } from "./heroSkillsComp";
import { SkillSet, TargetGroup, TargetType } from "../common/config/SkillSet"; import { SkillSet, TargetGroup, TargetType } from "../common/config/SkillSet";
import { CdType } from "../common/config/SkillSet"; import { CdType } from "../common/config/SkillSet";
import { DamageRequest, DamageType } from "../../game/damage/DamageComp";
/** 技能系统 */ /** 技能系统 */
@ecs.register('HeroSkillSystem') @ecs.register('HeroSkillSystem')
export class HeroSkillSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { export class HeroSkillSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate {
private updateInterval: number = 0.2; // 每0.1秒更新一次 private updateInterval: number = 0.1; // 每0.1秒更新一次
private accumulator: number = 0; private accumulator: number = 0;
filter(): ecs.IMatcher { filter(): ecs.IMatcher {
@@ -64,13 +65,10 @@ export class HeroSkillSystem extends ecs.ComblockSystem implements ecs.ISystemUp
const comp = entity.get(HeroSkillsComp); const comp = entity.get(HeroSkillsComp);
switch(config.CdType){ switch(config.CdType){
case CdType.SkillCD: case CdType.SkillCD:
console.log("技能计时器",comp.cooldowns.get(config.uuid as number) ?? 0,config.cd)
return (comp.cooldowns.get(config.uuid as number) ?? 0) <= 0; return (comp.cooldowns.get(config.uuid as number) ?? 0) <= 0;
case CdType.HeroCD: case CdType.HeroCD:
console.log("普攻计时器",view.at,view.cd)
return view.at >= view.cd; return view.at >= view.cd;
case CdType.HeroPower: case CdType.HeroPower:
console.log("能量计时器",view.pw,view.pwm)
return view.pw >= view.pwm; return view.pw >= view.pwm;
} }
} }
@@ -81,23 +79,20 @@ export class HeroSkillSystem extends ecs.ComblockSystem implements ecs.ISystemUp
private castSkill(caster: ecs.Entity, skillId: number, config: typeof SkillSet[keyof typeof SkillSet]) { private castSkill(caster: ecs.Entity, skillId: number, config: typeof SkillSet[keyof typeof SkillSet]) {
const view = caster.get(HeroViewComp); const view = caster.get(HeroViewComp);
const comp = caster.get(HeroSkillsComp); const comp = caster.get(HeroSkillsComp);
console.log(view.hero_name+"施放技能",comp,view) console.log(view.hero_name+"施放技能",config.uuid,comp,view)
switch(config.CdType) { switch(config.CdType) {
case CdType.SkillCD: case CdType.SkillCD:
view.as.max() view.as.max()
console.log("重置技能计时器",view.as,config.cd)
comp.cooldowns.set(skillId, config.cd); // 重置冷却时间 comp.cooldowns.set(skillId, config.cd); // 重置冷却时间
break; break;
case CdType.HeroCD: case CdType.HeroCD:
view.as.atk() view.as.atk()
console.log("重置普攻计时器",view.at,view.cd)
view.at = view.at-view.cd; // 重置普攻计时器 view.at = view.at-view.cd; // 重置普攻计时器
break; break;
case CdType.HeroPower: case CdType.HeroPower:
view.as.max() view.as.max()
console.log("重置能量计时器",view.pw,view.pwm) view.pw = view.pw-view.pwm; // 重置能量计时器
view.pw = view.pw-view.pwm;
break; break;
} }
@@ -205,24 +200,15 @@ export class HeroSkillSystem extends ecs.ComblockSystem implements ecs.ISystemUp
/** 应用技能效果 */ /** 应用技能效果 */
private applySkillEffect(caster: ecs.Entity, target: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]) { private applySkillEffect(caster: ecs.Entity, target: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]) {
const casterView = caster.get(HeroViewComp); // 创建伤害请求实体
const targetView = target.get(HeroViewComp); const damageEntity = new ecs.Entity();
const req = damageEntity.add(DamageRequest);
req.source = caster;
req.target = target;
req.baseValue = caster.get(HeroViewComp).ap * (config.ap / 100);
// 计算基础伤害 // 播放技能特效
const damage = casterView.ap * (config.ap / 100); caster.get(HeroViewComp).playSkillEffect(config.uuid);
// 应用伤害/治疗
if (config.ap > 0) {
targetView.hp -= damage;
}
if (config.hp > 0) {
targetView.hp += casterView.hp_max * (config.hp / 100);
}
// 应用debuff
if (config.debuff > 0) {
this.applyDebuff(target, config);
}
} }
/** 应用负面状态 */ /** 应用负面状态 */