From 7dcaf19925bc03c0cecde7d1de6120a42ce4d8e6 Mon Sep 17 00:00:00 2001 From: panw Date: Wed, 9 Jul 2025 17:54:03 +0800 Subject: [PATCH] =?UTF-8?q?buff=20=20=E6=B2=BB=E7=96=97=E7=AD=89=E6=8A=80?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/game/skills/buff/to_buff.anim | 242 ++++-------------- .../resources/game/skills/heath_small.prefab | 201 ++++++++++++++- assets/script/game/common/config/SkillSet.ts | 64 ++--- assets/script/game/skills/SkillCom.ts | 37 ++- 4 files changed, 311 insertions(+), 233 deletions(-) diff --git a/assets/resources/game/skills/buff/to_buff.anim b/assets/resources/game/skills/buff/to_buff.anim index 4e5f2306..235f24ec 100644 --- a/assets/resources/game/skills/buff/to_buff.anim +++ b/assets/resources/game/skills/buff/to_buff.anim @@ -7,25 +7,22 @@ "embeddedPlayerGroups": [] }, "_native": "", - "sample": 24, + "sample": 12, "speed": 1, "wrapMode": 2, "enableTrsBlending": false, - "_duration": 0.16666666666666666, + "_duration": 0.8333333333333334, "_hash": 500763545, "_tracks": [ { "__id__": 1 - }, - { - "__id__": 12 } ], "_exoticAnimation": null, "_events": [], "_embeddedPlayers": [], "_additiveSettings": { - "__id__": 23 + "__id__": 12 }, "_auxiliaryCurveEntries": [] }, @@ -60,7 +57,7 @@ { "__id__": 3 }, - "scale" + "eulerAngles" ] }, { @@ -77,14 +74,15 @@ "__type__": "cc.RealCurve", "_times": [ 0, - 0.16666666666666666 + 0.4166666567325592, + 0.8333333134651184 ], "_values": [ { "__type__": "cc.RealKeyframeValue", "interpolationMode": 0, "tangentWeightMode": 0, - "value": 0.5, + "value": 0, "rightTangent": 0, "rightTangentWeight": 1, "leftTangent": 0, @@ -96,7 +94,19 @@ "__type__": "cc.RealKeyframeValue", "interpolationMode": 0, "tangentWeightMode": 0, - "value": 1, + "value": 0, + "rightTangent": 0, + "rightTangentWeight": 1, + "leftTangent": 0, + "leftTangentWeight": 1, + "easingMethod": 0, + "__editorExtras__": null + }, + { + "__type__": "cc.RealKeyframeValue", + "interpolationMode": 0, + "tangentWeightMode": 0, + "value": 0, "rightTangent": 0, "rightTangentWeight": 1, "leftTangent": 0, @@ -118,14 +128,15 @@ "__type__": "cc.RealCurve", "_times": [ 0, - 0.16666666666666666 + 0.4166666567325592, + 0.8333333134651184 ], "_values": [ { "__type__": "cc.RealKeyframeValue", "interpolationMode": 0, "tangentWeightMode": 0, - "value": 0.5, + "value": 0, "rightTangent": 0, "rightTangentWeight": 1, "leftTangent": 0, @@ -137,7 +148,19 @@ "__type__": "cc.RealKeyframeValue", "interpolationMode": 0, "tangentWeightMode": 0, - "value": 1, + "value": 0, + "rightTangent": 0, + "rightTangentWeight": 1, + "leftTangent": 0, + "leftTangentWeight": 1, + "easingMethod": 0, + "__editorExtras__": null + }, + { + "__type__": "cc.RealKeyframeValue", + "interpolationMode": 0, + "tangentWeightMode": 0, + "value": 0, "rightTangent": 0, "rightTangentWeight": 1, "leftTangent": 0, @@ -159,14 +182,15 @@ "__type__": "cc.RealCurve", "_times": [ 0, - 0.16666666666666666 + 0.4166666567325592, + 0.8333333134651184 ], "_values": [ { "__type__": "cc.RealKeyframeValue", "interpolationMode": 0, "tangentWeightMode": 0, - "value": 1, + "value": 0, "rightTangent": 0, "rightTangentWeight": 1, "leftTangent": 0, @@ -178,7 +202,19 @@ "__type__": "cc.RealKeyframeValue", "interpolationMode": 0, "tangentWeightMode": 0, - "value": 1, + "value": -180, + "rightTangent": 0, + "rightTangentWeight": 1, + "leftTangent": 0, + "leftTangentWeight": 1, + "easingMethod": 0, + "__editorExtras__": null + }, + { + "__type__": "cc.RealKeyframeValue", + "interpolationMode": 0, + "tangentWeightMode": 0, + "value": -360, "rightTangent": 0, "rightTangentWeight": 1, "leftTangent": 0, @@ -203,180 +239,6 @@ "preExtrapolation": 1, "postExtrapolation": 1 }, - { - "__type__": "cc.animation.VectorTrack", - "_binding": { - "__type__": "cc.animation.TrackBinding", - "path": { - "__id__": 13 - }, - "proxy": null - }, - "_channels": [ - { - "__id__": 15 - }, - { - "__id__": 17 - }, - { - "__id__": 19 - }, - { - "__id__": 21 - } - ], - "_nComponents": 3 - }, - { - "__type__": "cc.animation.TrackPath", - "_paths": [ - { - "__id__": 14 - }, - "eulerAngles" - ] - }, - { - "__type__": "cc.animation.HierarchyPath", - "path": "skill" - }, - { - "__type__": "cc.animation.Channel", - "_curve": { - "__id__": 16 - } - }, - { - "__type__": "cc.RealCurve", - "_times": [ - 0, - 0.16666666666666666 - ], - "_values": [ - { - "__type__": "cc.RealKeyframeValue", - "interpolationMode": 0, - "tangentWeightMode": 0, - "value": 0, - "rightTangent": 0, - "rightTangentWeight": 1, - "leftTangent": 0, - "leftTangentWeight": 1, - "easingMethod": 0, - "__editorExtras__": null - }, - { - "__type__": "cc.RealKeyframeValue", - "interpolationMode": 0, - "tangentWeightMode": 0, - "value": 0, - "rightTangent": 0, - "rightTangentWeight": 1, - "leftTangent": 0, - "leftTangentWeight": 1, - "easingMethod": 0, - "__editorExtras__": null - } - ], - "preExtrapolation": 1, - "postExtrapolation": 1 - }, - { - "__type__": "cc.animation.Channel", - "_curve": { - "__id__": 18 - } - }, - { - "__type__": "cc.RealCurve", - "_times": [ - 0, - 0.16666666666666666 - ], - "_values": [ - { - "__type__": "cc.RealKeyframeValue", - "interpolationMode": 0, - "tangentWeightMode": 0, - "value": 0, - "rightTangent": 0, - "rightTangentWeight": 1, - "leftTangent": 0, - "leftTangentWeight": 1, - "easingMethod": 0, - "__editorExtras__": null - }, - { - "__type__": "cc.RealKeyframeValue", - "interpolationMode": 0, - "tangentWeightMode": 0, - "value": 0, - "rightTangent": 0, - "rightTangentWeight": 1, - "leftTangent": 0, - "leftTangentWeight": 1, - "easingMethod": 0, - "__editorExtras__": null - } - ], - "preExtrapolation": 1, - "postExtrapolation": 1 - }, - { - "__type__": "cc.animation.Channel", - "_curve": { - "__id__": 20 - } - }, - { - "__type__": "cc.RealCurve", - "_times": [ - 0, - 0.16666666666666666 - ], - "_values": [ - { - "__type__": "cc.RealKeyframeValue", - "interpolationMode": 0, - "tangentWeightMode": 0, - "value": 0, - "rightTangent": 0, - "rightTangentWeight": 1, - "leftTangent": 0, - "leftTangentWeight": 1, - "easingMethod": 0, - "__editorExtras__": null - }, - { - "__type__": "cc.RealKeyframeValue", - "interpolationMode": 0, - "tangentWeightMode": 0, - "value": 180, - "rightTangent": 0, - "rightTangentWeight": 1, - "leftTangent": 0, - "leftTangentWeight": 1, - "easingMethod": 0, - "__editorExtras__": null - } - ], - "preExtrapolation": 1, - "postExtrapolation": 1 - }, - { - "__type__": "cc.animation.Channel", - "_curve": { - "__id__": 22 - } - }, - { - "__type__": "cc.RealCurve", - "_times": [], - "_values": [], - "preExtrapolation": 1, - "postExtrapolation": 1 - }, { "__type__": "cc.AnimationClipAdditiveSettings", "enabled": false, diff --git a/assets/resources/game/skills/heath_small.prefab b/assets/resources/game/skills/heath_small.prefab index a52c88a0..d1e90115 100644 --- a/assets/resources/game/skills/heath_small.prefab +++ b/assets/resources/game/skills/heath_small.prefab @@ -25,17 +25,20 @@ "_active": true, "_components": [ { - "__id__": 6 + "__id__": 12 }, { - "__id__": 8 + "__id__": 14 }, { - "__id__": 10 + "__id__": 16 + }, + { + "__id__": 18 } ], "_prefab": { - "__id__": 12 + "__id__": 20 }, "_lpos": { "__type__": "cc.Vec3", @@ -74,15 +77,69 @@ "_parent": { "__id__": 1 }, - "_children": [], - "_active": true, - "_components": [ + "_children": [ { "__id__": 3 } ], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], "_prefab": { - "__id__": 5 + "__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": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Image_Effect_Star01_Yellow", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + }, + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 8 }, "_lpos": { "__type__": "cc.Vec3", @@ -113,6 +170,92 @@ }, "_id": "" }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 3 + }, + "_enabled": true, + "__prefab": { + "__id__": 5 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 92, + "height": 92 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "2dvPS54+BHsYOdlT14ZqFz" + }, + { + "__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": 10, + "g": 255, + "b": 0, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "260d01c4-5936-4c90-8ff9-b892c60b2e48@ce362", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "bb9AuVg7ZDuq7LRqIEr+V1" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "1f72gYz6FJlY6VbZn57SZn", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, { "__type__": "cc.UITransform", "_name": "", @@ -123,7 +266,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 4 + "__id__": 10 }, "_contentSize": { "__type__": "cc.Size", @@ -164,7 +307,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 7 + "__id__": 13 }, "_contentSize": { "__type__": "cc.Size", @@ -192,7 +335,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 9 + "__id__": 15 }, "_id": "" }, @@ -210,7 +353,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 11 + "__id__": 17 }, "playOnLoad": true, "_clips": [ @@ -229,6 +372,40 @@ "__type__": "cc.CompPrefabInfo", "fileId": "7cJdSTCj5Eu4vDiD6FPj8P" }, + { + "__type__": "f680dkagx9PmbfqtF463/Ua", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 19 + }, + "speed": 600, + "controlPointSide": 1, + "controlPointOffset": 1, + "controlPointRandomness": 0.3, + "autoRotate": true, + "showTrajectory": false, + "trajectoryColor": { + "__type__": "cc.Color", + "r": 0, + "g": 255, + "b": 0, + "a": 255 + }, + "trajectoryWidth": 3, + "easing": "linear", + "rotationSmoothness": 0.6, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "46vE3s9lxEkZFP/Fm7EHJD" + }, { "__type__": "cc.PrefabInfo", "root": { diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index ca58c887..39387ea0 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -35,7 +35,12 @@ export enum skRun { runing = 0, dead = 1, } - +export enum SType { + damage = 0, + heal = 1, + shield = 2, + buff = 3, +} //技能释放cd: 0:技能配置的cd,1:HeroViewComp.cd 值,2:HeroViewComp.pw:0值,当HeroViewComppw==HeroViewComp.pwm值是 释放 export enum CdType { SkillCD = 0, // 使用技能配置的cd @@ -52,6 +57,7 @@ export enum AType { parabolic = 1, // 抛射物 fixedStart = 2, // 固定在出发点 fixedEnd = 3, // 固定在终点 + StartEnd = 4, // 固定在出发点和终点 用于治疗和buff类技能 } export enum RType { @@ -201,102 +207,102 @@ export const getSkills=(quality:number)=>{ } export const SkillSet = { 6001:{uuid:6001,name:"凛冬之触",for_hero:false,sp_name:"greenball",path:"3034",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"}, 6002:{uuid:6002,name:"穿心箭矢",for_hero:false,sp_name:"arrow",path:"3037",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.parabolic,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.parabolic,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"}, 6003:{uuid:6003,name:"神圣护盾",for_hero:false,sp_name:"shield",path:"3045",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Self,act:"max",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:90, + TGroup:TGroup.Self,SType:SType.shield,act:"atk",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:30,speed:720,hero:0,cost:10,info:"召唤圣盾保护自己,可以抵御3次攻击"}, - 6004:{uuid:6004,name:"自愈", for_hero:false, sp_name:"heath_small",path:"3056",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Self,act:"max",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:90, - debuff:0,deV:0,deC:0,deR:100,in:2,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"主动:自己回复自身5%最大生命值的生命"}, + 6004:{uuid:6004,name:"自愈", for_hero:true, sp_name:"heath_small",path:"3056",quality:Quality.GREEN, TType:TType.Frontline,maxC:1, + TGroup:TGroup.Self,SType:SType.heal,act:"atk",DTType:DTType.single,CdType:2,AType:AType.StartEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:0, + debuff:0,deV:0,deC:0,deR:100,in:1,ap:0,cd:5,hit:0,hited:0,shield:0,speed:0,hero:0,cost:10,info:"主动:自己回复自身5%最大生命值的生命"}, 6005:{uuid:6005,name:"基础打击",for_hero:false,sp_name:"base1",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"}, 6006:{uuid:6006,name:"基础打击",for_hero:false,sp_name:"base2",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"}, 6007:{uuid:6007,name:"基础打击",for_hero:false,sp_name:"base3",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"}, 6008:{uuid:6008,name:"基础打击",for_hero:false,sp_name:"base4",path:"3036",quality:Quality.WHITE, TType:TType.Frontline, - maxC:1, TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + maxC:1, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"}, 6009:{uuid:6009,name:"铁斧打击",for_hero:false,sp_name:"base_ft",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"}, 6010:{uuid:6010,name:"木棍打击",for_hero:false,sp_name:"base_mg",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"}, 6011:{uuid:6011,name:"飞刀打击",for_hero:false,sp_name:"mon_xd",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"}, 6012:{uuid:6012,name:"石斧打击",for_hero:false,sp_name:"base_sf",path:"3036",quality:Quality.WHITE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:1,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:0, debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"}, 6020:{uuid:6020,name:"冰暴",for_hero:true,sp_name:"bingyu",path:"3135",quality:Quality.BLUE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Ally,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90, + TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90, debuff:4,deV:0,deC:0,deR:100,in:4,ap:80,cd:5,hit:1,hited:1,shield:0,speed:720,hero:0,cost:10,info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"}, 6021:{uuid:6021,name:"火龙",for_hero:true,sp_name:"firequan",path:"3061",quality:Quality.BLUE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Ally,act:"max",DTType:DTType.range,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.timeEnd,fname:"max",flash:false,with:90, + TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.timeEnd,fname:"max",flash:false,with:90, debuff:0,deV:0,deC:0,deR:100,in:10,ap:100,cd:5,hit:1,hited:1,shield:0,speed:80,hero:0,cost:10,info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"}, 6022:{uuid:6022,name:"大火球" ,for_hero:true,sp_name:"fire",path:"3039",quality:Quality.GREEN, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, debuff:DebuffAttr.STUN,deV:20,deC:1,deR:100,in:1,ap:100,cd:5,hit:2,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"}, 6023:{uuid:6023,name:"龙卷风",for_hero:true, sp_name:"bwind",path:"3065",quality:Quality.GREEN, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"max",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"max",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:3,ap:100,cd:5,hit:1,hited:1,shield:0,speed:360,hero:0,cost:10,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"}, 6024:{uuid:6024,name:"寒冰箭",for_hero:true, sp_name:"arrow_blue",path:"3060",quality:Quality.GREEN, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, debuff:DebuffAttr.FROST,deV:1,deC:0,deR:100,in:1,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"}, 6025:{uuid:6025,name:"烈焰射击",for_hero:false,sp_name:"arrow_yellow",path:"3014",quality:Quality.GREEN, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"atk",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, debuff:DebuffAttr.STUN,deV:0,deC:0,deR:100,in:1,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"}, 6026:{uuid:6026,name:"火墙", for_hero:true, sp_name:"firewall",path:"3040",quality:Quality.BLUE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Ally,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90, + TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90, debuff:0,deV:0,deC:0,deR:100,in:10,ap:50,cd:5,hit:1,hited:1,shield:0,speed:720,hero:0,cost:10,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"}, 6027:{uuid:6027,name:"冰刺",for_hero:true,sp_name:"icez",path:"3049",quality:Quality.BLUE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Ally,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90, + TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90, debuff:DebuffAttr.FROST,deV:0,deC:0,deR:100,in:1,ap:300,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"}, 6028:{uuid:6028,name:"潮汐", for_hero:true, sp_name:"watert",path:"3070",quality:Quality.BLUE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Ally,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90, + TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90, debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:3,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"}, 6029:{uuid:6029,name:"陨石术",for_hero:true, sp_name:"fireys",path:"3123",quality:Quality.BLUE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Ally,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90, + TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90, debuff:0,deV:0,deC:0,deR:100,in:3,ap:500,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"}, 6030:{uuid:6030,name:"冰墙", for_hero:false, sp_name:"icet",path:"3050",quality:Quality.GREEN, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Enemy,act:"max",DTType:DTType.range,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:90, + TGroup:TGroup.Enemy,SType:SType.damage,act:"max",DTType:DTType.range,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.animationEnd,fname:"max",flash:false,with:90, debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:1,ap:400,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"}, 6031:{uuid:6031,name:"召唤仆从",for_hero:true,sp_name:"zhaohuan",path:"3018",quality:Quality.PURPLE, TType:TType.Frontline,maxC:1, - TGroup:TGroup.Self,act:"max",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.animationEnd,fname:"max_blue",flash:true,with:90, + TGroup:TGroup.Self,SType:SType.damage,act:"max",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.animationEnd,fname:"max_blue",flash:true,with:90, debuff:0,deV:0,deC:0,deR:100,in:2,ap:70,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:5211,cost:10,info:"召唤一个与施法者等级相同的骷髅战士为我方而战"}, 6032:{uuid:6032,name:"陨石风暴",for_hero:true, sp_name:"fireys",path:"3101",quality:Quality.PURPLE, TType:TType.Frontline,maxC:5, - TGroup:TGroup.Ally,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90, + TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90, debuff:0,deV:0,deC:0,deR:100,in:3,ap:500,cd:5,hit:1,hited:0.3,shield:0,speed:720,hero:0,cost:10,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"}, 6033:{uuid:6033,name:"龙卷风爆",for_hero:true, sp_name:"bwind",path:"3069",quality:Quality.PURPLE, TType:TType.Frontline,maxC:5, - TGroup:TGroup.Ally,act:"max",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, + TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.single,CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90, debuff:DebuffAttr.BACK,deV:0,deC:0,deR:100,in:3,ap:100,cd:5,hit:1,hited:1,shield:0,speed:360,hero:0,cost:10,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"}, }; \ No newline at end of file diff --git a/assets/script/game/skills/SkillCom.ts b/assets/script/game/skills/SkillCom.ts index 22d24977..7640c566 100644 --- a/assets/script/game/skills/SkillCom.ts +++ b/assets/script/game/skills/SkillCom.ts @@ -89,8 +89,9 @@ export class SkillCom extends CCComp { if(this.group==BoxSet.MONSTER) bm.controlPointSide=-1 bm.moveTo(this.targetPos) break; - case AType.fixedStart: - + case AType.StartEnd: + // 2段位移:先升高,然后移到目的地 + this.executeTwoStageMovement(); break; case AType.fixedEnd: this.node.setPosition(this.targetPos.x,this.targetPos.y,0) @@ -174,6 +175,38 @@ export class SkillCom extends CCComp { return debuff } + /** + * 执行2段位移:先升高,然后移到目的地 + */ + private executeTwoStageMovement() { + const totalDuration = SkillSet[this.s_uuid].in; + const firstStageDuration = totalDuration * 0.4; // 第一段占40%时间 + const secondStageDuration = totalDuration * 0.6; // 第二段占60%时间 + + // 第一段:升高 + const riseHeight = 100; // 升高高度 + const midPosition = v3(this.node.position.x, this.node.position.y + riseHeight, 0); + + // 第二段:移动到目标位置 + const finalPosition = v3(this.targetPos.x, this.targetPos.y, 0); + + // 创建缓动序列 + tween(this.node) + // 第一段:升高 + .to(firstStageDuration, { position: midPosition }, { + easing: 'quadOut' // 使用二次缓出效果,让上升更自然 + }) + // 第二段:移动到目标位置 + .to(secondStageDuration, { position: finalPosition }, { + easing: 'quadInOut' // 使用二次缓入缓出效果 + }).call(()=>{ + this.do_buff() + }) + .start(); + } + do_buff(){ + console.log("[SkillCom]:do_buff") + } private startLinearMove(dt: number) { if (!this.speed || this.is_destroy) return; if(this.s_uuid == 6005){