todo 技能存在时间准确性问题

This commit is contained in:
2025-01-10 11:07:53 +08:00
parent b4158a0a29
commit 1d9af24c66
20 changed files with 315 additions and 457 deletions

View File

@@ -349,7 +349,6 @@
"__id__": 0 "__id__": 0
}, },
"fileId": "c46/YsCPVOJYA4mWEpNYRx", "fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": null, "instance": null
"targetOverrides": null
} }
] ]

View File

@@ -1,34 +0,0 @@
slash9.png
size: 277,108
format: RGBA8888
filter: Linear,Linear
repeat: none
slash9_00006
rotate: true
xy: 2, 4
size: 102, 73
orig: 148, 75
offset: 45, 1
index: -1
slash9_00007
rotate: true
xy: 77, 4
size: 102, 69
orig: 153, 77
offset: 50, 7
index: -1
slash9_00008
rotate: true
xy: 148, 2
size: 104, 64
orig: 162, 84
offset: 57, 19
index: -1
slash9_00009
rotate: true
xy: 214, 2
size: 104, 61
orig: 166, 89
offset: 61, 27
index: -1

View File

@@ -1,12 +0,0 @@
{
"ver": "1.0.1",
"importer": "*",
"imported": true,
"uuid": "8fc09e22-e242-4b20-b306-b1b65c7bc62a",
"files": [
".atlas",
".json"
],
"subMetas": {},
"userData": {}
}

View File

@@ -1,47 +0,0 @@
{
"skeleton": {
"hash": "lFfjZSvL4itj6YxoiP/PtBsDjyE=",
"spine": "3.8.75",
"x": -83,
"y": -44.5,
"width": 166,
"height": 89,
"images": "./slash9/",
"audio": "D:/исходники/VFX/s/slash9/slash9"
},
"bones": [
{ "name": "root" }
],
"slots": [
{ "name": "slash9_00001", "bone": "root", "attachment": "slash9_00009" }
],
"skins": [
{
"name": "default",
"attachments": {
"slash9_00001": {
"slash9_00006": { "width": 148, "height": 75 },
"slash9_00007": { "width": 153, "height": 77 },
"slash9_00008": { "width": 162, "height": 84 },
"slash9_00009": { "width": 166, "height": 89 }
}
}
}
],
"animations": {
"animation": {
"slots": {
"slash9_00001": {
"attachment": [
{ "name": null },
{ "time": 0.0333, "name": "slash9_00006" },
{ "time": 0.0667, "name": "slash9_00007" },
{ "time": 0.1, "name": "slash9_00008" },
{ "time": 0.1333, "name": "slash9_00009" },
{ "time": 0.1667, "name": null }
]
}
}
}
}
}

View File

@@ -1,11 +0,0 @@
{
"ver": "1.2.6",
"importer": "spine-data",
"imported": true,
"uuid": "f6aac092-b804-4402-97ee-83b00c8b7d40",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -1,42 +0,0 @@
{
"ver": "1.0.26",
"importer": "image",
"imported": true,
"uuid": "a638e293-4be6-4cd0-a5ed-d99670181d98",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "a638e293-4be6-4cd0-a5ed-d99670181d98@6c48a",
"displayName": "slash9",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "repeat",
"wrapModeT": "repeat",
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0,
"isUuid": true,
"imageUuidOrDatabaseUri": "a638e293-4be6-4cd0-a5ed-d99670181d98",
"visible": false
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"hasAlpha": true,
"type": "texture",
"fixAlphaTransparencyArtifacts": false,
"redirect": "a638e293-4be6-4cd0-a5ed-d99670181d98@6c48a"
}
}

View File

@@ -0,0 +1,215 @@
[
{
"__type__": "cc.Prefab",
"_name": "buffto",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "buffto",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_prefab": {
"__id__": 12
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 10,
"height": 10
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "89ju37xNVPJJOPezJpA7XB"
},
{
"__type__": "cc.RigidBody2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"enabledContactListener": true,
"bullet": true,
"awakeOnLoad": true,
"_group": 4,
"_type": 2,
"_allowSleep": false,
"_gravityScale": 0,
"_linearDamping": 0,
"_angularDamping": 0,
"_linearVelocity": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_angularVelocity": 0,
"_fixedRotation": false,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "07uXEQG8ZCE76IrvSTYrAV"
},
{
"__type__": "cc.BoxCollider2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"tag": 8,
"_group": 4,
"_density": 1,
"_sensor": true,
"_friction": 0.2,
"_restitution": 0,
"_offset": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_size": {
"__type__": "cc.Size",
"width": 10,
"height": 10
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "80LDGzzxtKw7YkqT7LlZHv"
},
{
"__type__": "45646oIyIdA24W+0c5rdELD",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 9
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c85qjxH1VHg7/9D7EtmgU5"
},
{
"__type__": "2e239CwoM1FmoR8QJ5eOtPz",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "deBQkHYeFNy6ZH3Lm8VORa"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "65v9q/98dMjafRlb094Ctr",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "f43b3edf-e51b-41fb-9f71-8fe457743477",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "buffto"
}
}

View File

@@ -160,8 +160,8 @@
], ],
"value": { "value": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 24.893, "x": 24,
"y": 205.185, "y": 205,
"z": 0 "z": 0
} }
}, },

View File

@@ -160,8 +160,8 @@
], ],
"value": { "value": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 24.893, "x": 24,
"y": 205.185, "y": 300,
"z": 0 "z": 0
} }
}, },

View File

@@ -17,31 +17,27 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": null, "_parent": null,
"_children": [ "_children": [],
{
"__id__": 2
}
],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 12 "__id__": 2
}, },
{ {
"__id__": 14 "__id__": 4
}, },
{ {
"__id__": 16 "__id__": 6
}, },
{ {
"__id__": 18 "__id__": 8
}, },
{ {
"__id__": 20 "__id__": 10
} }
], ],
"_prefab": { "_prefab": {
"__id__": 22 "__id__": 12
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -72,234 +68,6 @@
}, },
"_id": "" "_id": ""
}, },
{
"__type__": "cc.Node",
"_name": "node",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
}
],
"_active": true,
"_components": [
{
"__id__": 9
}
],
"_prefab": {
"__id__": 11
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 30,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0.42261826174069944,
"w": 0.9063077870366499
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 50
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "SlashFX",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 2
},
"_children": [],
"_active": false,
"_components": [
{
"__id__": 4
},
{
"__id__": 6
}
],
"_prefab": {
"__id__": 8
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_contentSize": {
"__type__": "cc.Size",
"width": 56,
"height": 64
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "cbUw6lSltDg6O4tmjWazNk"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "45af5702-7585-4d72-85cf-d7b8da02d832@aa3e6",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "a7s7K5cWFORo80UPsfAaDZ"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "dd68TOq2FD/p273TPxVCR5",
"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": 55,
"height": 70
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "9dlV3sySpMf6p/E2u6uZ6d"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "db7rmP1d1ILqb1xd5wVWTD",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{ {
"__type__": "cc.UITransform", "__type__": "cc.UITransform",
"_name": "", "_name": "",
@@ -310,7 +78,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 13 "__id__": 3
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -338,7 +106,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 15 "__id__": 5
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": true, "bullet": true,
@@ -372,7 +140,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 17 "__id__": 7
}, },
"tag": 8, "tag": 8,
"_group": 4, "_group": 4,
@@ -406,7 +174,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 19 "__id__": 9
}, },
"_id": "" "_id": ""
}, },
@@ -424,7 +192,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 21 "__id__": 11
}, },
"_id": "" "_id": ""
}, },

View File

@@ -2,7 +2,7 @@
"ver": "1.1.50", "ver": "1.1.50",
"importer": "prefab", "importer": "prefab",
"imported": true, "imported": true,
"uuid": "5264ec11-ed2b-498a-a450-f005ecb85659", "uuid": "fb7acbdd-bb90-4206-92a5-7b9f88f8484b",
"files": [ "files": [
".json" ".json"
], ],

View File

@@ -48,76 +48,77 @@ export enum skRun {
dead = 1, dead = 1,
} }
export const SkillSet={ export const SkillSet={
6001:{uuid: 6001,path: "6001",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450, sonsk:0, 6001:{uuid: 6001,path: "6001",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:0,speed:450, sonsk:0,
name: "寒冰弹",sp_name:"ball_blue",info:"释放一个火球术攻击敌人"}, name: "寒冰弹",sp_name:"ball_blue",info:"释放一个火球术攻击敌人"},
6002:{uuid: 6002,path: "6002",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450, sonsk:0, 6002:{uuid: 6002,path: "6002",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:0,speed:450, sonsk:0,
name: "火焰弹",sp_name:"ball_red",info:"释放一个火球术攻击敌人"}, name: "火焰弹",sp_name:"ball_red",info:"释放一个火球术攻击敌人"},
6003:{uuid: 6003,path: "6003",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450, sonsk:0, 6003:{uuid: 6003,path: "6003",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:0,speed:450, sonsk:0,
name: "魔法弹",sp_name:"ball_green",info:"释放一个火球术攻击敌人"}, name: "魔法弹",sp_name:"ball_green",info:"释放一个火球术攻击敌人"},
6004:{uuid: 6004,path: "6004",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450, sonsk:0, 6004:{uuid: 6004,path: "6004",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:0,speed:450, sonsk:0,
name: "圣光弹",sp_name:"ball_yellow",info:"释放一个火球术攻击敌人"}, name: "圣光弹",sp_name:"ball_yellow",info:"释放一个火球术攻击敌人"},
6005:{uuid: 6005,path: "6005",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450,sonsk:0, 6005:{uuid: 6005,path: "6005",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:0,
name: "无形剑气",sp_name:"patk",info:"释放无形剑气攻击前方直线100码的敌人"}, name: "无形剑气",sp_name:"patk",info:"释放无形剑气攻击前方直线100码的敌人"},
6006:{uuid: 6006,path: "6006",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450,sonsk:0, 6006:{uuid: 6006,path: "6006",run:1,type:1,tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:0,
name: "射击",sp_name:"arrow",info:"释放无形剑气攻击前方直线100码的敌人"}, name: "射击",sp_name:"arrow",info:"释放无形剑气攻击前方直线100码的敌人"},
6011:{uuid: 6011,path: "6011",run:0,type:1, tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:3,count:1,apup:0,ap:2,hp:0,cd:0.5,shield:0,speed:100,sonsk:0, 6011:{uuid: 6011,path: "6011",run:0,type:1, tg:3,with:false,debuff:0,depb:50,debtime:2,derate:1,in:3,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:0.5,shield:0,speed:100,sonsk:0,
name: "烈火呼吸",sp_name:"firequan",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"}, name: "烈火呼吸",sp_name:"firequan",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"},
6012:{uuid: 6012,path: "6012",run:0,type:1, tg:3,with:false,debuff:2,depb:50,debtime:6,derate:1,in:1,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450,sonsk:0, 6012:{uuid: 6012,path: "6012",run:0,type:1, tg:3,with:false,debuff:2,depb:50,debtime:6,derate:1,in:1,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:0,
name: "大火球",sp_name:"fire",info:"释放有形剑气攻击前方直线300码的敌人"}, name: "大火球",sp_name:"fire",info:"释放有形剑气攻击前方直线300码的敌人"},
6013:{uuid: 6013,path: "6013",run:0,type:1, tg:3,with:false,debuff:7,depb:50,debtime:2,derate:0.01,in:10,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450,sonsk:0, 6013:{uuid: 6013,path: "6013",run:0,type:1, tg:3,with:false,debuff:7,depb:50,debtime:2,derate:0.01,in:10,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:0,
name: "火墙",sp_name:"fires",info:"释放有形剑气攻击前方直线300码的敌人"}, name: "火墙",sp_name:"fires",info:"释放有形剑气攻击前方直线300码的敌人"},
6014:{uuid: 6014,path: "6014",run:0,type:1, tg:3,with:false,debuff:1,depb:50,debtime:2,derate:1,in:1,count:1,apup:0,ap:2,hp:0,cd:1,shield:0,speed:450,sonsk:0, 6014:{uuid: 6014,path: "6014",run:0,type:1, tg:3,with:false,debuff:1,depb:50,debtime:2,derate:1,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:0,
name: "寒冰箭",sp_name:"ice",info:"释放有形剑气攻击前方直线300码的敌人"}, name: "寒冰箭",sp_name:"ice",info:"释放有形剑气攻击前方直线300码的敌人"},
6015:{uuid: 6015,path: "6015",run:0,type:1, tg:3,with:false,debuff:3,depb:50,debtime:6,derate:1,in:1,count:1,apup:0,ap:2,hp:0,cd:1,shield:0,speed:450,sonsk:0, 6015:{uuid: 6015,path: "6015",run:0,type:1, tg:3,with:false,debuff:3,depb:50,debtime:6,derate:1,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:0,
name: "火焰射击",sp_name:"arrow_yellow",info:"释放有形剑气攻击前方直线300码的敌人"}, name: "火焰射击",sp_name:"arrow_yellow",info:"释放有形剑气攻击前方直线300码的敌人"},
6016:{uuid: 6016,path: "6016",run:0,type:1, tg:3,with:false,debuff:8,depb:50,debtime:6,derate:1,in:1,count:1,apup:0,ap:2,hp:0,cd:1,shield:0,speed:300,sonsk:0, 6016:{uuid: 6016,path: "6016",run:0,type:1, tg:3,with:false,debuff:8,depb:50,debtime:6,derate:1,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:1,shield:0,speed:300,sonsk:0,
name: "龙卷风",sp_name:"bwind",info:"释放有形剑气攻击前方直线300码的敌人"}, name: "龙卷风",sp_name:"bwind",info:"释放有形剑气攻击前方直线300码的敌人"},
6017:{uuid: 6017,path: "6017",run:0,type:1, tg:2,with:false,debuff:0,depb:50,debtime:2,derate:1,in:10,count:1,apup:0,ap:1,hp:3,cd:1,shield:0,speed:450, sonsk:0, 6017:{uuid: 6017,path: "6017",run:0,type:1, tg:2,with:false,debuff:0,depb:50,debtime:2,derate:1,in:5,count:1,def:0,apup:0,ap:100,mhp:0,hp:20,cd:1,shield:0,speed:450, sonsk:0,
name: "治愈术",sp_name:"heath",info:"释放一个寒冰箭攻击敌人"}, name: "复苏",sp_name:"heath",info:"5秒持续为全体友方恢复施法者最大生命值20%的生命"},
6018:{uuid: 6018,path: "6018",run:0,type:1, tg:0,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,apup:0,ap:1,hp:0,cd:1,shield:3,speed:450, sonsk:0, 6018:{uuid: 6018,path: "6018",run:0,type:1, tg:0,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:5,speed:450, sonsk:0,
name: "魔法盾",sp_name:"shield",info:"释放一个寒冰箭攻击敌人"}, name: "魔法盾",sp_name:"shield",info:"释放一个寒冰箭攻击敌人"},
6019:{uuid: 6019,path: "6019",run:0,type:1, tg:0,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450, sonsk:0, 6019:{uuid: 6019,path: "6019",run:0,type:1, tg:0,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:1,shield:0,speed:450, sonsk:0,
name: "狂暴",sp_name:"atkup",info:"释放一个寒冰箭攻击敌人"}, name: "狂暴",sp_name:"atkup",info:"释放一个寒冰箭攻击敌人"},
6020:{uuid: 6020,path: "6020",run:2,type:2,tg:3,with:false,debuff:0,depb:50,debtime:0,derate:0,in:1,count:1,apup:0,ap:9,hp:0,cd:1,shield:0,speed:450,sonsk:6021, 6020:{uuid: 6020,path: "6020",run:2,type:2,tg:3,with:false,debuff:0,depb:50,debtime:0,derate:0,in:1,count:1,def:0,apup:0,ap:900,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:6021,
name: "致命射击",sp_name:"shoot1",info:"瞬间对最后排敌人造成致命射击"}, name: "致命射击",sp_name:"shoot1",info:"瞬间对最后排敌人造成致命射击"},
6021:{uuid: 6021,path: "6021",run:2,type:2,tg:3,with:false,debuff:0,depb:50,debtime:0,derate:0,in:1,count:1,apup:0,ap:9,hp:0,cd:1,shield:0,speed:450,sonsk:0, 6021:{uuid: 6021,path: "6021",run:2,type:2,tg:3,with:false,debuff:0,depb:50,debtime:0,derate:0,in:1,count:1,def:0,apup:0,ap:900,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:0,
name: "致命射击2",sp_name:"shoot2",info:"释放有形剑气攻击前方直线300码的敌人"}, name: "致命射击2",sp_name:"shoot2",info:"释放有形剑气攻击前方直线300码的敌人"},
6022:{uuid: 6022,path: "6022",run:0,type:1, tg:3,with:false,debuff:1,depb:50,debtime:2,derate:1,in:1,count:1,apup:0,ap:2,hp:0,cd:1,shield:0,speed:450,sonsk:0, 6022:{uuid: 6022,path: "6022",run:0,type:1, tg:3,with:false,debuff:1,depb:50,debtime:2,derate:1,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:0,
name: "冰刺",sp_name:"icez",info:"释放有形剑气攻击前方直线300码的敌人"}, name: "冰刺",sp_name:"icez",info:"释放有形剑气攻击前方直线300码的敌人"},
6023:{uuid: 6023,path: "6023",run:0,type:1, tg:3,with:false,debuff:8,depb:50,debtime:2,derate:1,in:1,count:1,apup:0,ap:4,hp:0,cd:1,shield:0,speed:450,sonsk:0, 6023:{uuid: 6023,path: "6023",run:0,type:1, tg:3,with:false,debuff:8,depb:50,debtime:2,derate:1,in:1,count:1,def:0,apup:0,ap:400,mhp:0,hp:0,cd:1,shield:0,speed:450,sonsk:0,
name: "冰墙",sp_name:"icet",info:"释放有形剑气攻击前方直线300码的敌人"}, name: "冰墙",sp_name:"icet",info:"释放有形剑气攻击前方直线300码的敌人"},
6024:{uuid: 6024,path: "6024",run:0,type:1, tg:3,with:true,debuff:8,depb:50,debtime:2,derate:1,in:2,count:1,apup:0,ap:2,hp:0,cd:0.5,shield:0,speed:100,sonsk:0, 6024:{uuid: 6024,path: "6024",run:0,type:1, tg:3,with:true,debuff:8,depb:50,debtime:2,derate:1,in:2,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:0.5,shield:0,speed:100,sonsk:0,
name: "旋风斩",sp_name:"fwind",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"}, name: "旋风斩",sp_name:"fwind",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"},
6025:{uuid: 6025,path: "6025",run:1,type:1, tg:3,with:false,debuff:8,depb:50,debtime:2,derate:1,in:3,count:1,apup:0,ap:5,hp:0,cd:1,shield:0,speed:500,sonsk:0, 6025:{uuid: 6025,path: "6025",run:1,type:1, tg:3,with:false,debuff:8,depb:50,debtime:2,derate:1,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:1,shield:0,speed:500,sonsk:0,
name: "螺旋击",sp_name:"fireball",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"}, name: "螺旋击",sp_name:"fireball",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"},
6026:{uuid: 6026,path: "6026",run:0,type:1, tg:3,with:false,debuff:8,depb:50,debtime:2,derate:1,in:3,count:1,apup:0,ap:5,hp:0,cd:1,shield:0,speed:500,sonsk:0, 6026:{uuid: 6026,path: "6026",run:0,type:1, tg:3,with:false,debuff:8,depb:50,debtime:2,derate:1,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:1,shield:0,speed:500,sonsk:0,
name: "潮汐",sp_name:"watert",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"}, name: "潮汐",sp_name:"watert",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"},
6027:{uuid: 6027,path: "6027",run:0,type:1, tg:3,with:false,debuff:8,depb:50,debtime:2,derate:1,in:3,count:1,apup:0,ap:5,hp:0,cd:1,shield:0,speed:500,sonsk:0, 6027:{uuid: 6027,path: "6027",run:0,type:1, tg:3,with:false,debuff:8,depb:50,debtime:2,derate:1,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:1,shield:0,speed:500,sonsk:0,
name: "战斗冲击",sp_name:"zhanz",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"}, name: "战斗冲击",sp_name:"zhanz",info:"释放烈火剑气攻击前方地方,对前方敌人造成3段伤害"},
6019:{uuid: 6019,path: "6019",run:0,type:1, tg:0,with:false,debuff:0,depb:50,debtime:2,derate:1,in:0.8,count:1,apup:0,ap:1,hp:0,cd:1,shield:0,speed:450, sonsk:0,
name: "狂暴",sp_name:"atkup",info:"释放一个寒冰箭攻击敌人"}, 6028:{uuid: 6028,path: "6028",run:0,type:1, tg:0,with:false,debuff:0,depb:50,debtime:2,derate:1,in:2,count:1,def:0,apup:0,ap:100,mhp:0,hp:10,cd:2,shield:2,speed:450, sonsk:0,
name: "自然庇佑",sp_name:"heath2",info:"5秒持续为全体友方恢复施法者最大生命值10%的生命,和施法者200%攻击力的护甲"},
} }
export const MSklist = [6001,6002] export const MSklist = [6001,6002]

View File

@@ -175,7 +175,7 @@ export const HeroInfo = {
5017: { 5017: {
uuid:5017,name: "德鲁伊",path:"d1",quality:3,kind:2,type:2,hp:2000,hp_up:10, shp_up:20,def:10,def_up:1,sdef_up:20,ap:20,ap_up:2,sap_up:20,atp:1,vun:0,crit:20,crit_add:0,ucr:0,dodge:0,dis:500,a_cd:1.5, uuid:5017,name: "德鲁伊",path:"d1",quality:3,kind:2,type:2,hp:2000,hp_up:10, shp_up:20,def:10,def_up:1,sdef_up:20,ap:20,ap_up:2,sap_up:20,atp:1,vun:0,crit:20,crit_add:0,ucr:0,dodge:0,dis:500,a_cd:1.5,
lvexp:100,slvexp:10,slv:0, speed: 50,aexp:5,uaexp:1,cexp:10,doexp:10,dexp:20,sk1:[6003,6003,6003,6003,6003,6003],sk2:[6018,6018,6018,6018,6018,6018],sk3:[6018,6018,6018,6018,6018,6018],pw:30,pwm:50,pws:10,apw:0,uapw:0,cpw:0,dpw:0,dopw:0, lvexp:100,slvexp:10,slv:0, speed: 50,aexp:5,uaexp:1,cexp:10,doexp:10,dexp:20,sk1:[6003,6003,6003,6003,6003,6003],sk2:[6028,6028,6028,6028,6028,6028],sk3:[6028,6028,6028,6028,6028,6028],pw:30,pwm:50,pws:10,apw:0,uapw:0,cpw:0,dpw:0,dopw:0,
akr:[10,20,30,40,50,60],akc:[1,1,1,1,1,1],uar:[10,20,30,40,50,60],uac:[1,1,1,1,1,1],dgr:[10,20,30,40,50,60],dgc:[1,1,1,1,1,1],crr:[10,20,30,40,50,60],crc:[1,1,1,1,1,1], akr:[10,20,30,40,50,60],akc:[1,1,1,1,1,1],uar:[10,20,30,40,50,60],uac:[1,1,1,1,1,1],dgr:[10,20,30,40,50,60],dgc:[1,1,1,1,1,1],crr:[10,20,30,40,50,60],crc:[1,1,1,1,1,1],
abh:0,abc:0,uabh:0,uabc:0,cbh:0,cbc:0,aua:0,auc:0,uaua:0,uauc:0,cua:0,cuc:0,wp:1001,arm:2001,ring:3001,shoes:4001, abh:0,abc:0,uabh:0,uabc:0,cbh:0,cbc:0,aua:0,auc:0,uaua:0,uauc:0,cua:0,cuc:0,wp:1001,arm:2001,ring:3001,shoes:4001,
tals:["这是一级说明","这是二级说明","这是三级说明","这是四级说明","这是五级说明"] tals:["这是一级说明","这是二级说明","这是三级说明","这是四级说明","这是五级说明"]

View File

@@ -318,15 +318,9 @@ export class HeroViewComp extends CCComp {
let l_hp=this.check_less(skill.ap,skill.is_crit,skill.crit_add) let l_hp=this.check_less(skill.ap,skill.is_crit,skill.crit_add)
this.check_debuff(skill,l_hp*skill.derate) this.check_debuff(skill,l_hp*skill.derate)
if(this.shield > 0){ if(this.shield > 0){
let l_shield=this.shield-l_hp this.shield -=1
if(l_shield < 0){
this.shield = 0
l_hp = Math.abs(l_shield)
}else{
this.shield = l_shield
l_hp = 0 l_hp = 0
} }
}
this.hp_less(l_hp,skill.is_crit); 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){
@@ -557,7 +551,7 @@ export class HeroViewComp extends CCComp {
let pos =this.node.position let pos =this.node.position
let is_crit=this.check_crit() let is_crit=this.check_crit()
this.to_console(this.scale+this.hero_name+"使用技能:"+sk+SkillSet[sk].name+" pos:"+pos+" t_pos:"+t_pos+" box:"+this.box_group,); this.to_console(this.scale+this.hero_name+"使用技能:"+sk+SkillSet[sk].name+" pos:"+pos+" t_pos:"+t_pos+" box:"+this.box_group,);
skill.load(pos,this.box_group,this.node,sk,this.ap_max,t_pos,is_crit,this.crit_add); skill.load(pos,this.box_group,this.node,sk,this.ap_max,t_pos,is_crit,this.crit_add,this.rhp_max);
} }
check_heros(){ check_heros(){
@@ -699,7 +693,7 @@ export class HeroViewComp extends CCComp {
let t_pos = pos let t_pos = pos
this.to_console("to_all_buff:"+sk) this.to_console("to_all_buff:"+sk)
let is_crit=this.check_crit() let is_crit=this.check_crit()
skill.load(pos,this.box_group,this.node,sk,this.ap_max,t_pos,is_crit,this.crit_add); skill.load(pos,this.box_group,this.node,sk,this.ap_max,t_pos,is_crit,this.crit_add,this.rhp_max);
this.to_console("使用buff:"+sk+" t_pos:"+t_pos+" box:"+this.box_group); this.to_console("使用buff:"+sk+" t_pos:"+t_pos+" box:"+this.box_group);
} }
@@ -709,7 +703,7 @@ export class HeroViewComp extends CCComp {
let pos = this.node.position let pos = this.node.position
this.to_console("do_add_buff:"+hero.hero_name+" "+sk); this.to_console("do_add_buff:"+hero.hero_name+" "+sk);
let is_crit=this.check_crit() let is_crit=this.check_crit()
skill.load(pos,this.box_group,this.node,sk,this.ap_max,t_pos,is_crit,this.crit_add); skill.load(pos,this.box_group,this.node,sk,this.ap_max,t_pos,is_crit,this.crit_add,this.rhp_max);
this.to_console(this.scale+this.hero_name+"使用buff:"+sk+SkillSet[sk].name+" t_pos:"+t_pos+" box:"+this.box_group,); this.to_console(this.scale+this.hero_name+"使用buff:"+sk+SkillSet[sk].name+" t_pos:"+t_pos+" box:"+this.box_group,);
} }
@@ -743,10 +737,15 @@ export class HeroViewComp extends CCComp {
} }
this.BUFFCOMP.tooltip(2,hp.toFixed(0)); this.BUFFCOMP.tooltip(2,hp.toFixed(0));
} }
add_hp_max(hp: number=0){ add_hp2(hprate: number=0){
this.BUFFCOMP.show_buff(0.5) this.hp += Math.floor(hprate/100*this.hp_max) ;
this.hp += Math.floor(hp/100*this.hp_max) ;
} }
add_hp_max(hprate: number=0){
this.BUFFCOMP.show_hp(0.5)
this.hp_max += Math.floor(hprate/100*this.rhp_max) ;
this.add_hp2(hprate)
}
hp_less(hp: number,is_crit:boolean=false){ hp_less(hp: number,is_crit:boolean=false){
if(this.is_dead) return if(this.is_dead) return
hp=Math.floor(hp) hp=Math.floor(hp)

View File

@@ -196,7 +196,7 @@ export class MissionComp extends CCComp {
if(smc.vmdata.mission.hp_up > 0 ){ if(smc.vmdata.mission.hp_up > 0 ){
let heros:any =ecs.query(ecs.allOf(HeroModelComp)); let heros:any =ecs.query(ecs.allOf(HeroModelComp));
for (let i = 0; i < heros.length; i++) { for (let i = 0; i < heros.length; i++) {
heros[i].HeroView.add_hp_max(smc.vmdata.mission.hp_up) heros[i].HeroView.add_hp2(smc.vmdata.mission.hp_up)
} }
} }

View File

@@ -8,22 +8,20 @@ const { ccclass, property } = _decorator;
export class BuffCom extends Component { export class BuffCom extends Component {
cd:number = 0; cd:number = 0;
base:SkillCom = null base:SkillCom = null
time:number = 0;
start() { start() {
this.base =this.node.getComponent(SkillCom) this.base =this.node.getComponent(SkillCom)
tween(this.node).to( this.base.in_time,
{ position: new Vec3(this.node.position.x,this.node.position.y) },
{
onComplete: (target?: object) => {
this.base.is_destroy=true
},
}
).start();
} }
update(deltaTime: number) { update(deltaTime: number) {
if(smc.mission.pause) return if(smc.mission.pause) return
this.cd+=deltaTime this.cd+=deltaTime
this.time+=deltaTime
if(this.time>=this.base.in_time){
this.base.is_destroy = true
}
if(this.cd>=this.base.cd){ if(this.cd>=this.base.cd){
if(this.base.is_destroy) return
// this.node.setPosition(v3(-1000,0,0)) // this.node.setPosition(v3(-1000,0,0))
this.node.active = false this.node.active = false
this.node.active = true this.node.active = true

View File

@@ -22,7 +22,7 @@ export class Skill extends ecs.Entity {
super.destroy(); super.destroy();
} }
load(pos: Vec3 = Vec3.ZERO,group:number,parent:Node,uuid:number=1001, load(pos: Vec3 = Vec3.ZERO,group:number,parent:Node,uuid:number=1001,
ap:number =10,t_pos:Vec3 = null,is_crit:boolean=false,crit_add:number=0) ap:number =10,t_pos:Vec3 = null,is_crit:boolean=false,crit_add:number=0,hp:number=0)
{ {
var path = "game/skills/"+SkillSet[uuid].sp_name; var path = "game/skills/"+SkillSet[uuid].sp_name;
var prefab: Prefab = oops.res.get(path, Prefab)!; var prefab: Prefab = oops.res.get(path, Prefab)!;
@@ -45,7 +45,11 @@ export class Skill extends ecs.Entity {
// console.log(group+" "+SkillSet[uuid].name+"angle:"+angle) // console.log(group+" "+SkillSet[uuid].name+"angle:"+angle)
sv.s_uuid = uuid; sv.s_uuid = uuid;
sv.s_name = SkillSet[uuid].name; sv.s_name = SkillSet[uuid].name;
sv.ap = ap*SkillSet[uuid].ap; sv.ap = ap*SkillSet[uuid].ap/100; // 技能伤害
sv.apup = ap*SkillSet[uuid].apup/100; // 伤害增量
sv.hp = hp*SkillSet[uuid].hp/100; // 回复hp增量
sv.mhp = SkillSet[uuid].mhp/100; // hpmax增量 %
sv.shield =SkillSet[uuid].shield; // 护甲增量
sv.cd = SkillSet[uuid].cd; sv.cd = SkillSet[uuid].cd;
sv.tg = SkillSet[uuid].tg; sv.tg = SkillSet[uuid].tg;
sv.debtime = SkillSet[uuid].debtime; sv.debtime = SkillSet[uuid].debtime;

View File

@@ -21,6 +21,10 @@ export class SkillCom extends CCComp {
speed:number = 200; speed:number = 200;
scale:number = 1; scale:number = 1;
ap:number = 10; ap:number = 10;
apup:number = 0;//
mhp:number = 0;
hp:number = 0; //治疗总量
shield:number = 0;//护甲总量
cd:number = 1; cd:number = 1;
debuff:number = 0; debuff:number = 0;
debtime:number = 0; debtime:number = 0;
@@ -72,20 +76,23 @@ export class SkillCom extends CCComp {
do_buff(hero:any){ do_buff(hero:any){
this.to_console(" do_buff hero: ",hero) this.to_console(" do_buff hero: ",hero)
if(SkillSet[this.s_uuid].hp > 0){ //buff加血 if(SkillSet[this.s_uuid].hp > 0){ //buff加血
let increase_hp=Math.floor(SkillSet[this.s_uuid].hp*this.ap/(this.in_time/this.cd)) let increase_hp=Math.floor(this.hp/(this.in_time/this.cd))
hero.add_hp(increase_hp) hero.add_hp(increase_hp)
} }
if(SkillSet[this.s_uuid].apup > 0){ //buff加攻击 if(SkillSet[this.s_uuid].apup > 0){ //buff加攻击
let increase_atk=Math.floor(SkillSet[this.s_uuid].apup*this.ap/(this.in_time/this.cd)) let increase_atk=Math.floor(this.apup/(this.in_time/this.cd))
hero.add_ap(increase_atk) hero.add_ap(increase_atk)
} }
if(SkillSet[this.s_uuid].shield > 0){ //buff护盾 if(SkillSet[this.s_uuid].shield > 0){ //buff护盾
console.log("do_buff shield: ",SkillSet[this.s_uuid].shield*this.ap/(this.in_time/this.cd)) console.log("do_buff shield: ",this.shield)
hero.add_shield(SkillSet[this.s_uuid].shield*this.ap/(this.in_time/this.cd)) hero.add_shield(this.shield)
}
if(SkillSet[this.s_uuid].mhp > 0){ //hp最大值
console.log("do_buff mhp: ",this.mhp/(this.in_time/this.cd))
hero.add_hp_max(this.mhp/(this.in_time/this.cd))
} }
} }
update(deltaTime: number) { update(deltaTime: number) {
if(smc.mission.pause) return if(smc.mission.pause) return