调整盾技能, 盾图片资源需要换

This commit is contained in:
2025-08-08 15:48:50 +08:00
parent 2af32ee476
commit cd6675652b
18 changed files with 1458 additions and 297 deletions

View File

@@ -31,47 +31,47 @@
"__id__": 28
},
{
"__id__": 40
"__id__": 41
},
{
"__id__": 51
"__id__": 52
},
{
"__id__": 60
"__id__": 61
},
{
"__id__": 69
"__id__": 70
}
],
"_active": true,
"_components": [
{
"__id__": 77
"__id__": 78
},
{
"__id__": 79
"__id__": 80
},
{
"__id__": 81
"__id__": 82
},
{
"__id__": 83
"__id__": 84
},
{
"__id__": 85
"__id__": 86
},
{
"__id__": 87
"__id__": 88
},
{
"__id__": 89
"__id__": 90
},
{
"__id__": 91
"__id__": 92
}
],
"_prefab": {
"__id__": 93
"__id__": 94
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -564,6 +564,9 @@
},
{
"__id__": 39
},
{
"__id__": 40
}
],
"removedComponents": []
@@ -594,8 +597,8 @@
],
"value": {
"__type__": "cc.Vec3",
"x": -0.057,
"y": -39.46,
"x": 0,
"y": -41,
"z": 0
}
},
@@ -670,11 +673,25 @@
],
"value": {
"__type__": "cc.Vec3",
"x": 1.2,
"y": 1.1,
"x": 1.4,
"y": 1.4,
"z": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 38
},
"propertyPath": [
"_anchorPoint"
],
"value": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0
}
},
{
"__type__": "cc.Node",
"_objFlags": 0,
@@ -682,14 +699,14 @@
"__id__": 1
},
"_prefab": {
"__id__": 41
"__id__": 42
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 40
"__id__": 41
},
"asset": {
"__uuid__": "50c3d5e4-49f8-4bd7-a15b-cda359a0ae5c",
@@ -697,7 +714,7 @@
},
"fileId": "5fqU0L3/FOhKaco5UkHuWT",
"instance": {
"__id__": 42
"__id__": 43
},
"targetOverrides": null
},
@@ -711,10 +728,7 @@
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 43
},
{
"__id__": 45
"__id__": 44
},
{
"__id__": 46
@@ -726,7 +740,10 @@
"__id__": 48
},
{
"__id__": 50
"__id__": 49
},
{
"__id__": 51
}
],
"removedComponents": []
@@ -734,7 +751,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 44
"__id__": 45
},
"propertyPath": [
"_name"
@@ -750,7 +767,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 44
"__id__": 45
},
"propertyPath": [
"_lpos"
@@ -765,7 +782,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 44
"__id__": 45
},
"propertyPath": [
"_lrot"
@@ -781,7 +798,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 44
"__id__": 45
},
"propertyPath": [
"_euler"
@@ -796,7 +813,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 49
"__id__": 50
},
"propertyPath": [
"_lpos"
@@ -817,7 +834,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 44
"__id__": 45
},
"propertyPath": [
"_lscale"
@@ -836,14 +853,14 @@
"__id__": 1
},
"_prefab": {
"__id__": 52
"__id__": 53
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 51
"__id__": 52
},
"asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90",
@@ -851,7 +868,7 @@
},
"fileId": "0d6ZXmA5dHkZxoGONDL2sE",
"instance": {
"__id__": 53
"__id__": 54
},
"targetOverrides": null
},
@@ -865,10 +882,7 @@
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 54
},
{
"__id__": 56
"__id__": 55
},
{
"__id__": 57
@@ -878,6 +892,9 @@
},
{
"__id__": 59
},
{
"__id__": 60
}
],
"removedComponents": []
@@ -885,7 +902,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 55
"__id__": 56
},
"propertyPath": [
"_name"
@@ -901,7 +918,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 55
"__id__": 56
},
"propertyPath": [
"_lpos"
@@ -916,7 +933,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 55
"__id__": 56
},
"propertyPath": [
"_lrot"
@@ -932,7 +949,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 55
"__id__": 56
},
"propertyPath": [
"_euler"
@@ -947,7 +964,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 55
"__id__": 56
},
"propertyPath": [
"_active"
@@ -961,14 +978,14 @@
"__id__": 1
},
"_prefab": {
"__id__": 61
"__id__": 62
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 60
"__id__": 61
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
@@ -976,7 +993,7 @@
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 62
"__id__": 63
},
"targetOverrides": null
},
@@ -990,10 +1007,7 @@
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 63
},
{
"__id__": 65
"__id__": 64
},
{
"__id__": 66
@@ -1003,6 +1017,9 @@
},
{
"__id__": 68
},
{
"__id__": 69
}
],
"removedComponents": []
@@ -1010,7 +1027,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 64
"__id__": 65
},
"propertyPath": [
"_name"
@@ -1026,7 +1043,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 64
"__id__": 65
},
"propertyPath": [
"_lpos"
@@ -1041,7 +1058,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 64
"__id__": 65
},
"propertyPath": [
"_lrot"
@@ -1057,7 +1074,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 64
"__id__": 65
},
"propertyPath": [
"_euler"
@@ -1072,7 +1089,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 64
"__id__": 65
},
"propertyPath": [
"_active"
@@ -1086,14 +1103,14 @@
"__id__": 1
},
"_prefab": {
"__id__": 70
"__id__": 71
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 69
"__id__": 70
},
"asset": {
"__uuid__": "afb84e4d-b478-4ab6-8f14-4f69d7a2c57f",
@@ -1101,7 +1118,7 @@
},
"fileId": "733PKzwANLyJWD2ume4u5f",
"instance": {
"__id__": 71
"__id__": 72
},
"targetOverrides": null
},
@@ -1115,16 +1132,16 @@
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 72
},
{
"__id__": 74
"__id__": 73
},
{
"__id__": 75
},
{
"__id__": 76
},
{
"__id__": 77
}
],
"removedComponents": []
@@ -1132,7 +1149,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 73
"__id__": 74
},
"propertyPath": [
"_name"
@@ -1148,7 +1165,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 73
"__id__": 74
},
"propertyPath": [
"_lpos"
@@ -1163,7 +1180,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 73
"__id__": 74
},
"propertyPath": [
"_lrot"
@@ -1179,7 +1196,7 @@
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 73
"__id__": 74
},
"propertyPath": [
"_euler"
@@ -1201,7 +1218,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 78
"__id__": 79
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1229,7 +1246,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 80
"__id__": 81
},
"anm": {
"__id__": 25
@@ -1250,7 +1267,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 82
"__id__": 83
},
"_id": ""
},
@@ -1268,7 +1285,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 84
"__id__": 85
},
"_id": ""
},
@@ -1286,7 +1303,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 86
"__id__": 87
},
"enabledContactListener": true,
"bullet": false,
@@ -1320,7 +1337,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 88
"__id__": 89
},
"tag": 0,
"_group": 4,
@@ -1354,7 +1371,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 90
"__id__": 91
},
"_id": ""
},
@@ -1372,7 +1389,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 92
"__id__": 93
},
"_id": ""
},
@@ -1393,16 +1410,16 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": [
{
"__id__": 69
"__id__": 70
},
{
"__id__": 60
"__id__": 61
},
{
"__id__": 51
"__id__": 52
},
{
"__id__": 40
"__id__": 41
},
{
"__id__": 28

View File

@@ -22,7 +22,18 @@
}
],
"_exoticAnimation": null,
"_events": [],
"_events": [
{
"frame": 0.03333333333333333,
"func": "",
"params": []
},
{
"frame": 0.03333333333333333,
"func": "atk",
"params": []
}
],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 24

View File

@@ -0,0 +1,507 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "to_dun",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 24,
"speed": 1,
"wrapMode": 1,
"enableTrsBlending": false,
"_duration": 0.2916666666666667,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
},
{
"__id__": 12
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 24
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channels": [
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"scale"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "skill/dun"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 5
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.25
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0.8999999761581421,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 7
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.25
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 9
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.25
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 11
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.ColorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 13
},
"proxy": null
},
"_channels": [
{
"__id__": 16
},
{
"__id__": 18
},
{
"__id__": 20
},
{
"__id__": 22
}
]
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 14
},
{
"__id__": 15
},
"color"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "skill/dun"
},
{
"__type__": "cc.animation.ComponentPath",
"component": "cc.Sprite"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 17
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.25,
0.2916666567325592
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 255,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 255,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 255,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 19
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.25,
0.2916666567325592
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 255,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 255,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 255,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 21
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.25,
0.2916666567325592
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 19,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 19,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 19,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 23
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.25,
0.2916666567325592
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 255,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 255,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.AnimationClipAdditiveSettings",
"enabled": false,
"refClip": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "2.0.3",
"importer": "animation-clip",
"imported": true,
"uuid": "5ec0664a-f8e6-4d50-98af-6ffa3d530ae3",
"files": [
".cconb"
],
"subMetas": {},
"userData": {
"name": "to_dun"
}
}

View File

@@ -20,22 +20,28 @@
"_children": [
{
"__id__": 2
},
{
"__id__": 12
}
],
"_active": true,
"_components": [
{
"__id__": 12
},
{
"__id__": 14
},
{
"__id__": 16
},
{
"__id__": 18
},
{
"__id__": 20
},
{
"__id__": 22
}
],
"_prefab": {
"__id__": 18
"__id__": 24
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -276,6 +282,84 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "AtkCom",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 13
}
],
"_prefab": {
"__id__": 15
},
"_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
},
"_id": ""
},
{
"__type__": "b1d8e1ZA0dLtqufhidnFK/K",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 12
},
"_enabled": true,
"__prefab": {
"__id__": 14
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "a9mRcuGlBKd6ewHUKzQclF"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "29igegDtpC5pnuDb8lf652",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
@@ -286,7 +370,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 13
"__id__": 17
},
"_contentSize": {
"__type__": "cc.Size",
@@ -314,7 +398,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 15
"__id__": 19
},
"_id": ""
},
@@ -332,7 +416,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 17
"__id__": 21
},
"playOnLoad": true,
"_clips": [
@@ -352,6 +436,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "c2RDvksalG2acL3tyGCY0t"
},
{
"__type__": "b1d8e1ZA0dLtqufhidnFK/K",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 23
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6f9YyS6nFCzY07u1RYhIQa"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -32,10 +32,13 @@
},
{
"__id__": 16
},
{
"__id__": 18
}
],
"_prefab": {
"__id__": 18
"__id__": 20
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -352,6 +355,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "c2RDvksalG2acL3tyGCY0t"
},
{
"__type__": "b1d8e1ZA0dLtqufhidnFK/K",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 19
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "43TGZhxTROHqjaNE4JoR4B"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -11,7 +11,7 @@
"speed": 1,
"wrapMode": 2,
"enableTrsBlending": false,
"_duration": 0.8333333333333334,
"_duration": 0.5833333333333334,
"_hash": 500763545,
"_tracks": [
{
@@ -22,7 +22,7 @@
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 11
"__id__": 12
},
"_auxiliaryCurveEntries": []
},
@@ -37,16 +37,16 @@
},
"_channels": [
{
"__id__": 3
"__id__": 4
},
{
"__id__": 5
"__id__": 6
},
{
"__id__": 7
"__id__": 8
},
{
"__id__": 9
"__id__": 10
}
],
"_nComponents": 3
@@ -54,21 +54,28 @@
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"scale"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "skill/dun"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 4
"__id__": 5
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.4166666567325592,
0.8333333134651184
0.2916666567325592,
0.5833333134651184
],
"_values": [
{
@@ -114,15 +121,15 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 6
"__id__": 7
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.4166666567325592,
0.8333333134651184
0.2916666567325592,
0.5833333134651184
],
"_values": [
{
@@ -141,7 +148,7 @@
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.100000023841858,
"value": 1.2000000476837158,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
@@ -168,15 +175,15 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 8
"__id__": 9
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.4166666567325592,
0.8333333134651184
0.2916666567325592,
0.5833333134651184
],
"_values": [
{
@@ -222,7 +229,7 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 10
"__id__": 11
}
},
{

View File

@@ -25,25 +25,22 @@
"_active": true,
"_components": [
{
"__id__": 6
"__id__": 14
},
{
"__id__": 8
"__id__": 16
},
{
"__id__": 10
},
{
"__id__": 12
"__id__": 18
}
],
"_prefab": {
"__id__": 14
"__id__": 20
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"y": -91,
"z": 0
},
"_lrot": {
@@ -55,8 +52,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"x": 1.4,
"y": 1.4,
"z": 1
},
"_mobility": 0,
@@ -77,15 +74,72 @@
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
"_children": [
{
"__id__": 3
}
],
"_active": true,
"_components": [
{
"__id__": 9
},
{
"__id__": 11
}
],
"_prefab": {
"__id__": 5
"__id__": 13
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -15,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "dun",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 4
},
{
"__id__": 6
}
],
"_prefab": {
"__id__": 8
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -103,11 +157,11 @@
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"y": 1.1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_layer": 1,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
@@ -122,27 +176,72 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 4
"__id__": 5
},
"_contentSize": {
"__type__": "cc.Size",
"width": 48,
"height": 48
"width": 86,
"height": 84
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
"y": 0
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "b4sNQPJWFKha7x75SWXmRj"
"fileId": "e2qx7yL4NAL7+etGXqzyB5"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 245,
"b": 0,
"a": 255
},
"_spriteFrame": {
"__uuid__": "45af5702-7585-4d72-85cf-d7b8da02d832@bbb42",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "4fqUTuxMdJ8ZH/L993I9oX"
},
{
"__type__": "cc.PrefabInfo",
@@ -152,7 +251,90 @@
"asset": {
"__id__": 0
},
"fileId": "7a5LvbdlxEc6FKa7cun2oB",
"fileId": "5fa3k2fjdMaoZhAnWHpW+B",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 10
},
"_contentSize": {
"__type__": "cc.Size",
"width": 80,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "ffMAkaUpFI57IBOmyAqRb7"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": false,
"__prefab": {
"__id__": 12
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 206
},
"_spriteFrame": null,
"_type": 3,
"_fillType": 1,
"_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0.2,
"_fillRange": 1,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "9fHw3j4KRHy69YivdVDz8y"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "e0t/T+P9lKKplNd52LexfO",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
@@ -167,7 +349,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 7
"__id__": 15
},
"_contentSize": {
"__type__": "cc.Size",
@@ -176,8 +358,8 @@
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.49664333316829656,
"y": 0.5156666649712457
"x": 0.5,
"y": 0
},
"_id": ""
},
@@ -195,7 +377,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 9
"__id__": 17
},
"_id": ""
},
@@ -213,42 +395,24 @@
},
"_enabled": true,
"__prefab": {
"__id__": 11
"__id__": 19
},
"playOnLoad": true,
"_clips": [
{
"__uuid__": "2202bddf-38fc-4b0e-a004-ef962f61f49d",
"__uuid__": "5ec0664a-f8e6-4d50-98af-6ffa3d530ae3",
"__expectedType__": "cc.AnimationClip"
}
],
"_defaultClip": {
"__uuid__": "2202bddf-38fc-4b0e-a004-ef962f61f49d",
"__uuid__": "5ec0664a-f8e6-4d50-98af-6ffa3d530ae3",
"__expectedType__": "cc.AnimationClip"
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "7cJdSTCj5Eu4vDiD6FPj8P"
},
{
"__type__": "9e0d3yayihFMKm6st+kCG3D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": false,
"__prefab": {
"__id__": 13
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d9m8Z9r0FAn79RIXwYOlkG"
"fileId": "fekMKpI+NOpKIKl1FWNHvQ"
},
{
"__type__": "cc.PrefabInfo",

View File

@@ -49,8 +49,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"x": 1.4,
"y": 1.4,
"z": 1
},
"_mobility": 0,
@@ -141,7 +141,7 @@
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 57.141,
"y": 0,
"z": 0
},
"_lrot": {
@@ -153,8 +153,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 0.9,
"y": 1,
"x": 1,
"y": 1.1,
"z": 1
},
"_mobility": 0,
@@ -187,7 +187,7 @@
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
"y": 0
},
"_id": ""
},
@@ -223,7 +223,7 @@
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
@@ -355,7 +355,7 @@
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.49664333316829656,
"x": 0.5,
"y": 0
},
"_id": ""

View File

@@ -14,8 +14,8 @@ const { ccclass, property } = _decorator;
@ccclass('Main')
export class Main extends Root {
start() {
// PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.Aabb |
// EPhysics2DDrawFlags.Pair |
PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.Aabb |
EPhysics2DDrawFlags.Pair
// EPhysics2DDrawFlags.CenterOfMass |
// EPhysics2DDrawFlags.Joint |
// EPhysics2DDrawFlags.Shape;

View File

@@ -231,101 +231,101 @@ export const getSkills=(quality:number)=>{
}
export const SkillSet = {
6001:{uuid:6001,name:"剑气",for_hero:false,sp_name:"atk_1",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"},
6002:{uuid:6002,name:"冰球",for_hero:false,sp_name:"greenball",path:"3034",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"},
6003:{uuid:6003,name:"射击",for_hero:false,sp_name:"arrow",path:"3037",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.parabolic,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"},
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:2,hited:3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"},
6004:{uuid:6004,name:"护盾",for_hero:true,sp_name:"buff_to",path:"3045",quality:Quality.BLUE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Team,SType:SType.shield,act:"max",DTType:DTType.single,CdType:CdType.cd,AType:AType.StartEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:1,ap:0,cd:10,hit:1,hited:3,buV:2,buC:0,buR:100,speed:720,cost:10,info:"为最前排队友召唤一个可以抵御2次攻击的圣盾(最高叠加到6次)"},
6004:{uuid:6004,name:"护盾",for_hero:true,sp_name:"shield",path:"3045",quality:Quality.BLUE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Team,SType:SType.shield,act:"max",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,EType:EType.animationEnd,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:1,ap:0,cd:5,hit:1,hited:3,buV:2,buC:0,buR:100,speed:720,cost:10,info:"为最前排队友召唤一个可以抵御2次攻击的圣盾(最高叠加到6次)"},
6005:{uuid:6005,name:"治疗", for_hero:true, sp_name:"heath_small",path:"3056",quality:Quality.GREEN, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Team,SType:SType.heal,act:"max",DTType:DTType.single,CdType:CdType.cd,AType:AType.StartEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:0,
TGroup:TGroup.Team,SType:SType.heal,act:"max",DTType:DTType.single,CdType:CdType.cd,AType:AType.StartEnd,EType:EType.timeEnd,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:1,ap:0,cd:5,hit:0,hited:0,buV:20,buC:0,buR:100,speed:0,cost:10,info:"回复最前排队友10%最大生命值的生命"},
6006:{uuid:6006,name:"铁斧打击",for_hero:false,sp_name:"base_ft",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"},
6007:{uuid:6007,name:"木棍打击",for_hero:false,sp_name:"base_mg",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"},
6008:{uuid:6008,name:"飞刀打击",for_hero:false,sp_name:"base_sf",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"},
6009:{uuid:6009,name:"石斧打击",for_hero:false,sp_name:"base_sf",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"},
6010:{uuid:6010,name:"攻击",for_hero:false,sp_name:"atk1",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,RType:RType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:0,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,EType:EType.animationEnd,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:0.2,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"},
6011:{uuid:6011,name:"攻击",for_hero:false,sp_name:"atk2",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,RType:RType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:0,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,EType:EType.animationEnd,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:0.2,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"},
6020:{uuid:6020,name:"烈焰斩击",for_hero:false,sp_name:"max_fireatk",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,RType:RType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:0,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,EType:EType.animationEnd,fname:"max",flash:false,with:0,
debuff:0,deV:0,deC:0,deR:100,in:8,ap:100,cd:5,hit:1,hited:0.2,buV:0,buC:0,buR:100,speed:720,cost:10,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"},
6021:{uuid:6021,name:"烈火护盾",for_hero:true,sp_name:"max_firedun",path:"3061",quality:Quality.BLUE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedStart,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedStart,EType:EType.timeEnd,fname:"max",flash:false,with:90,
debuff:0,deV:0,deC:0,deR:100,in:10,ap:100,cd:5,hit:1,hited:1,buV:0,buC:0,buR:100,speed:80,cost:10,info:"召唤烈焰保护英雄,持续10秒,每秒对范围内的敌人造成100%伤害"},
6022:{uuid:6022,name:"火球术" ,for_hero:true,sp_name:"fire",path:"3039",quality:Quality.GREEN, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
debuff:DebuffAttr.STUN,deV:0,deC:1,deR:50,in:1,ap:100,cd:5,hit:2,hited:0.3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"},
6023:{uuid:6023,name:"龙卷风",for_hero:true, sp_name:"bwind",path:"3065",quality:Quality.GREEN, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.power,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.power,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:3,ap:100,cd:5,hit:1,hited:1,buV:0,buC:0,buR:100,speed:360,cost:10,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"},
6024:{uuid:6024,name:"寒冰箭",for_hero:true, sp_name:"arrow_blue",path:"3060",quality:Quality.GREEN, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
debuff:DebuffAttr.FROST,deV:1,deC:0,deR:100,in:1,ap:100,cd:1,hit:1,hited:0.3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
6025:{uuid:6025,name:"烈焰射击",for_hero:false,sp_name:"arrow_yellow",path:"3014",quality:Quality.GREEN, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.power,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.power,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
debuff:DebuffAttr.STUN,deV:0.5,deC:0,deR:50,in:1,ap:100,cd:5,hit:1,hited:0.3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"},
6026:{uuid:6026,name:"火墙", for_hero:true, sp_name:"firewall",path:"3040",quality:Quality.BLUE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.cd,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.cd,AType:AType.fixedEnd,EType:EType.timeEnd,fname:"max",flash:false,with:90,
debuff:0,deV:0,deC:0,deR:100,in:10,ap:50,cd:5,hit:1,hited:1,buV:0,buC:0,buR:100,speed:720,cost:10,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"},
6027:{uuid:6027,name:"冰刺",for_hero:true,sp_name:"icez",path:"3049",quality:Quality.BLUE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd,fname:"max",flash:false,with:90,
debuff:DebuffAttr.FROST,deV:0,deC:0,deR:100,in:1,ap:300,cd:5,hit:1,hited:0.3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
6028:{uuid:6028,name:"潮汐", for_hero:true, sp_name:"watert",path:"3070",quality:Quality.BLUE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd,fname:"max",flash:false,with:90,
debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:3,ap:100,cd:5,hit:1,hited:0.3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"},
6029:{uuid:6029,name:"陨石术",for_hero:true, sp_name:"max_yunshi",path:"3123",quality:Quality.BLUE, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd,fname:"max",flash:false,with:90,
debuff:0,deV:0,deC:0,deR:100,in:3,ap:500,cd:5,hit:1,hited:0.3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"},
6030:{uuid:6030,name:"冰墙", for_hero:false, sp_name:"icet",path:"3050",quality:Quality.GREEN, TType:TType.Frontline,maxC:1,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.cd,AType:AType.linear,RType:RType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:90,
TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.cd,AType:AType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:90,
debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:1,ap:400,cd:5,hit:1,hited:0.3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"},
//召唤取消
// 6031:{uuid:6031,name:"召唤骷髅",for_hero:true,sp_name:"zhaohuan",path:"3018",quality:Quality.GREEN, TType:TType.Frontline,maxC:1,
// TGroup:TGroup.Self,SType:SType.zhaohuan,act:"max",DTType:DTType.single,CdType:CdType.power,AType:AType.fixedStart,RType:RType.fixed,EType:EType.animationEnd,fname:"max_blue",flash:true,with:90,
// TGroup:TGroup.Self,SType:SType.zhaohuan,act:"max",DTType:DTType.single,CdType:CdType.power,AType:AType.fixedStart,EType:EType.animationEnd,fname:"max_blue",flash:true,with:90,
// debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:70,cd:60,hit:1,hited:1,buV:0,buC:0,buR:100,speed:720,hero:5221,cost:10,info:"召唤一个骷髅战士为我方而战"},
6032:{uuid:6032,name:"陨石风暴",for_hero:true, sp_name:"fireys",path:"3101",quality:Quality.PURPLE, TType:TType.Frontline,maxC:5,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd,fname:"max",flash:false,with:90,
debuff:0,deV:0,deC:0,deR:50,in:3,ap:500,cd:5,hit:1,hited:0.3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"},
6033:{uuid:6033,name:"龙卷风爆",for_hero:true, sp_name:"bwind",path:"3069",quality:Quality.PURPLE, TType:TType.Frontline,maxC:5,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
debuff:DebuffAttr.BACK,deV:0,deC:0,deR:50,in:3,ap:100,cd:5,hit:1,hited:1,buV:0,buC:0,buR:100,speed:360,cost:10,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"},
6034:{uuid:6034,name:"大潮汐", for_hero:true, sp_name:"watert",path:"3070",quality:Quality.PURPLE, TType:TType.Frontline,maxC:5,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd,fname:"max",flash:false,with:90,
debuff:DebuffAttr.BACK,deV:0,deC:0,deR:50,in:3,ap:100,cd:5,hit:1,hited:0.3,buV:0,buC:0,buR:100,speed:720,cost:10,info:"召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"},
};

View File

@@ -323,6 +323,7 @@ export class SkillConComp extends CCComp {
onDestroy() {
// 清理所有定时器
console.log("[SkillConComp]:onDestroy:",this.node.name)
Object.values(this._timers).forEach(clearTimeout);
this._timers = {};
// 移除事件监听

View File

@@ -0,0 +1,338 @@
import { _decorator,Collider2D ,Contact2DType,v3,IPhysics2DContact,Vec3, tween, math, RigidBody2D, Animation, sp, Tween} from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { smc } from "../common/SingletonModuleComp";
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
import { AType, DTType, EType, RType, SkillSet, SType, TGroup } from "../common/config/SkillSet";
import { BoxSet, FacSet } from "../common/config/BoxSet";
import { HeroViewComp } from "../hero/HeroViewComp";
import { BezierMove } from "../BezierMove/BezierMove";
import { MonModelComp } from "../hero/MonModelComp";
import { FightSet } from "../common/config/Mission";
import { HeroModelComp } from "../hero/HeroModelComp";
import { Skill } from "./Skill";
const { ccclass, property } = _decorator;
/** 视图层对象 */
@ccclass('SkillCom')
@ecs.register('SkillCom')
export class SkillCom extends CCComp {
s_uuid:number = 0;
s_name:string = "";
hero:number = 0;
speed:number = 200;
scale:number = 1;
angle:number = 0;
atk_count:number = 0;
is_destroy:boolean = false;
enemys:any = [];
AType: number = 0; // 运动类型
startPos: Vec3 = v3(); // 起始位置
targetPos: Vec3 = v3(); // 目标位置
duration: number = 0; // 技能持续时间
prefabName: string = ""; // 预制体名称
animName: string = "";
group:number = 0; //阵营
fac:number=0; //阵营
caster:any=null;
distance_x:number=0;
distance_y:number=0;
ap:number=0;
buV:number=0;
buC:number=0;
buR:number=0;
burn_count:number=0;
burn_value:number=0;
stun_time:number=0;
stun_ratto:number=0;
frost_ratto:number=0;
frost_time:number=0;
run_time:number=0;
hited_time:number=0;
hit_count:number=0;
spine:sp.Skeleton=null;
anim:Animation=null;
tweenInstance:Tween<any> = null;
t_end_x:number=0;
caster_crit:number=0;
caster_crit_d:number=0;
puncture:number=0;
puncture_damage:number=0;
EType:any=null
private moveDirection: Vec3 | null = null; // 添加一个属性来存储移动方向
protected onLoad(): void {
}
start() {
this.EType=SkillSet[this.s_uuid].EType
this.node.setPosition(this.startPos.x,this.startPos.y,0)
if(this.node.getChildByName('anm')){
this.spine=this.node.getChildByName('anm').getComponent('sp.Skeleton') as sp.Skeleton;
}else{
this.anim=this.node.getComponent(Animation)
}
this.on(GameEvent.MissionEnd, this.doDestroy, this);
this.node.active = true;
//console.log("[SkillCom]:caster",this.caster)
let collider = this.getComponent(Collider2D);
if(collider) {
collider.group = this.group;
collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
}
let bm=this.node.getComponent(BezierMove)
// //console.log(this.group +"技能 collider ",collider);
switch(SkillSet[this.s_uuid].AType){
case AType.parabolic:
this.node.angle +=10
// bm.speed=700
if(this.group==BoxSet.MONSTER) {bm.controlPointSide=-1 }
bm.rotationSmoothness=0.6
bm.moveTo(this.targetPos)
break;
case AType.linear:
let s_x=this.startPos.x
let s_y=this.startPos.y
let t_x=this.targetPos.x
let t_y=this.targetPos.y
// 设定目标x
this.targetPos.x = 400;
if(this.group == BoxSet.MONSTER) {
bm.controlPointSide = -1;
this.targetPos.x = -400;
}
// 计算斜率
const k = (t_y - s_y) / (t_x - s_x);
// 按直线公式计算新的y
this.targetPos.y = k * (this.targetPos.x - s_x) + s_y;
bm.controlPointOffset=0
bm.rotationSmoothness=0.6
bm.moveTo(this.targetPos);
break;
case AType.StartEnd:
// 2段位移先升高然后移到目的地
this.executeTwoStageMovement();
break;
case AType.fixedEnd:
this.node.setPosition(this.targetPos.x > 360?300:this.targetPos.x,0,0)
if(this.node.getComponent(Animation)){
let anim = this.node.getComponent(Animation);
//console.log("[SkillCom]:has anim",anim)
anim.on(Animation.EventType.FINISHED, this.onAnimationFinished, this);
}
if(this.node.getChildByName('anm')){
if(this.node.getChildByName('anm').getComponent('sp.Skeleton')){
//console.log("[SkillCom]:has spine",this.spine)
this.spine.setCompleteListener((trackEntry) => {
this.onAnimationFinished()
//console.log("[SkillCom]:[track %s][animation %s] complete: %s", trackEntry.trackIndex);
});
}
}
break;
case AType.fixedStart: //
this.node.setPosition(this.startPos.x > 360?300:this.startPos.x,0,0)
if(this.node.getComponent(Animation)){
let anim = this.node.getComponent(Animation);
//console.log("[SkillCom]:has anim",anim)
anim.on(Animation.EventType.FINISHED, this.onAnimationFinished, this);
}
if(this.node.getChildByName('anm')){
if(this.node.getChildByName('anm').getComponent('sp.Skeleton')){
//console.log("[SkillCom]:has spine",this.spine)
this.spine.setCompleteListener((trackEntry) => {
this.onAnimationFinished()
//console.log("[SkillCom]:[track %s][animation %s] complete: %s", trackEntry.trackIndex);
});
}
}
break;
}
}
onAnimationFinished(){
console.log("[SkillCom]:onAnimationFinished",this.s_uuid)
if(SkillSet[this.s_uuid].EType==EType.timeEnd) return
this.is_destroy=true
}
//范围伤害
range_damage(){
// console.log("[SkillCom]:range_damage",this.s_uuid)
let enemys=ecs.query(ecs.allOf(MonModelComp))
if(this.fac==FacSet.MON) enemys=ecs.query(ecs.allOf(HeroModelComp))
enemys.forEach(entity => {
let view=entity.get(HeroViewComp)
if(view){
let dis_x =Math.abs(this.node.position.x-view.node.position.x)
let dis_y =Math.abs(this.node.position.y-view.node.position.y)
if(dis_x > SkillSet[this.s_uuid].with||dis_y > SkillSet[this.s_uuid].with) return
this.single_damage(view,true)
}
});
}
//单体伤害
single_damage(target:HeroViewComp,is_range:boolean=false){
// //console.log("[SkillCom]:onBeginContact hit_count:",this.hit_count,SkillSet[this.s_uuid].hit)
// if(this.hit_count > 0&&!is_range) this.ap=this.ap*(50+this.puncture_damage)/100 // 穿刺后 伤害减半,过滤范围伤害
if(target == null) return;
let ap=this.ap
if(this.hit_count > 0 &&!is_range ){
ap=ap*(50+this.puncture_damage)/100
}
target.do_atked(ap,this.caster_crit,this.caster_crit_d,
this.burn_count,this.burn_value,
this.stun_time,this.stun_ratto,
this.frost_time,this.frost_ratto) // ap 及暴击 属性已经在skill.ts 处理
// console.log("[SkillCom]:single_damage t:tp:rtp",this.node.position,this.targetPos,target.node.position)
if(SkillSet[this.s_uuid].debuff>0){
let debuff=SkillSet[this.s_uuid]
let dev=debuff.deV*(100+this.caster.DEBUFF_VALUE)/100
let deR=debuff.deR+this.caster.DEBUFF_UP
dev=Math.round(dev*100)/100
let deC=debuff.deC+this.caster.DEBUFF_COUNT //dec只作为次数叠加
// //console.log("[SkillCom]:debuff",SkillSet[this.s_uuid].name,debuff.debuff,deUP.deV,deUP.deC)
target.add_debuff(debuff.debuff,dev,deC,deR)
}
this.hit_count++
// console.log("[SkillCom]:碰撞次数:技能次数:穿刺次数",this.hit_count,SkillSet[this.s_uuid].hit,this.puncture)
if(this.hit_count>=(SkillSet[this.s_uuid].hit+this.puncture)&&(SkillSet[this.s_uuid].DTType!=DTType.range)&&(SkillSet[this.s_uuid].EType!=EType.animationEnd)) this.is_destroy=true // 技能命中次数
}
onBeginContact (seCol: Collider2D, oCol: Collider2D) {
// console.log(this.scale+"碰撞开始 ",seCol,oCol);
if(seCol.node.position.x-oCol.node.position.x > 100 ) return
let target = oCol.getComponent(HeroViewComp)
if(oCol.group!=this.group){
if(target == null) return;
// console.log("[SkillCom]:onBeginContact oCol||seCol",oCol.node.position,seCol.node.position)
this.single_damage(target,SkillSet[this.s_uuid].DTType==DTType.range?true:false)
// this.ent.destroy()
}
}
/**
* 执行2段位移先升高然后移到目的地
*/
private executeTwoStageMovement() {
const totalDuration = SkillSet[this.s_uuid].in-0.1
const firstStageDuration = totalDuration * 0.4; // 第一段占40%时间
const secondStageDuration = totalDuration * 0.6; // 第二段占60%时间
// 第一段:升高
const riseHeight = 100; // 升高高度
const midPosition = v3(this.node.position.x, this.node.position.y + riseHeight, 0);
// 第二段:移动到目标位置
const finalPosition = v3(this.targetPos.x, this.targetPos.y, 0);
// 创建缓动序列
tween(this.node)
// 第一段:升高
.to(firstStageDuration, { position: midPosition }, {
easing: 'quadOut' // 使用二次缓出效果,让上升更自然
})
// 第二段:移动到目标位置
.to(secondStageDuration, { position: finalPosition }, {
easing: 'quadInOut' // 使用二次缓入缓出效果
}).call(()=>{
this.do_buff()
})
.start();
}
private do_buff(){
//console.log("[SkillCom]:do_buff")
let teams=ecs.query(ecs.allOf(HeroModelComp))
if(this.fac==FacSet.MON) teams=ecs.query(ecs.allOf(MonModelComp))
if(SkillSet[this.s_uuid].TGroup==TGroup.Team||SkillSet[this.s_uuid].TGroup==TGroup.Self) {
teams.forEach(entity => {
let view=entity.get(HeroViewComp)
if(view.node.position.x==this.targetPos.x){
if(SkillSet[this.s_uuid].SType==SType.heal){
view.add_hp(this.buV,false)
}
if(SkillSet[this.s_uuid].SType==SType.shield){
view.add_shield(this.buV)
}
}
});
}
}
update(deltaTime: number) {
let config=SkillSet[this.s_uuid]
if(smc.mission.pause) {
if(this.spine) this.spine.paused=true
if(this.anim) this.anim.pause()
return;
}
if(this.anim) this.anim.resume()
if(this.spine) this.spine.paused=false
if (!this.node || !this.node.isValid) return;
if(config.EType==EType.timeEnd){
this.run_time+=deltaTime
if(this.run_time>config.in){
// //console.log("[SkillCom]: timeEnd destroy",this.s_uuid,this.run_time)
this.is_destroy=true
}
}
//范围伤害
this.hited_time+=deltaTime
if(this.hited_time>config.hited&&(SkillSet[this.s_uuid].DTType==DTType.range)){
this.hited_time=0
this.range_damage()
}
//直线移动
// if(this.AType == AType.linear) this.startLinearMove(deltaTime);
this.toDestroy();
}
toDestroy() {
if(this.is_destroy){
if (this.ent) {
this.ent.destroy();
} else {
// 如果ent不存在直接销毁节点
if (this.node && this.node.isValid) {
this.node.destroy();
}
}
}
}
doDestroy(){
// //console.log("[SkillCom]:doDestroy")
this.is_destroy=true
}
to_console(value:any,value2:any=null,value3:any=null){
//console.log("[SkillCom]:["+this.s_name+this.s_uuid+"]:",value,value2,value3)
}
/** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */
reset() {
this.is_destroy = false;
this.AType = 0;
this.speed = 0;
this.startPos.set();
this.targetPos.set();
this.moveDirection = null; // 重置移动方向
// 先移除所有碰撞回调
const collider = this.getComponent(Collider2D);
if (collider) {
collider.off(Contact2DType.BEGIN_CONTACT);
}
this.scheduleOnce(() => {
this.node.destroy();
}, 0);
}
}

View File

@@ -0,0 +1 @@
{"ver":"4.0.23","importer":"typescript","imported":true,"uuid":"dd03bf84-3e0b-43c3-b952-bbf57c82ac92","files":[],"subMetas":{},"userData":{}}

View File

@@ -4,7 +4,7 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
import { smc } from "../common/SingletonModuleComp";
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
import { AType, DTType, EType, RType, SkillSet, SType, TGroup } from "../common/config/SkillSet";
import { AType, DTType, EType, SkillSet, SType, TGroup } from "../common/config/SkillSet";
import { BoxSet, FacSet } from "../common/config/BoxSet";
import { HeroViewComp } from "../hero/HeroViewComp";
import { BezierMove } from "../BezierMove/BezierMove";
@@ -117,29 +117,22 @@ export class SkillCom extends CCComp {
break;
case AType.StartEnd:
// 2段位移先升高然后移到目的地
this.executeTwoStageMovement();
this.node.setPosition(this.startPos.x > 360?300:this.startPos.x,0,0)
this.do_anim()
break;
case AType.fixedEnd:
this.node.setPosition(this.targetPos.x > 360?300:this.targetPos.x,0,0)
if(this.node.getComponent(Animation)){
let anim = this.node.getComponent(Animation);
//console.log("[SkillCom]:has anim",anim)
anim.on(Animation.EventType.FINISHED, this.onAnimationFinished, this);
}
if(this.node.getChildByName('anm')){
if(this.node.getChildByName('anm').getComponent('sp.Skeleton')){
//console.log("[SkillCom]:has spine",this.spine)
this.spine.setCompleteListener((trackEntry) => {
this.onAnimationFinished()
//console.log("[SkillCom]:[track %s][animation %s] complete: %s", trackEntry.trackIndex);
});
}
}
this.do_anim()
break;
case AType.fixedStart: //
this.node.setPosition(this.startPos.x > 360?300:this.startPos.x,0,0)
this.do_anim()
break;
}
}
do_anim(){
if(this.node.getComponent(Animation)){
let anim = this.node.getComponent(Animation);
//console.log("[SkillCom]:has anim",anim)
@@ -154,31 +147,22 @@ export class SkillCom extends CCComp {
});
}
}
break;
}
}
onAnimationFinished(){
console.log("[SkillCom]:onAnimationFinished",this.s_uuid)
if(SkillSet[this.s_uuid].EType==EType.timeEnd) return
if(SkillSet[this.s_uuid].SType!=SType.damage){
this.to_do_buff()
}
this.is_destroy=true
}
//范围伤害
range_damage(){
// console.log("[SkillCom]:range_damage",this.s_uuid)
let enemys=ecs.query(ecs.allOf(MonModelComp))
if(this.fac==FacSet.MON) enemys=ecs.query(ecs.allOf(HeroModelComp))
enemys.forEach(entity => {
let view=entity.get(HeroViewComp)
if(view){
let dis_x =Math.abs(this.node.position.x-view.node.position.x)
let dis_y =Math.abs(this.node.position.y-view.node.position.y)
if(dis_x > SkillSet[this.s_uuid].with||dis_y > SkillSet[this.s_uuid].with) return
this.single_damage(view,true)
to_do_buff(){
switch(SkillSet[this.s_uuid].SType){
case SType.shield:
this.caster.add_shield(SkillSet[this.s_uuid].buV)
break;
}
});
}
//单体伤害
single_damage(target:HeroViewComp,is_range:boolean=false){
@@ -205,7 +189,7 @@ export class SkillCom extends CCComp {
}
this.hit_count++
// console.log("[SkillCom]:碰撞次数:技能次数:穿刺次数",this.hit_count,SkillSet[this.s_uuid].hit,this.puncture)
if(this.hit_count>=(SkillSet[this.s_uuid].hit+this.puncture)&&(SkillSet[this.s_uuid].DTType!=DTType.range)&&(SkillSet[this.s_uuid].EType!=EType.animationEnd)) this.is_destroy=true // 技能命中次数
if(this.hit_count>=(SkillSet[this.s_uuid].hit+this.puncture)&&(SkillSet[this.s_uuid].DTType!=DTType.range)&&(SkillSet[this.s_uuid].EType!=EType.animationEnd)&&(SkillSet[this.s_uuid].EType!=EType.timeEnd)) this.is_destroy=true // 技能命中次数
}
onBeginContact (seCol: Collider2D, oCol: Collider2D) {
@@ -221,53 +205,6 @@ export class SkillCom extends CCComp {
}
/**
* 执行2段位移先升高然后移到目的地
*/
private executeTwoStageMovement() {
const totalDuration = SkillSet[this.s_uuid].in-0.1
const firstStageDuration = totalDuration * 0.4; // 第一段占40%时间
const secondStageDuration = totalDuration * 0.6; // 第二段占60%时间
// 第一段:升高
const riseHeight = 100; // 升高高度
const midPosition = v3(this.node.position.x, this.node.position.y + riseHeight, 0);
// 第二段:移动到目标位置
const finalPosition = v3(this.targetPos.x, this.targetPos.y, 0);
// 创建缓动序列
tween(this.node)
// 第一段:升高
.to(firstStageDuration, { position: midPosition }, {
easing: 'quadOut' // 使用二次缓出效果,让上升更自然
})
// 第二段:移动到目标位置
.to(secondStageDuration, { position: finalPosition }, {
easing: 'quadInOut' // 使用二次缓入缓出效果
}).call(()=>{
this.do_buff()
})
.start();
}
private do_buff(){
//console.log("[SkillCom]:do_buff")
let teams=ecs.query(ecs.allOf(HeroModelComp))
if(this.fac==FacSet.MON) teams=ecs.query(ecs.allOf(MonModelComp))
if(SkillSet[this.s_uuid].TGroup==TGroup.Team||SkillSet[this.s_uuid].TGroup==TGroup.Self) {
teams.forEach(entity => {
let view=entity.get(HeroViewComp)
if(view.node.position.x==this.targetPos.x){
if(SkillSet[this.s_uuid].SType==SType.heal){
view.add_hp(this.buV,false)
}
if(SkillSet[this.s_uuid].SType==SType.shield){
view.add_shield(this.buV)
}
}
});
}
}
update(deltaTime: number) {
let config=SkillSet[this.s_uuid]
@@ -286,12 +223,7 @@ export class SkillCom extends CCComp {
this.is_destroy=true
}
}
//范围伤害
this.hited_time+=deltaTime
if(this.hited_time>config.hited&&(SkillSet[this.s_uuid].DTType==DTType.range)){
this.hited_time=0
this.range_damage()
}
//直线移动
// if(this.AType == AType.linear) this.startLinearMove(deltaTime);
this.toDestroy();

View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "9efcc55e-db7c-4761-af6f-ee8bc2f1f63b",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,29 @@
import { _decorator } from "cc";
import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
const { ccclass, property } = _decorator;
/** 视图层对象 */
@ccclass('AtkComComp')
@ecs.register('AtkCom', false)
export class AtkComComp extends CCComp {
/** 视图层逻辑代码分离演示 */
start() {
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
// this.on(ModuleEvent.Cmd, this.onHandler, this);
}
/** 全局消息逻辑处理 */
// private onHandler(event: string, args: any) {
// switch (event) {
// case ModuleEvent.Cmd:
// break;
// }
// }
/** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */
reset() {
this.node.destroy();
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "b1d8ed59-0347-4bb6-ab9f-86276714afca",
"files": [],
"subMetas": {},
"userData": {}
}