diff --git a/assets/resources/game/skills/anm/upap.anim b/assets/resources/game/skills/anm/upap.anim
new file mode 100644
index 00000000..5a6c5886
--- /dev/null
+++ b/assets/resources/game/skills/anm/upap.anim
@@ -0,0 +1,113 @@
+[
+ {
+ "__type__": "cc.AnimationClip",
+ "_name": "upap",
+ "_objFlags": 0,
+ "__editorExtras__": {
+ "embeddedPlayerGroups": []
+ },
+ "_native": "",
+ "sample": 16,
+ "speed": 1,
+ "wrapMode": 1,
+ "enableTrsBlending": false,
+ "_duration": 0.5,
+ "_hash": 500763545,
+ "_tracks": [
+ {
+ "__id__": 1
+ }
+ ],
+ "_exoticAnimation": null,
+ "_events": [],
+ "_embeddedPlayers": [],
+ "_additiveSettings": {
+ "__id__": 6
+ },
+ "_auxiliaryCurveEntries": []
+ },
+ {
+ "__type__": "cc.animation.ObjectTrack",
+ "_binding": {
+ "__type__": "cc.animation.TrackBinding",
+ "path": {
+ "__id__": 2
+ },
+ "proxy": null
+ },
+ "_channel": {
+ "__id__": 4
+ }
+ },
+ {
+ "__type__": "cc.animation.TrackPath",
+ "_paths": [
+ {
+ "__id__": 3
+ },
+ "spriteFrame"
+ ]
+ },
+ {
+ "__type__": "cc.animation.ComponentPath",
+ "component": "cc.Sprite"
+ },
+ {
+ "__type__": "cc.animation.Channel",
+ "_curve": {
+ "__id__": 5
+ }
+ },
+ {
+ "__type__": "cc.ObjectCurve",
+ "_times": [
+ 0,
+ 0.0625,
+ 0.125,
+ 0.1875,
+ 0.25,
+ 0.3125,
+ 0.375,
+ 0.4375
+ ],
+ "_values": [
+ {
+ "__uuid__": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@8e37d",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ {
+ "__uuid__": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@da44e",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ {
+ "__uuid__": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@117bf",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ {
+ "__uuid__": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@d62e6",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ {
+ "__uuid__": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@a4642",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ {
+ "__uuid__": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@06d24",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ {
+ "__uuid__": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@3b5ae",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ {
+ "__uuid__": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@5d894",
+ "__expectedType__": "cc.SpriteFrame"
+ }
+ ]
+ },
+ {
+ "__type__": "cc.AnimationClipAdditiveSettings",
+ "enabled": false,
+ "refClip": null
+ }
+]
\ No newline at end of file
diff --git a/assets/resources/game/skills/anm/upap.anim.meta b/assets/resources/game/skills/anm/upap.anim.meta
new file mode 100644
index 00000000..730cd2f9
--- /dev/null
+++ b/assets/resources/game/skills/anm/upap.anim.meta
@@ -0,0 +1,13 @@
+{
+ "ver": "2.0.3",
+ "importer": "animation-clip",
+ "imported": true,
+ "uuid": "eab345ff-1c0c-4541-b6ed-9980b43944e5",
+ "files": [
+ ".cconb"
+ ],
+ "subMetas": {},
+ "userData": {
+ "name": "upap"
+ }
+}
diff --git a/assets/resources/game/skills/anm/yun1.atlas b/assets/resources/game/skills/anm/yun1.atlas
new file mode 100644
index 00000000..1ea0253a
--- /dev/null
+++ b/assets/resources/game/skills/anm/yun1.atlas
@@ -0,0 +1,216 @@
+
+yun1.png
+size: 1290,89
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+BUFF/debuff/buff4_ (1)
+ rotate: false
+ xy: 1122, 47
+ size: 84, 40
+ orig: 154, 93
+ offset: 37, 23
+ index: -1
+BUFF/debuff/buff4_ (10)
+ rotate: false
+ xy: 525, 44
+ size: 85, 43
+ orig: 154, 93
+ offset: 36, 23
+ index: -1
+BUFF/debuff/buff4_ (11)
+ rotate: false
+ xy: 784, 44
+ size: 81, 43
+ orig: 154, 93
+ offset: 36, 23
+ index: -1
+BUFF/debuff/buff4_ (12)
+ rotate: false
+ xy: 1041, 45
+ size: 79, 42
+ orig: 154, 93
+ offset: 36, 23
+ index: -1
+BUFF/debuff/buff4_ (13)
+ rotate: false
+ xy: 612, 44
+ size: 84, 43
+ orig: 154, 93
+ offset: 36, 23
+ index: -1
+BUFF/debuff/buff4_ (14)
+ rotate: false
+ xy: 349, 43
+ size: 85, 44
+ orig: 154, 93
+ offset: 36, 23
+ index: -1
+BUFF/debuff/buff4_ (15)
+ rotate: false
+ xy: 2, 42
+ size: 87, 45
+ orig: 154, 93
+ offset: 34, 23
+ index: -1
+BUFF/debuff/buff4_ (16)
+ rotate: false
+ xy: 91, 42
+ size: 84, 45
+ orig: 154, 93
+ offset: 37, 23
+ index: -1
+BUFF/debuff/buff4_ (17)
+ rotate: false
+ xy: 177, 42
+ size: 84, 45
+ orig: 154, 93
+ offset: 37, 23
+ index: -1
+BUFF/debuff/buff4_ (18)
+ rotate: false
+ xy: 263, 42
+ size: 84, 45
+ orig: 154, 93
+ offset: 37, 23
+ index: -1
+BUFF/debuff/buff4_ (19)
+ rotate: false
+ xy: 698, 44
+ size: 84, 43
+ orig: 154, 93
+ offset: 37, 24
+ index: -1
+BUFF/debuff/buff4_ (2)
+ rotate: true
+ xy: 1248, 3
+ size: 84, 40
+ orig: 154, 93
+ offset: 37, 23
+ index: -1
+BUFF/debuff/buff4_ (20)
+ rotate: false
+ xy: 955, 45
+ size: 84, 42
+ orig: 154, 93
+ offset: 37, 25
+ index: -1
+BUFF/debuff/buff4_ (21)
+ rotate: false
+ xy: 607, 4
+ size: 84, 38
+ orig: 154, 93
+ offset: 36, 28
+ index: -1
+BUFF/debuff/buff4_ (22)
+ rotate: false
+ xy: 522, 3
+ size: 83, 39
+ orig: 154, 93
+ offset: 36, 25
+ index: -1
+BUFF/debuff/buff4_ (23)
+ rotate: false
+ xy: 2, 2
+ size: 81, 38
+ orig: 154, 93
+ offset: 33, 24
+ index: -1
+BUFF/debuff/buff4_ (24)
+ rotate: false
+ xy: 436, 3
+ size: 84, 39
+ orig: 154, 93
+ offset: 30, 23
+ index: -1
+BUFF/debuff/buff4_ (25)
+ rotate: false
+ xy: 1039, 4
+ size: 81, 39
+ orig: 154, 93
+ offset: 33, 23
+ index: -1
+BUFF/debuff/buff4_ (26)
+ rotate: false
+ xy: 249, 2
+ size: 79, 38
+ orig: 154, 93
+ offset: 36, 23
+ index: -1
+BUFF/debuff/buff4_ (27)
+ rotate: false
+ xy: 693, 4
+ size: 84, 38
+ orig: 154, 93
+ offset: 36, 23
+ index: -1
+BUFF/debuff/buff4_ (28)
+ rotate: true
+ xy: 1208, 2
+ size: 85, 38
+ orig: 154, 93
+ offset: 36, 23
+ index: -1
+BUFF/debuff/buff4_ (29)
+ rotate: false
+ xy: 349, 2
+ size: 84, 39
+ orig: 154, 93
+ offset: 37, 23
+ index: -1
+BUFF/debuff/buff4_ (3)
+ rotate: false
+ xy: 1122, 5
+ size: 84, 40
+ orig: 154, 93
+ offset: 37, 24
+ index: -1
+BUFF/debuff/buff4_ (30)
+ rotate: false
+ xy: 953, 3
+ size: 84, 40
+ orig: 154, 93
+ offset: 37, 23
+ index: -1
+BUFF/debuff/buff4_ (4)
+ rotate: false
+ xy: 867, 3
+ size: 84, 40
+ orig: 154, 93
+ offset: 37, 25
+ index: -1
+BUFF/debuff/buff4_ (5)
+ rotate: false
+ xy: 779, 4
+ size: 82, 38
+ orig: 154, 93
+ offset: 38, 28
+ index: -1
+BUFF/debuff/buff4_ (6)
+ rotate: false
+ xy: 85, 2
+ size: 80, 38
+ orig: 154, 93
+ offset: 39, 29
+ index: -1
+BUFF/debuff/buff4_ (7)
+ rotate: false
+ xy: 167, 2
+ size: 80, 38
+ orig: 154, 93
+ offset: 36, 29
+ index: -1
+BUFF/debuff/buff4_ (8)
+ rotate: false
+ xy: 867, 45
+ size: 86, 42
+ orig: 154, 93
+ offset: 36, 25
+ index: -1
+BUFF/debuff/buff4_ (9)
+ rotate: false
+ xy: 436, 44
+ size: 87, 43
+ orig: 154, 93
+ offset: 36, 24
+ index: -1
diff --git a/assets/resources/game/skills/anm/yun1.atlas.meta b/assets/resources/game/skills/anm/yun1.atlas.meta
new file mode 100644
index 00000000..1bbe0fc6
--- /dev/null
+++ b/assets/resources/game/skills/anm/yun1.atlas.meta
@@ -0,0 +1,12 @@
+{
+ "ver": "1.0.1",
+ "importer": "*",
+ "imported": true,
+ "uuid": "86228efb-7fef-4569-9a82-82d1b4bafad9",
+ "files": [
+ ".atlas",
+ ".json"
+ ],
+ "subMetas": {},
+ "userData": {}
+}
diff --git a/assets/resources/game/skills/anm/yun1.json b/assets/resources/game/skills/anm/yun1.json
new file mode 100644
index 00000000..753c7c4d
--- /dev/null
+++ b/assets/resources/game/skills/anm/yun1.json
@@ -0,0 +1,107 @@
+{
+"skeleton": {
+ "hash": "SmmzMkrAi/Nx9uWZ5QMwLnApexQ=",
+ "spine": "3.8.75",
+ "x": -61.86,
+ "y": -37.06,
+ "width": 123.2,
+ "height": 74.4,
+ "images": "./images/",
+ "audio": ""
+},
+"bones": [
+ { "name": "root", "x": -0.26, "y": -0.26 },
+ { "name": "bone", "parent": "root", "scaleX": 0.8, "scaleY": 0.8 }
+],
+"slots": [
+ { "name": "BUFF/debuff/buff4_ (1)", "bone": "bone", "attachment": "BUFF/debuff/buff4_ (1)" }
+],
+"skins": [
+ {
+ "name": "default",
+ "attachments": {
+ "BUFF/debuff/buff4_ (1)": {
+ "BUFF/debuff/buff4_ (1)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (2)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (3)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (4)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (5)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (6)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (7)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (8)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (9)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (10)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (11)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (12)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (13)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (14)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (15)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (16)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (17)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (18)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (19)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (20)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (21)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (22)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (23)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (24)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (25)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (26)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (27)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (28)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (29)": { "y": 0.5, "width": 154, "height": 93 },
+ "BUFF/debuff/buff4_ (30)": { "y": 0.5, "width": 154, "height": 93 }
+ }
+ }
+ }
+],
+"animations": {
+ "loop": {
+ "slots": {
+ "BUFF/debuff/buff4_ (1)": {
+ "attachment": [
+ { "time": 0.0333, "name": "BUFF/debuff/buff4_ (2)" },
+ { "time": 0.0667, "name": "BUFF/debuff/buff4_ (3)" },
+ { "time": 0.1, "name": "BUFF/debuff/buff4_ (4)" },
+ { "time": 0.1333, "name": "BUFF/debuff/buff4_ (5)" },
+ { "time": 0.1667, "name": "BUFF/debuff/buff4_ (6)" },
+ { "time": 0.2, "name": "BUFF/debuff/buff4_ (7)" },
+ { "time": 0.2333, "name": "BUFF/debuff/buff4_ (8)" },
+ { "time": 0.2667, "name": "BUFF/debuff/buff4_ (9)" },
+ { "time": 0.3, "name": "BUFF/debuff/buff4_ (10)" },
+ { "time": 0.3333, "name": "BUFF/debuff/buff4_ (11)" },
+ { "time": 0.3667, "name": "BUFF/debuff/buff4_ (12)" },
+ { "time": 0.4, "name": "BUFF/debuff/buff4_ (13)" },
+ { "time": 0.4333, "name": "BUFF/debuff/buff4_ (14)" },
+ { "time": 0.4667, "name": "BUFF/debuff/buff4_ (15)" },
+ { "time": 0.5, "name": "BUFF/debuff/buff4_ (16)" },
+ { "time": 0.5333, "name": "BUFF/debuff/buff4_ (17)" },
+ { "time": 0.5667, "name": "BUFF/debuff/buff4_ (18)" },
+ { "time": 0.6, "name": "BUFF/debuff/buff4_ (19)" },
+ { "time": 0.6333, "name": "BUFF/debuff/buff4_ (20)" },
+ { "time": 0.6667, "name": "BUFF/debuff/buff4_ (21)" },
+ { "time": 0.7, "name": "BUFF/debuff/buff4_ (22)" },
+ { "time": 0.7333, "name": "BUFF/debuff/buff4_ (23)" },
+ { "time": 0.7667, "name": "BUFF/debuff/buff4_ (24)" },
+ { "time": 0.8, "name": "BUFF/debuff/buff4_ (25)" },
+ { "time": 0.8333, "name": "BUFF/debuff/buff4_ (26)" },
+ { "time": 0.8667, "name": "BUFF/debuff/buff4_ (27)" },
+ { "time": 0.9, "name": "BUFF/debuff/buff4_ (28)" },
+ { "time": 0.9333, "name": "BUFF/debuff/buff4_ (29)" },
+ { "time": 0.9667, "name": "BUFF/debuff/buff4_ (30)" },
+ { "time": 1, "name": "BUFF/debuff/buff4_ (1)" }
+ ]
+ }
+ },
+ "bones": {
+ "bone": {
+ "rotate": [
+ { "angle": 6.36, "curve": 0.25, "c3": 0.75 },
+ { "time": 0.5, "angle": -4.73, "curve": 0.25, "c3": 0.75 },
+ { "time": 1, "angle": 6.36 }
+ ]
+ }
+ }
+ }
+}
+}
\ No newline at end of file
diff --git a/assets/resources/game/skills/anm/yun1.json.meta b/assets/resources/game/skills/anm/yun1.json.meta
new file mode 100644
index 00000000..de33acd0
--- /dev/null
+++ b/assets/resources/game/skills/anm/yun1.json.meta
@@ -0,0 +1,11 @@
+{
+ "ver": "1.2.6",
+ "importer": "spine-data",
+ "imported": true,
+ "uuid": "e4dbaff3-0471-428a-9dcf-eee8e1daf2ac",
+ "files": [
+ ".json"
+ ],
+ "subMetas": {},
+ "userData": {}
+}
diff --git a/assets/resources/game/skills/anm/yun1.png b/assets/resources/game/skills/anm/yun1.png
new file mode 100644
index 00000000..cb0af84a
Binary files /dev/null and b/assets/resources/game/skills/anm/yun1.png differ
diff --git a/assets/resources/game/skills/anm/yun1.png.meta b/assets/resources/game/skills/anm/yun1.png.meta
new file mode 100644
index 00000000..e8056725
--- /dev/null
+++ b/assets/resources/game/skills/anm/yun1.png.meta
@@ -0,0 +1,42 @@
+{
+ "ver": "1.0.26",
+ "importer": "image",
+ "imported": true,
+ "uuid": "d6f88dff-f880-464a-99e7-533240182ce2",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "d6f88dff-f880-464a-99e7-533240182ce2@6c48a",
+ "displayName": "yun1",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "repeat",
+ "wrapModeT": "repeat",
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0,
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "d6f88dff-f880-464a-99e7-533240182ce2",
+ "visible": false
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "hasAlpha": true,
+ "type": "texture",
+ "fixAlphaTransparencyArtifacts": false,
+ "redirect": "d6f88dff-f880-464a-99e7-533240182ce2@6c48a"
+ }
+}
diff --git a/assets/resources/game/skills/lvup.prefab b/assets/resources/game/skills/lvup.prefab
new file mode 100644
index 00000000..db62eaf3
--- /dev/null
+++ b/assets/resources/game/skills/lvup.prefab
@@ -0,0 +1,292 @@
+[
+ {
+ "__type__": "cc.Prefab",
+ "_name": "lvup",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_native": "",
+ "data": {
+ "__id__": 1
+ },
+ "optimizationPolicy": 0,
+ "persistent": false
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "lvup",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": null,
+ "_children": [
+ {
+ "__id__": 2
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 12
+ }
+ ],
+ "_prefab": {
+ "__id__": 14
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "anm",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 1
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 3
+ },
+ {
+ "__id__": 5
+ },
+ {
+ "__id__": 7
+ },
+ {
+ "__id__": 9
+ }
+ ],
+ "_prefab": {
+ "__id__": 11
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.3,
+ "y": 0.3,
+ "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__": 2
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 4
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 216,
+ "height": 242
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.4559106444245401,
+ "y": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "efXM7jZYFDhaaMfRXZDS5R"
+ },
+ {
+ "__type__": "cc.Animation",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 2
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 6
+ },
+ "playOnLoad": true,
+ "_clips": [
+ {
+ "__uuid__": "eab345ff-1c0c-4541-b6ed-9980b43944e5",
+ "__expectedType__": "cc.AnimationClip"
+ }
+ ],
+ "_defaultClip": {
+ "__uuid__": "eab345ff-1c0c-4541-b6ed-9980b43944e5",
+ "__expectedType__": "cc.AnimationClip"
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "29bZN3FrhBUKiIM8ij0okv"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 2
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 8
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@8e37d",
+ "__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": "02SsIDbmNFnLnUnIts7v7V"
+ },
+ {
+ "__type__": "0f3c4JhFbFO2rEFqBJJ7hFv",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 2
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 10
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "581+macF1DXIYcAm2fWl3Z"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "104XmOXdJEOY1f8nMgyyWG",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 1
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 13
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 187.1199951171875,
+ "height": 166.58999633789062
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.4559106444245401,
+ "y": 0.21982111613478442
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "89ju37xNVPJJOPezJpA7XB"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "65v9q/98dMjafRlb094Ctr",
+ "instance": null,
+ "targetOverrides": null
+ }
+]
\ No newline at end of file
diff --git a/assets/resources/game/skills/lvup.prefab.meta b/assets/resources/game/skills/lvup.prefab.meta
new file mode 100644
index 00000000..2fa00d81
--- /dev/null
+++ b/assets/resources/game/skills/lvup.prefab.meta
@@ -0,0 +1,13 @@
+{
+ "ver": "1.1.50",
+ "importer": "prefab",
+ "imported": true,
+ "uuid": "baa9374c-cb99-4c3a-bef3-f5c2212f46ff",
+ "files": [
+ ".json"
+ ],
+ "subMetas": {},
+ "userData": {
+ "syncNodeName": "lvup"
+ }
+}
diff --git a/assets/resources/game/skills/skillpng.meta b/assets/resources/game/skills/skillpng.meta
new file mode 100644
index 00000000..5cff6ec6
--- /dev/null
+++ b/assets/resources/game/skills/skillpng.meta
@@ -0,0 +1,9 @@
+{
+ "ver": "1.2.0",
+ "importer": "directory",
+ "imported": true,
+ "uuid": "c2a7f8af-df77-48fd-bd89-7c6103e8129b",
+ "files": [],
+ "subMetas": {},
+ "userData": {}
+}
diff --git a/assets/resources/game/skills/skillpng/lvup.plist b/assets/resources/game/skills/skillpng/lvup.plist
new file mode 100644
index 00000000..129e25cf
--- /dev/null
+++ b/assets/resources/game/skills/skillpng/lvup.plist
@@ -0,0 +1,146 @@
+
+
+
+
+ frames
+
+ appear_1.png
+
+ aliases
+
+ spriteOffset
+ {-3,-77}
+ spriteSize
+ {216,242}
+ spriteSourceSize
+ {238,396}
+ textureRect
+ {{241,239},{216,242}}
+ textureRotated
+
+
+ appear_2.png
+
+ aliases
+
+ spriteOffset
+ {-5,-84}
+ spriteSize
+ {216,228}
+ spriteSourceSize
+ {238,396}
+ textureRect
+ {{251,483},{216,228}}
+ textureRotated
+
+
+ appear_3.png
+
+ aliases
+
+ spriteOffset
+ {0,-74}
+ spriteSize
+ {220,248}
+ spriteSourceSize
+ {238,396}
+ textureRect
+ {{1,535},{220,248}}
+ textureRotated
+
+
+ appear_4.png
+
+ aliases
+
+ spriteOffset
+ {-1,-61}
+ spriteSize
+ {216,274}
+ spriteSourceSize
+ {238,396}
+ textureRect
+ {{1,1},{216,274}}
+ textureRotated
+
+
+ appear_5.png
+
+ aliases
+
+ spriteOffset
+ {0,-30}
+ spriteSize
+ {238,256}
+ spriteSourceSize
+ {238,396}
+ textureRect
+ {{1,277},{238,256}}
+ textureRotated
+
+
+ appear_6.png
+
+ aliases
+
+ spriteOffset
+ {0,53}
+ spriteSize
+ {236,246}
+ spriteSourceSize
+ {238,396}
+ textureRect
+ {{219,1},{236,246}}
+ textureRotated
+
+
+ appear_7.png
+
+ aliases
+
+ spriteOffset
+ {-4,73}
+ spriteSize
+ {170,250}
+ spriteSourceSize
+ {238,396}
+ textureRect
+ {{1,757},{170,250}}
+ textureRotated
+
+
+ appear_8.png
+
+ aliases
+
+ spriteOffset
+ {2,71}
+ spriteSize
+ {170,220}
+ spriteSourceSize
+ {238,396}
+ textureRect
+ {{253,713},{170,220}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ pixelFormat
+ RGBA8888
+ premultiplyAlpha
+
+ realTextureFileName
+ lvup.png
+ size
+ {468,934}
+ smartupdate
+ $TexturePacker:SmartUpdate:0537849cce3216765fc2e4b4401fdd68:3ce0ace710b7b97b04bc00e61f6a0a8a:0e8dcc798df29e11a842fe61af5d3009$
+ textureFileName
+ lvup.png
+
+
+
diff --git a/assets/resources/game/skills/skillpng/lvup.plist.meta b/assets/resources/game/skills/skillpng/lvup.plist.meta
new file mode 100644
index 00000000..a7c3b283
--- /dev/null
+++ b/assets/resources/game/skills/skillpng/lvup.plist.meta
@@ -0,0 +1,385 @@
+{
+ "ver": "1.0.8",
+ "importer": "sprite-atlas",
+ "imported": true,
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286",
+ "files": [
+ ".json"
+ ],
+ "subMetas": {
+ "8e37d": {
+ "importer": "sprite-frame",
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@8e37d",
+ "displayName": "",
+ "id": "8e37d",
+ "name": "appear_1",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": -3,
+ "offsetY": -77,
+ "trimX": 241,
+ "trimY": 239,
+ "width": 216,
+ "height": 242,
+ "rawWidth": 238,
+ "rawHeight": 396,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "266933cf-0ed2-497e-98af-49472013e126@6c48a",
+ "atlasUuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "da44e": {
+ "importer": "sprite-frame",
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@da44e",
+ "displayName": "",
+ "id": "da44e",
+ "name": "appear_2",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": -5,
+ "offsetY": -84,
+ "trimX": 251,
+ "trimY": 483,
+ "width": 216,
+ "height": 228,
+ "rawWidth": 238,
+ "rawHeight": 396,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "266933cf-0ed2-497e-98af-49472013e126@6c48a",
+ "atlasUuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "117bf": {
+ "importer": "sprite-frame",
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@117bf",
+ "displayName": "",
+ "id": "117bf",
+ "name": "appear_3",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": -74,
+ "trimX": 1,
+ "trimY": 535,
+ "width": 220,
+ "height": 248,
+ "rawWidth": 238,
+ "rawHeight": 396,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "266933cf-0ed2-497e-98af-49472013e126@6c48a",
+ "atlasUuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "d62e6": {
+ "importer": "sprite-frame",
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@d62e6",
+ "displayName": "",
+ "id": "d62e6",
+ "name": "appear_4",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": -1,
+ "offsetY": -61,
+ "trimX": 1,
+ "trimY": 1,
+ "width": 216,
+ "height": 274,
+ "rawWidth": 238,
+ "rawHeight": 396,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "266933cf-0ed2-497e-98af-49472013e126@6c48a",
+ "atlasUuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "a4642": {
+ "importer": "sprite-frame",
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@a4642",
+ "displayName": "",
+ "id": "a4642",
+ "name": "appear_5",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": -30,
+ "trimX": 1,
+ "trimY": 277,
+ "width": 238,
+ "height": 256,
+ "rawWidth": 238,
+ "rawHeight": 396,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "266933cf-0ed2-497e-98af-49472013e126@6c48a",
+ "atlasUuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "06d24": {
+ "importer": "sprite-frame",
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@06d24",
+ "displayName": "",
+ "id": "06d24",
+ "name": "appear_6",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": 0,
+ "offsetY": 53,
+ "trimX": 219,
+ "trimY": 1,
+ "width": 236,
+ "height": 246,
+ "rawWidth": 238,
+ "rawHeight": 396,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "266933cf-0ed2-497e-98af-49472013e126@6c48a",
+ "atlasUuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "3b5ae": {
+ "importer": "sprite-frame",
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@3b5ae",
+ "displayName": "",
+ "id": "3b5ae",
+ "name": "appear_7",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": -4,
+ "offsetY": 73,
+ "trimX": 1,
+ "trimY": 757,
+ "width": 170,
+ "height": 250,
+ "rawWidth": 238,
+ "rawHeight": 396,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "266933cf-0ed2-497e-98af-49472013e126@6c48a",
+ "atlasUuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "5d894": {
+ "importer": "sprite-frame",
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286@5d894",
+ "displayName": "",
+ "id": "5d894",
+ "name": "appear_8",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 2,
+ "offsetY": 71,
+ "trimX": 253,
+ "trimY": 713,
+ "width": 170,
+ "height": 220,
+ "rawWidth": 238,
+ "rawHeight": 396,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "266933cf-0ed2-497e-98af-49472013e126@6c48a",
+ "atlasUuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "atlasTextureName": "lvup.png",
+ "format": 3,
+ "uuid": "431dfc0e-1c05-4f41-a4d2-3d112efc6286",
+ "textureUuid": "266933cf-0ed2-497e-98af-49472013e126@6c48a"
+ }
+}
diff --git a/assets/resources/game/skills/skillpng/lvup.png b/assets/resources/game/skills/skillpng/lvup.png
new file mode 100644
index 00000000..84af1f1f
Binary files /dev/null and b/assets/resources/game/skills/skillpng/lvup.png differ
diff --git a/assets/resources/game/skills/skillpng/lvup.png.meta b/assets/resources/game/skills/skillpng/lvup.png.meta
new file mode 100644
index 00000000..61299ddc
--- /dev/null
+++ b/assets/resources/game/skills/skillpng/lvup.png.meta
@@ -0,0 +1,42 @@
+{
+ "ver": "1.0.26",
+ "importer": "image",
+ "imported": true,
+ "uuid": "266933cf-0ed2-497e-98af-49472013e126",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "266933cf-0ed2-497e-98af-49472013e126@6c48a",
+ "displayName": "lvup",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "repeat",
+ "wrapModeT": "repeat",
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0,
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "266933cf-0ed2-497e-98af-49472013e126",
+ "visible": false
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "hasAlpha": true,
+ "type": "texture",
+ "fixAlphaTransparencyArtifacts": false,
+ "redirect": "266933cf-0ed2-497e-98af-49472013e126@6c48a"
+ }
+}
diff --git a/assets/resources/game/skills/skillpng/spup.plist b/assets/resources/game/skills/skillpng/spup.plist
new file mode 100644
index 00000000..2756ed4d
--- /dev/null
+++ b/assets/resources/game/skills/skillpng/spup.plist
@@ -0,0 +1,131 @@
+
+
+
+
+ frames
+
+ appear_1.png
+
+ aliases
+
+ spriteOffset
+ {-14,-36}
+ spriteSize
+ {266,292}
+ spriteSourceSize
+ {304,364}
+ textureRect
+ {{285,1},{266,292}}
+ textureRotated
+
+
+ appear_2.png
+
+ aliases
+
+ spriteOffset
+ {-11,-43}
+ spriteSize
+ {282,272}
+ spriteSourceSize
+ {304,364}
+ textureRect
+ {{1,1},{282,272}}
+ textureRotated
+
+
+ appear_3.png
+
+ aliases
+
+ spriteOffset
+ {0,-40}
+ spriteSize
+ {304,258}
+ spriteSourceSize
+ {304,364}
+ textureRect
+ {{579,1},{304,258}}
+ textureRotated
+
+
+ appear_4.png
+
+ aliases
+
+ spriteOffset
+ {-9,7}
+ spriteSize
+ {276,254}
+ spriteSourceSize
+ {304,364}
+ textureRect
+ {{885,1},{276,254}}
+ textureRotated
+
+
+ appear_5.png
+
+ aliases
+
+ spriteOffset
+ {-7,64}
+ spriteSize
+ {162,172}
+ spriteSourceSize
+ {304,364}
+ textureRect
+ {{1163,1},{162,172}}
+ textureRotated
+
+
+ appear_6.png
+
+ aliases
+
+ spriteOffset
+ {-14,113}
+ spriteSize
+ {126,138}
+ spriteSourceSize
+ {304,364}
+ textureRect
+ {{1327,1},{126,138}}
+ textureRotated
+
+
+ appear_7.png
+
+ aliases
+
+ spriteOffset
+ {-11,133}
+ spriteSize
+ {156,92}
+ spriteSourceSize
+ {304,364}
+ textureRect
+ {{1163,175},{156,92}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ pixelFormat
+ RGBA8888
+ premultiplyAlpha
+
+ realTextureFileName
+ spup.png
+ size
+ {1454,274}
+ smartupdate
+ $TexturePacker:SmartUpdate:85dd2f704b3181f56f238539d3b8df3d:b248eeda81a9342863e262d7159c4b0f:979c8c78f38aa43b75294b59fa5a3d38$
+ textureFileName
+ spup.png
+
+
+
diff --git a/assets/resources/game/skills/skillpng/spup.plist.meta b/assets/resources/game/skills/skillpng/spup.plist.meta
new file mode 100644
index 00000000..7a6fd6fa
--- /dev/null
+++ b/assets/resources/game/skills/skillpng/spup.plist.meta
@@ -0,0 +1,339 @@
+{
+ "ver": "1.0.8",
+ "importer": "sprite-atlas",
+ "imported": true,
+ "uuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2",
+ "files": [
+ ".json"
+ ],
+ "subMetas": {
+ "8e37d": {
+ "importer": "sprite-frame",
+ "uuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2@8e37d",
+ "displayName": "",
+ "id": "8e37d",
+ "name": "appear_1",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": true,
+ "offsetX": -14,
+ "offsetY": -36,
+ "trimX": 285,
+ "trimY": 1,
+ "width": 266,
+ "height": 292,
+ "rawWidth": 304,
+ "rawHeight": 364,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a",
+ "atlasUuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "da44e": {
+ "importer": "sprite-frame",
+ "uuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2@da44e",
+ "displayName": "",
+ "id": "da44e",
+ "name": "appear_2",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": -11,
+ "offsetY": -43,
+ "trimX": 1,
+ "trimY": 1,
+ "width": 282,
+ "height": 272,
+ "rawWidth": 304,
+ "rawHeight": 364,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a",
+ "atlasUuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "117bf": {
+ "importer": "sprite-frame",
+ "uuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2@117bf",
+ "displayName": "",
+ "id": "117bf",
+ "name": "appear_3",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": -40,
+ "trimX": 579,
+ "trimY": 1,
+ "width": 304,
+ "height": 258,
+ "rawWidth": 304,
+ "rawHeight": 364,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a",
+ "atlasUuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "d62e6": {
+ "importer": "sprite-frame",
+ "uuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2@d62e6",
+ "displayName": "",
+ "id": "d62e6",
+ "name": "appear_4",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": -9,
+ "offsetY": 7,
+ "trimX": 885,
+ "trimY": 1,
+ "width": 276,
+ "height": 254,
+ "rawWidth": 304,
+ "rawHeight": 364,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a",
+ "atlasUuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "a4642": {
+ "importer": "sprite-frame",
+ "uuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2@a4642",
+ "displayName": "",
+ "id": "a4642",
+ "name": "appear_5",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": -7,
+ "offsetY": 64,
+ "trimX": 1163,
+ "trimY": 1,
+ "width": 162,
+ "height": 172,
+ "rawWidth": 304,
+ "rawHeight": 364,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a",
+ "atlasUuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "06d24": {
+ "importer": "sprite-frame",
+ "uuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2@06d24",
+ "displayName": "",
+ "id": "06d24",
+ "name": "appear_6",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": -14,
+ "offsetY": 113,
+ "trimX": 1327,
+ "trimY": 1,
+ "width": 126,
+ "height": 138,
+ "rawWidth": 304,
+ "rawHeight": 364,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a",
+ "atlasUuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "3b5ae": {
+ "importer": "sprite-frame",
+ "uuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2@3b5ae",
+ "displayName": "",
+ "id": "3b5ae",
+ "name": "appear_7",
+ "userData": {
+ "trimType": "auto",
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": -11,
+ "offsetY": 133,
+ "trimX": 1163,
+ "trimY": 175,
+ "width": 156,
+ "height": 92,
+ "rawWidth": 304,
+ "rawHeight": 364,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [],
+ "indexes": [],
+ "uv": [],
+ "nuv": [],
+ "minPos": [],
+ "maxPos": []
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a",
+ "atlasUuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "atlasTextureName": "spup.png",
+ "format": 3,
+ "uuid": "99cf69af-f266-4781-af4b-e18de7a8c8a2",
+ "textureUuid": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a"
+ }
+}
diff --git a/assets/resources/game/skills/skillpng/spup.png b/assets/resources/game/skills/skillpng/spup.png
new file mode 100644
index 00000000..5abd289a
Binary files /dev/null and b/assets/resources/game/skills/skillpng/spup.png differ
diff --git a/assets/resources/game/skills/skillpng/spup.png.meta b/assets/resources/game/skills/skillpng/spup.png.meta
new file mode 100644
index 00000000..7c5797bc
--- /dev/null
+++ b/assets/resources/game/skills/skillpng/spup.png.meta
@@ -0,0 +1,42 @@
+{
+ "ver": "1.0.26",
+ "importer": "image",
+ "imported": true,
+ "uuid": "c53c26db-4847-4d14-887b-da9e1b2e748a",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a",
+ "displayName": "spup",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "repeat",
+ "wrapModeT": "repeat",
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0,
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c53c26db-4847-4d14-887b-da9e1b2e748a",
+ "visible": false
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "hasAlpha": true,
+ "type": "texture",
+ "fixAlphaTransparencyArtifacts": false,
+ "redirect": "c53c26db-4847-4d14-887b-da9e1b2e748a@6c48a"
+ }
+}
diff --git a/assets/resources/game/skills/yun.prefab b/assets/resources/game/skills/yun.prefab
index 32e5213c..4f02dc23 100644
--- a/assets/resources/game/skills/yun.prefab
+++ b/assets/resources/game/skills/yun.prefab
@@ -87,7 +87,7 @@
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
- "y": 37,
+ "y": 60,
"z": 0
},
"_lrot": {
@@ -127,13 +127,13 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 94,
- "height": 41
+ "width": 123.19999694824219,
+ "height": 74.4000015258789
},
"_anchorPoint": {
"__type__": "cc.Vec2",
- "x": 0.526595744680851,
- "y": 0.3748780459892459
+ "x": 0.502110407002199,
+ "y": 0.4981182878121348
},
"_id": ""
},
@@ -164,11 +164,11 @@
"a": 255
},
"_skeletonData": {
- "__uuid__": "28113c7e-6617-40cf-85ad-560b3ba8fe77",
+ "__uuid__": "e4dbaff3-0471-428a-9dcf-eee8e1daf2ac",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
- "defaultAnimation": "show",
+ "defaultAnimation": "loop",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
diff --git a/assets/resources/gui/role_controller.prefab b/assets/resources/gui/role_controller.prefab
index d281fc18..eca92a74 100644
--- a/assets/resources/gui/role_controller.prefab
+++ b/assets/resources/gui/role_controller.prefab
@@ -1022,7 +1022,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 245,
- "height": 35
+ "height": 25
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1108,7 +1108,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 245,
- "height": 40
+ "height": 35
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -17489,7 +17489,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 245,
- "height": 35
+ "height": 25
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -17575,7 +17575,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 245,
- "height": 40
+ "height": 35
},
"_anchorPoint": {
"__type__": "cc.Vec2",
diff --git a/assets/script/game/common/config/CardSet.ts b/assets/script/game/common/config/CardSet.ts
index 0553a038..102fc86a 100644
--- a/assets/script/game/common/config/CardSet.ts
+++ b/assets/script/game/common/config/CardSet.ts
@@ -150,15 +150,15 @@ export const SuperCards={
info:"攻击触发提高英雄/伙伴属性的效果,额外添加+1攻击力"},
3002:{uuid:3002,name:"附魔宝典",quality:Quality.WHITE,path:"3002",type:SuperCardsType.SPECIAL,value1:1,value2:0,value3:0,
info:"攻击触发高英雄/伙伴属性的效果,额外添加+1生命值"},
- 3101:{uuid:3101,name:"陨石术",quality:Quality.GREEN,path:"3101",type:SuperCardsType.AOE,value1:SkillSet[6019].uuid,value2:3,value3:0,
+ 3101:{uuid:3101,name:"陨石术",quality:Quality.GREEN,path:"3101",type:SuperCardsType.AOE,value1:SkillSet[6019].uuid,value2:10,value3:0,
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
- 3102:{uuid:3102,name:"冰刺",quality:Quality.BLUE,path:"3102",type:SuperCardsType.AOE,value1:SkillSet[6017].uuid,value2:3,value3:0,
+ 3102:{uuid:3102,name:"冰刺",quality:Quality.BLUE,path:"3102",type:SuperCardsType.AOE,value1:SkillSet[6017].uuid,value2:10,value3:0,
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
- 3103:{uuid:3103,name:"潮汐",quality:Quality.BLUE,path:"3103",type:SuperCardsType.AOE,value1:SkillSet[6018].uuid,value2:3,value3:0,
+ 3103:{uuid:3103,name:"潮汐",quality:Quality.BLUE,path:"3103",type:SuperCardsType.AOE,value1:SkillSet[6018].uuid,value2:10,value3:0,
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
- 3104:{uuid:3104,name:"龙卷风",quality:Quality.BLUE,path:"3104",type:SuperCardsType.AOE,value1:SkillSet[6013].uuid,value2:3,value3:0,
+ 3104:{uuid:3104,name:"龙卷风",quality:Quality.BLUE,path:"3104",type:SuperCardsType.AOE,value1:SkillSet[6013].uuid,value2:10,value3:0,
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
- 3105:{uuid:3105,name:"火球风暴",quality:Quality.PURPLE,path:"3105",type:SuperCardsType.AOE,value1:SkillSet[6012].uuid,value2:3,value3:0,
+ 3105:{uuid:3105,name:"火球风暴",quality:Quality.PURPLE,path:"3105",type:SuperCardsType.AOE,value1:SkillSet[6012].uuid,value2:10,value3:0,
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
3106:{uuid:3106,name:"冰雨",quality:Quality.PURPLE,path:"3106",type:SuperCardsType.AOE,value1:SkillSet[6020].uuid,value2:3,value3:0,
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
diff --git a/assets/script/game/common/config/Equips.ts b/assets/script/game/common/config/Equips.ts
index 9eaac169..92dc0bb4 100644
--- a/assets/script/game/common/config/Equips.ts
+++ b/assets/script/game/common/config/Equips.ts
@@ -1,5 +1,5 @@
import { app } from "electron";
-import { BuffAttr, DebuffAttr } from "./SkillSet";
+import { BuffAttr } from "./SkillSet";
// 装备类型
export enum EquipType {
@@ -21,9 +21,9 @@ export enum SkillTarget {
WATER = 2,
EARTH = 3,
WIND = 4,
- LIGHT = 5,
- DARK = 6,
- }
+ LIGHT = 5,
+ DARK = 6,
+}
//特殊属性
export enum EquipSpecialAttr {
ICE=1, //普通技能变冰系冰冻
@@ -36,7 +36,7 @@ export enum EquipSpecialAttr {
ATK_ADD_MASTER_ATK=8, //主将攻击力增加
ATK_ADD_MASTER_HP=9, //主将生命值增加
DOUBLE_DEAD=10, //双倍死亡触发
- DOUBLE_ATKED=11, //双倍受击触发
+ DOUBLE_ATKED=11, //双倍受击触发\
}
export enum Quality {
WHITE = 1,
@@ -56,15 +56,11 @@ export interface EquipAttribute {
value: number; // 属性值
target?: EquipAttrTarget; // 属性作用目标(可选)
}
+
export interface EquipSpecialAttrData {
special_attr: EquipSpecialAttr; // 特殊属性
special_attr_value: number; // 特殊属性值
}
-export interface EquipDebuffAttribute {
- type: DebuffAttr; // 属性类型
- value: number; // 属性值
- target?: EquipAttrTarget; // 属性作用目标(可选)
-}
// 装备基础接口
export interface EquipData {
diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts
index 33bc4193..10a7aa0c 100644
--- a/assets/script/game/common/config/SkillSet.ts
+++ b/assets/script/game/common/config/SkillSet.ts
@@ -92,6 +92,8 @@ export enum BuffAttr {
DODGE_NO = 13, //闪避免疫
DEBUFF_COUNT = 14, //debuff次数
DEBUFF_VALUE = 15, //debuff效果
+ DEBUFF_UP = 16, //debuff概率提升
+ DEBUFF_DOWN = 17, //被debuff概率降低
}
export const geDebuffNum=()=>{
@@ -128,6 +130,8 @@ export const getBuffNum=()=>{
DODGE_NO:0, //闪避免疫
DEBUFF_COUNT:0, //debuff次数
DEBUFF_VALUE:0, //debuff效果
+ DEBUFF_UP:0, //debuff概率提升
+ DEBUFF_DOWN:0, //被debuff概率降低
}
}
@@ -144,7 +148,7 @@ path: 图片地址
depb:触发比率
debtime :持续时间
derate:伤害比率
-deV:0,deC:0,in:持续时间
+deV:0,deC:0,deR:100,in:持续时间
count:触发次数
def:增加防御比例
apup:增加攻击比例
@@ -158,92 +162,92 @@ speed:移动速度
sonsk:子技能id
hero:召唤物英雄id
info:技能描述
-
+debuff 按次数进行结算,在多次生效内,有一定的叠加,debuff.deC为次数,debuff.deV为效果
*/
export const HeroSkillList = [6001,6001,6001,6001,6001,6001]
export const SkillSet = {
6001:{uuid:6001,name:"凛冬之触",sp_name:"greenball",path:"6001",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"},
+ debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"},
6002:{uuid:6002,name:"穿心箭矢",sp_name:"arrow",path:"6006",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"},
+ debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"},
6003:{uuid:6003,name:"神圣护盾",sp_name:"shield",path:"6018",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Self,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.animationEnd,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:30,speed:720,sonsk:0,hero:0,info:"召唤圣盾保护自己,可以抵御3次攻击"},
+ debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:30,speed:720,sonsk:0,hero:0,info:"召唤圣盾保护自己,可以抵御3次攻击"},
6004:{uuid:6004,name:"自愈", sp_name:"heath_small",path:"6032",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Self,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.animationEnd,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:2,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"主动:自己回复自身5%最大生命值的生命"},
+ debuff:0,deV:0,deC:0,deR:100,in:2,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"主动:自己回复自身5%最大生命值的生命"},
6007:{uuid:6007,name:"铁斧打击",sp_name:"mon_ft",path:"6007",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"},
+ debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"},
6008:{uuid:6008,name:"木棍打击",sp_name:"mon_ly",path:"6008",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"},
+ debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"},
6009:{uuid:6009,name:"飞刀打击",sp_name:"mon_xd",path:"6009",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"},
+ debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"},
6010:{uuid:6010,name:"石斧打击",sp_name:"mon_sf",path:"6010",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"},
+ debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"},
6012:{uuid:6012,name:"大火球" ,sp_name:"fire",path:"6012",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"atk",CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:DebuffAttr.BURN,deV:20,deC:1,in:1,ap:100,cd:5,hit:2,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"},
+ debuff:DebuffAttr.STUN,deV:20,deC:1,deR:100,in:1,ap:100,cd:5,hit:2,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"},
6013:{uuid:6013,name:"龙卷风", sp_name:"bwind",path:"6016",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"max",CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:DebuffAttr.BACK,deV:0,deC:0,in:3,ap:100,cd:5,hit:1,hited:1,shield:0,speed:360,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"},
+ debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:3,ap:100,cd:5,hit:1,hited:1,shield:0,speed:360,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"},
6014:{uuid:6014,name:"寒冰箭", sp_name:"arrow_blue",path:"6014",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"atk",CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:DebuffAttr.FROST,deV:1,deC:0,in:1,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
+ debuff:DebuffAttr.FROST,deV:1,deC:0,deR:100,in:1,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
6015:{uuid:6015,name:"烈焰射击",sp_name:"arrow_yellow",path:"6015",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"atk",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
- debuff:DebuffAttr.STUN,deV:0,deC:0,in:1,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"},
+ debuff:DebuffAttr.STUN,deV:0,deC:0,deR:100,in:1,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"},
6016:{uuid:6016,name:"火墙", sp_name:"firewall",path:"6013",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:10,ap:50,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"},
+ debuff:0,deV:0,deC:0,deR:100,in:10,ap:50,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"},
6017:{uuid:6017,name:"冰刺",sp_name:"icez",path:"6022",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
- debuff:DebuffAttr.FROST,deV:0,deC:0,in:1,ap:300,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
+ debuff:DebuffAttr.FROST,deV:0,deC:0,deR:100,in:1,ap:300,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
6018:{uuid:6018,name:"潮汐", sp_name:"watert",path:"6026",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
- debuff:DebuffAttr.BACK,deV:0,deC:0,in:3,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"},
+ debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:3,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"},
6019:{uuid:6019,name:"陨石术", sp_name:"fireys",path:"6029",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:3,ap:500,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"},
+ debuff:0,deV:0,deC:0,deR:100,in:3,ap:500,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"},
6020:{uuid:6020,name:"冰暴",sp_name:"bingyu",path:"6034",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90,
- debuff:4,deV:0,deC:0,in:4,ap:80,cd:5,hit:1,hited:1,shield:0,speed:720,sonsk:0,hero:0,info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"},
+ debuff:4,deV:0,deC:0,deR:100,in:4,ap:80,cd:5,hit:1,hited:1,shield:0,speed:720,sonsk:0,hero:0,info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"},
6021:{uuid:6021,name:"烈火呼吸",sp_name:"firequan",path:"6011",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.timeEnd,fname:"max",flash:false,with:90,
- debuff:0,deV:0,deC:0,in:3,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
+ debuff:0,deV:0,deC:0,deR:100,in:3,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
6023:{uuid:6023,name:"冰墙", sp_name:"icet",path:"6023",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.animationEnd,fname:"max",flash:false,with:90,
- debuff:DebuffAttr.BACK,deV:0,deC:0,in:1,ap:400,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"},
+ debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:1,ap:400,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"},
6025:{uuid:6025,name:"火焰漩涡",sp_name:"fireball",path:"6025",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Enemy,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.timeEnd,fname:"max",flash:false,with:90,
- debuff:DebuffAttr.BACK,deV:0,deC:0,in:3,ap:500,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"},
+ debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:3,ap:500,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"},
6031:{uuid:6031,name:"召唤仆从",sp_name:"zhaohuan",path:"6031",quality:Quality.WHITE, TType:TType.Frontline,
TGroup:TGroup.Self,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.animationEnd,fname:"max_blue",flash:true,with:90,
- debuff:0,deV:0,deC:0,in:2,ap:70,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:5211,info:"召唤一个与施法者等级相同的骷髅战士为我方而战"},
+ debuff:0,deV:0,deC:0,deR:100,in:2,ap:70,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:5211,info:"召唤一个与施法者等级相同的骷髅战士为我方而战"},
diff --git a/assets/script/game/hero/BuffComp.ts b/assets/script/game/hero/BuffComp.ts
index f7fc77c2..961aa6db 100644
--- a/assets/script/game/hero/BuffComp.ts
+++ b/assets/script/game/hero/BuffComp.ts
@@ -162,6 +162,12 @@ export class BuffComp extends Component {
node.parent = this.node;
}
+ lv_up(){
+ var path = "game/skills/lvup";
+ var prefab: Prefab = oops.res.get(path, Prefab)!;
+ var node = instantiate(prefab);
+ node.parent = this.node;
+ }
show_do_buff(name:string){
var path = "game/skills/"+name;
var prefab: Prefab = oops.res.get(path, Prefab)!;
@@ -187,6 +193,7 @@ export class BuffComp extends Component {
node.parent = this.node;
}
in_iced(t:number=1,ap:number=0) {
+ console.log("[buffcomp]:in_iced",this.HeroView.hero_name,t,ap)
var path = "game/skills/iced";
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
diff --git a/assets/script/game/hero/HeroViewComp.ts b/assets/script/game/hero/HeroViewComp.ts
index 320662ad..48c4eba9 100644
--- a/assets/script/game/hero/HeroViewComp.ts
+++ b/assets/script/game/hero/HeroViewComp.ts
@@ -15,6 +15,7 @@ import { FightSet } from "../common/config/Mission";
import { getApIncrease, getHpIncrease, getUpExp, HeroPos } from "../common/config/heroSet";
import { FriendModelComp } from "./FriendModel";
import { MasterModelComp } from "./MasterModel";
+import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
const { ccclass, property } = _decorator;
@@ -84,15 +85,17 @@ export class HeroViewComp extends CCComp {
double_dead:boolean=false
double_atked:boolean=false
- BUFF_DEFS: Array<{value: number, count: number}> = []
- BUFF_ATKS: Array<{value: number, count: number}> = []
- BUFF_CDS: Array<{value: number, count: number}> = []
- DEBUFF_BURNS: Array<{value: number, count: number}> = []
- DEBUFF_DEATKS: Array<{value: number, count: number}> = []
- DEBUFF_DECDS: Array<{value: number, count: number}> = []
- DEBUFF_SLOW: number = 0;
- DEBUFF_FROST: number = 0;
- DEBUFF_STUN: number = 0;
+ BUFF_DEFS: Array<{value: number, count: number}> = [] //防御提升
+ BUFF_ATKS: Array<{value: number, count: number}> = [] //攻击提升
+ BUFF_CDS: Array<{value: number, count: number}> = [] //攻击加速
+ BUFF_DEDOWN:Array<{value: number, count: number}> = [] //debuff 概率降低
+
+ DEBUFF_BURNS: Array<{value: number, count: number}> = [] //易伤
+ DEBUFF_DEATKS: Array<{value: number, count: number}> = [] //减攻击
+ DEBUFF_DECDS: Array<{value: number, count: number}> = [] //减攻击速度
+ DEBUFF_SLOW: number = 0; //减速
+ DEBUFF_FROST: number = 0; //冰冻
+ DEBUFF_STUN: number = 0; //眩晕
private damageQueue: Array<{
damage: number,
@@ -336,8 +339,37 @@ export class HeroViewComp extends CCComp {
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
}
}
+ get_buff(){
+ let buff=null
+ if(this.is_master) buff=this.FIGHTCON.hero_buff
+ if(this.is_friend) buff=this.FIGHTCON.friend_buff
+ if(this.is_boss) buff=this.FIGHTCON.enemy_buff
+ if(this.is_kalami) buff=this.FIGHTCON.enemy_buff
+ if(buff==null) return
+ return buff
+ }
+ get_debuff(){
+
+ }
+ add_debuff(type:number,deV:number,deC:number,deR:number){
+ let DEBUFF_DOWN=0
+ let buff_debuff_down=0
+ let buff=this.get_buff()
+ if(buff!==null) buff_debuff_down=buff.DEBUFF_DOWN
+ for(let i=0;i n_deR) {
+ this.BUFFCOMP.tooltip(5,"*抵抗*")
+ return
+ }
- add_debuff(type:number,deV:number,deC:number,){
switch(type){
case DebuffAttr.BURN:
this.DEBUFF_BURNS.push({value:deV,count:deC})
@@ -382,11 +414,21 @@ export class HeroViewComp extends CCComp {
break
}
}
+
add_buff(buff:number,count:number,type:number){
switch(type){
case BuffAttr.DEF:
this.BUFF_DEFS.push({value:buff,count:count})
break
+ case BuffAttr.ATK:
+ this.BUFF_ATKS.push({value:buff,count:count})
+ break
+ case BuffAttr.ATK_CD:
+ this.BUFF_CDS.push({value:buff,count:count})
+ break
+ case BuffAttr.DEBUFF_DOWN:
+ this.BUFF_DEDOWN.push({value:buff,count:count})
+ break
}
}
@@ -439,13 +481,12 @@ export class HeroViewComp extends CCComp {
this.BUFF_DEFS.splice(i,1)
}
}
- let buff=null
- if(this.is_master) buff=this.FIGHTCON.hero_buff
- if(this.is_friend) buff=this.FIGHTCON.friend_buff
- if(this.is_boss) buff=this.FIGHTCON.enemy_buff
- if(this.is_kalami) buff=this.FIGHTCON.enemy_buff
- if(buff==null) return
- damage=remainingDamage*(100-(buff.DEF+def)+Burn)/100
+ // buff 防御 即免伤
+ let buff_def=0
+ let buff=this.get_buff()
+ if(buff!==null) buff_def=buff.DEF
+
+ damage=remainingDamage*(100-(buff_def+def)+Burn)/100
return Math.floor(damage)
}
@@ -591,6 +632,7 @@ export class HeroViewComp extends CCComp {
this.next_exp=getUpExp(this.lv)
console.log("[HeroViewComp]:up ap,hp",getApIncrease(this.hero_uuid,this.lv,this.lv+1),getHpIncrease(this.hero_uuid,this.lv,this.lv+1))
this.BUFFCOMP.vmdata_update()
+ this.BUFFCOMP.lv_up()
//@todo 需要添加 升级动画
}
/** 显示伤害数字 */
diff --git a/assets/script/game/map/FightConComp.ts b/assets/script/game/map/FightConComp.ts
index 35ba5c2f..dcd0a186 100644
--- a/assets/script/game/map/FightConComp.ts
+++ b/assets/script/game/map/FightConComp.ts
@@ -14,7 +14,7 @@ const { ccclass, property } = _decorator;
@ccclass('FightConComp')
export class FightConComp extends Component {
- //装备 及 光环效果 物品存在生效
+ //装备 及 光环效果 物品存在生效 enemy_buff 是针对 怪物的debuff 偶尔也有buff 需要注意
hero_buff=getBuffNum()
friend_buff=getBuffNum()
enemy_buff=getBuffNum()
@@ -36,8 +36,9 @@ export class FightConComp extends Component {
aoe_queues:any[]=[] // 范围伤害技能执行队列
- private aoe_timer: number = 0; // 技能执行计时器
+ private aoe_timers: Map = new Map(); // 每个技能的独立计时器
private readonly AOE_INTERVAL: number = 0.4; // 执行间隔,单位秒
+ private skill_id_counter: number = 0; // 技能ID计数器
aoe_pos:Vec3=new Vec3(-280,20,0)
aoe_target_pos:Vec3=new Vec3(180,0,0)
@@ -119,10 +120,14 @@ export class FightConComp extends Component {
}
break
case SuperCardsType.AOE:
+ this.skill_id_counter++;
this.aoe_queues.push({
+ id: this.skill_id_counter,
s_uuid:SuperCards[data.uuid].value1,
count:SuperCards[data.uuid].value2,
damage:SuperCards[data.uuid].value3})
+ // 初始化该技能的计时器
+ this.aoe_timers.set(this.skill_id_counter, 0);
break
case SuperCardsType.BUFF:
@@ -169,6 +174,7 @@ export class FightConComp extends Component {
);
}
+
/** 随机选择目标 */
private pickRandomTarget(count: number=1): ecs.Entity[] {
let entities = ecs.query(ecs.allOf(MonModelComp))
@@ -191,20 +197,37 @@ export class FightConComp extends Component {
this.card_atk_add=0
this.card_hp_add=0
this.aoe_queues = [] // 清空技能队列
- this.aoe_timer = 0 // 重置计时器
+ this.aoe_timers = new Map(); // 重置计时器
+ this.skill_id_counter = 0; // 重置技能ID计数器
}
update(deltaTime: number) {
- // 更新技能执行计时器
+ // 并行执行多个技能
if (this.aoe_queues.length > 0) {
- this.aoe_timer += deltaTime;
- if (this.aoe_timer >= this.AOE_INTERVAL) {
- this.aoe_timer = 0;
- let skill = this.aoe_queues[0];
- this.aoe_skill_execute(skill);
- skill.count--;
- if (skill.count <= 0) {
- this.aoe_queues.shift(); // 移除已完成的技能
+ console.log("[FightConComp]:aoe_queues:",this.aoe_queues)
+
+ // 遍历所有技能,更新它们的计时器
+ for (let i = this.aoe_queues.length - 1; i >= 0; i--) {
+ let skill = this.aoe_queues[i];
+ let timer = this.aoe_timers.get(skill.id) || 0;
+
+ timer += deltaTime;
+ this.aoe_timers.set(skill.id, timer);
+
+ // 检查是否到达执行间隔
+ if (timer >= this.AOE_INTERVAL) {
+ // 重置计时器
+ this.aoe_timers.set(skill.id, 0);
+
+ // 执行技能
+ this.aoe_skill_execute(skill);
+ skill.count--;
+
+ // 如果技能执行完毕,从队列中移除
+ if (skill.count <= 0) {
+ this.aoe_queues.splice(i, 1);
+ this.aoe_timers.delete(skill.id);
+ }
}
}
}
diff --git a/assets/script/game/skills/SkillCom.ts b/assets/script/game/skills/SkillCom.ts
index 03b87ef6..573e5cd0 100644
--- a/assets/script/game/skills/SkillCom.ts
+++ b/assets/script/game/skills/SkillCom.ts
@@ -139,20 +139,27 @@ export class SkillCom extends CCComp {
if(view){
let dis =Math.abs(this.node.position.x-view.node.position.x)
if(dis > SkillSet[this.s_uuid].with) return
- view.do_atked(this.ap,this.caster_crit,this.caster_crit_d)
+ this.single_damage(view)
}
});
}
//单体伤害
- single_damage(target:HeroViewComp,crit:number=0,crit_d:number=0){
+ single_damage(target:HeroViewComp){
this.hit_count++
console.log("[SkillCom]:onBeginContact hit_count:",this.hit_count,SkillSet[this.s_uuid].hit)
if(this.hit_count>=SkillSet[this.s_uuid].hit) this.is_destroy=true // 技能命中次数
if(target == null) return;
- target.do_atked(this.ap,crit,crit_d)
+
+ target.do_atked(this.ap,this.caster_crit,this.caster_crit_d) // ap 及暴击 属性已经在skill.ts 处理
if(SkillSet[this.s_uuid].debuff>0){
- let debuff =this.get_debuff()
- target.add_debuff(SkillSet[this.s_uuid].debuff,debuff.deV,debuff.deC)
+ let deUP =this.get_debuff() // 因为不是每个技能都需要,debuff的增益在这里处理, ap 及暴击 属性已经在skill.ts 处理
+ let debuff=SkillSet[this.s_uuid]
+ let dev=debuff.deV*(100+deUP.deV)/100
+ let deR=debuff.deR+deUP.deR
+ dev=Math.round(dev*100)/100
+ let deC=debuff.deC+deUP.deC //dec只作为次数叠加
+ console.log("[SkillCom]:debuff",SkillSet[this.s_uuid].name,debuff.debuff,deUP.deV,deUP.deC)
+ target.add_debuff(debuff.debuff,dev,deC,deR)
}
}
@@ -161,12 +168,12 @@ export class SkillCom extends CCComp {
let target = oCol.getComponent(HeroViewComp)
if(oCol.group!=this.group){
if(target == null) return;
- this.single_damage(target,this.caster_crit,this.caster_crit_d)
+ this.single_damage(target)
// this.ent.destroy()
}
}
get_debuff(){ //debuff 加成
- let debuff = {deV:0,deC:0}
+ let debuff = {deV:0,deC:0,deR:0}
let buff=null
if(this.caster.is_master) buff = this.FIGHTCON.hero_buff
if(this.caster.is_friend) buff = this.FIGHTCON.friend_buff
@@ -174,6 +181,7 @@ export class SkillCom extends CCComp {
if(buff==null) return debuff
debuff.deV=buff.DEBUFF_VALUE
debuff.deC=buff.DEBUFF_COUNT
+ debuff.deR=buff.DEBUFF_UP
return debuff
}
diff --git a/assets/script/todo.md b/assets/script/todo.md
index 1fcccd11..af900856 100644
--- a/assets/script/todo.md
+++ b/assets/script/todo.md
@@ -41,10 +41,13 @@
- [x] 技能和伙伴都 需要主动点击 才会弹出,特定回合出现选项
- [x] 添加等级系统,主将和伙伴都可以升级,升级获得属性提升和 技能获取
- [ ] 添加升级动画
+- [x] 卡牌技能 触发会中断问题
+- [x] buff和debuff 增益功能 添加
+
波数 升级 获取装备的等级
-
+buff 主要靠装备,临时buff尽量减少
# 装备系统三维度分层模型