From 4c0d1023a02546344419e6de2e108de591471aa2 Mon Sep 17 00:00:00 2001 From: panw Date: Thu, 12 Jun 2025 10:56:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=BB=E5=87=BB=E6=AC=A1=E6=95=B0=20?= =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/script/game/common/config/Equips.ts | 9 +++ assets/script/game/common/config/SkillSet.ts | 66 +++++++++---------- .../common/ecs/position/BattleMoveSystem.ts | 3 +- assets/script/game/hero/Hero.ts | 3 +- assets/script/game/hero/HeroViewComp.ts | 2 - assets/script/game/hero/SkillConComp.ts | 52 +++++++++++---- assets/script/game/skills/Skill.ts | 8 +-- assets/script/game/skills/SkillCom.ts | 1 + 8 files changed, 91 insertions(+), 53 deletions(-) diff --git a/assets/script/game/common/config/Equips.ts b/assets/script/game/common/config/Equips.ts index e4130ae0..46c1984b 100644 --- a/assets/script/game/common/config/Equips.ts +++ b/assets/script/game/common/config/Equips.ts @@ -69,26 +69,35 @@ export const EquipInfo: { [key: number]: EquipData } = { 2001: {uuid: 2001, name: "新手剑", type: EquipType.WEAPON,info:"攻击力增加80%", attributes: [ { type: EquipAttr.ATK, value: 80, target: EquipAttrTarget.HERO }, + { type: EquipAttr.ATK_CD, value: 30, target: EquipAttrTarget.HERO }, + { type: EquipAttr.ATK_COUNT, value: 1, target: EquipAttrTarget.HERO }, ] }, 2002: {uuid: 2002,name: "新手剑2",type: EquipType.WEAPON,info:"攻击速度增加30%", attributes: [ { type: EquipAttr.ATK_CD, value: 30, target: EquipAttrTarget.HERO }, + { type: EquipAttr.ATK_COUNT, value: 1, target: EquipAttrTarget.HERO }, ] }, 2003: {uuid: 2003,name: "新手剑3",type: EquipType.WEAPON,info:"攻击次数增加1次", attributes: [ { type: EquipAttr.ATK_COUNT, value: 1, target: EquipAttrTarget.HERO }, + { type: EquipAttr.ATK_CD, value: 30, target: EquipAttrTarget.HERO }, + { type: EquipAttr.ATK_COUNT, value: 1, target: EquipAttrTarget.HERO }, ] }, 2004: {uuid: 2004,name: "防具1",type: EquipType.ARMOR,info:"生命值增加100%", attributes: [ { type: EquipAttr.HP, value: 100, target: EquipAttrTarget.HERO }, + { type: EquipAttr.ATK_CD, value: 30, target: EquipAttrTarget.HERO }, + { type: EquipAttr.ATK_COUNT, value: 1, target: EquipAttrTarget.HERO }, ] }, 2005: {uuid: 2005,name: "防具2",type: EquipType.ARMOR,info:"免伤增加50%", attributes: [ { type: EquipAttr.DEF, value: 50, target: EquipAttrTarget.HERO }, + { type: EquipAttr.ATK_CD, value: 30, target: EquipAttrTarget.HERO }, + { type: EquipAttr.ATK_COUNT, value: 1, target: EquipAttrTarget.HERO }, ] }, diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index 0054ba98..68611165 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -96,39 +96,39 @@ hero:召唤物英雄id info:技能描述 */ -export const HeroSkillList = [6001,6002,6003,6004,6005] +export const HeroSkillList = [6001,6001,6001,6001,6001,6001] export const SkillSet = { - 6001:{uuid:6001,name:"凛冬之触",sp_name:"greenball",path:"6001",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"}, - 6002:{uuid:6002,name:"烈焰之怒",sp_name:"greenball",path:"6002",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放火焰弹,造成100%攻击的伤害"}, - 6003:{uuid:6003,name:"奥术冲击",sp_name:"greenball",path:"6003",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放魔法弹,造成100%攻击的伤害"}, - 6004:{uuid:6004,name:"神圣裁决",sp_name:"greenball",path:"6004",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放圣光弹,造成100%攻击的伤害"}, - 6005:{uuid:6005,name:"破空斩击",sp_name:"patk",path:"6005",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:50,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"攻击前方直线100码内的敌人造成50%伤害"}, - 6006:{uuid:6006,name:"穿心箭矢",sp_name:"arrow",path:"6006",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"}, - 6007:{uuid:6007,name:"铁斧打击",sp_name:"mon_ft",path:"6007",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"}, - 6008:{uuid:6008,name:"木棍打击",sp_name:"mon_ly",path:"6008",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"}, - 6009:{uuid:6009,name:"飞刀打击",sp_name:"mon_xd",path:"6009",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"}, - 6010:{uuid:6010,name:"石斧打击",sp_name:"mon_sf",path:"6010",TargetType:1,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"}, - 6011:{uuid:6011,name:"烈火呼吸",sp_name:"firequan",path:"6011",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:0.5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"}, - 6012:{uuid:6012,name:"大火球" ,sp_name:"fire",path:"6012",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:2,depb:20,debtime:2,derate:100,in:1,count:1,def:0,apup:0,ap:300,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"}, - 6013:{uuid:6013,name:"火墙", sp_name:"firewall",path:"6013",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:4,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:10,count:1,def:0,apup:0,ap:50,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"}, - 6014:{uuid:6014,name:"寒冰箭", sp_name:"arrow_blue",path:"6014",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:1,depb:20,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"}, - 6015:{uuid:6015,name:"烈焰射击",sp_name:"arrow_yellow",path:"6015",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:3,depb:20,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"}, - 6016:{uuid:6016,name:"龙卷风", sp_name:"bwind",path:"6016",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"}, - 6017:{uuid:6017,name:"生命之泉",sp_name:"heath",path:"6017",TargetType:1,TargetGroup:2,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:5,count:1,def:0,apup:0,ap:100,mhp:0,hp:3,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"5秒持续为全体友方恢复施法者最大生命值15%的生命"}, - 6018:{uuid:6018,name:"神圣护盾",sp_name:"shield",path:"6018",TargetType:1,TargetGroup:0,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:30,speed:720,sonsk:0,hero:0,info:"召唤圣盾保护自己,可以抵御3次攻击"}, - 6019:{uuid:6019,name:"战争咆哮",sp_name:"apup",path:"6019",TargetType:1,TargetGroup:2,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max_red",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:1,count:1,def:0,apup:20,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"为全体友方增加施法者攻击力20%的攻击"}, + 6001:{uuid:6001,name:"凛冬之触",sp_name:"greenball",path:"6001",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"}, + 6002:{uuid:6002,name:"烈焰之怒",sp_name:"greenball",path:"6002",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放火焰弹,造成100%攻击的伤害"}, + 6003:{uuid:6003,name:"奥术冲击",sp_name:"greenball",path:"6003",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放魔法弹,造成100%攻击的伤害"}, + 6004:{uuid:6004,name:"神圣裁决",sp_name:"greenball",path:"6004",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放圣光弹,造成100%攻击的伤害"}, + 6005:{uuid:6005,name:"破空斩击",sp_name:"patk",path:"6005",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:50,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"攻击前方直线100码内的敌人造成50%伤害"}, + 6006:{uuid:6006,name:"穿心箭矢",sp_name:"arrow",path:"6006",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"}, + 6007:{uuid:6007,name:"铁斧打击",sp_name:"mon_ft",path:"6007",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"}, + 6008:{uuid:6008,name:"木棍打击",sp_name:"mon_ly",path:"6008",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"}, + 6009:{uuid:6009,name:"飞刀打击",sp_name:"mon_xd",path:"6009",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"}, + 6010:{uuid:6010,name:"石斧打击",sp_name:"mon_sf",path:"6010",TargetType:TargetType.Frontline,TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,endType:3,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"}, + 6011:{uuid:6011,name:"烈火呼吸",sp_name:"firequan",path:"6011",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:0.5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"}, + 6012:{uuid:6012,name:"大火球" ,sp_name:"fire",path:"6012",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:2,depb:20,debtime:2,derate:100,in:1,count:1,def:0,apup:0,ap:300,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"}, + 6013:{uuid:6013,name:"火墙", sp_name:"firewall",path:"6013",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:4,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:10,count:1,def:0,apup:0,ap:50,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"}, + 6014:{uuid:6014,name:"寒冰箭", sp_name:"arrow_blue",path:"6014",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:1,depb:20,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"}, + 6015:{uuid:6015,name:"烈焰射击",sp_name:"arrow_yellow",path:"6015",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:3,depb:20,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"}, + 6016:{uuid:6016,name:"龙卷风", sp_name:"bwind",path:"6016",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:1,count:1,def:0,apup:0,ap:200,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"}, + 6017:{uuid:6017,name:"生命之泉",sp_name:"heath",path:"6017",TargetType:TargetType.Frontline,TargetGroup:2,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:5,count:1,def:0,apup:0,ap:100,mhp:0,hp:3,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"5秒持续为全体友方恢复施法者最大生命值15%的生命"}, + 6018:{uuid:6018,name:"神圣护盾",sp_name:"shield",path:"6018",TargetType:TargetType.Frontline,TargetGroup:0,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:0.8,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:30,speed:720,sonsk:0,hero:0,info:"召唤圣盾保护自己,可以抵御3次攻击"}, + 6019:{uuid:6019,name:"战争咆哮",sp_name:"apup",path:"6019",TargetType:TargetType.Frontline,TargetGroup:2,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max_red",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:1,count:1,def:0,apup:20,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"为全体友方增加施法者攻击力20%的攻击"}, 6021:{uuid:6021,name:"死亡射击",sp_name:"shoot2",path:"6021",TargetType:2,TargetGroup:3,act:"max",CdType:2,AnimType:4,endType:0,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:1,count:1,def:0,apup:0,ap:600,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"攻击最后方的敌人,造成600%攻击的伤害"}, - 6022:{uuid:6022,name:"寒霜之矛",sp_name:"icez",path:"6022",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:1,depb:50,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:300,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"}, - 6023:{uuid:6023,name:"冰墙", sp_name:"icet",path:"6023",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:1,count:1,def:0,apup:0,ap:400,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"}, - 6024:{uuid:6024,name:"旋风斩", sp_name:"fwind",path:"6024",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:3,endType:1,fname:"max_red",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:2,count:1,def:0,apup:0,ap:80,mhp:0,hp:0,cd:5,buff_cd:0.5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"旋转武器对周围的敌人造成80%攻击,2秒内旋转4次"}, - 6025:{uuid:6025,name:"火焰漩涡",sp_name:"fireball",path:"6025",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"}, - 6026:{uuid:6026,name:"潮汐", sp_name:"watert",path:"6026",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:2,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"}, - 6027:{uuid:6027,name:"国王霸气",sp_name:"kingba",path:"6027",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:3,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:100,debtime:2,derate:0,in:3,count:1,def:0,apup:2,ap:400,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"释放霸气攻击周围敌人,造成400%伤害,并100%几率击退敌人"}, - 6028:{uuid:6028,name:"自然庇佑",sp_name:"heath2",path:"6028",TargetType:1,TargetGroup:2,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:0,apup:0,ap:100,mhp:0,hp:10,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"为全体友方恢复施法者最大生命值10%的生命,和抵御1次攻击的护盾"}, - 6029:{uuid:6029,name:"陨石术", sp_name:"fireys",path:"6029",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:4,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:2,derate:0,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"}, - 6030:{uuid:6030,name:"闪电呼吸",sp_name:"dianquan",path:"6030",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:0.5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤闪电攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"}, - 6031:{uuid:6031,name:"召唤仆从",sp_name:"zhaohuan",path:"6031",TargetType:1,TargetGroup:0,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:20,apup:0,ap:70,mhp:0,hp:70,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:5211,info:"召唤一个与施法者等级相同的骷髅战士为我方而战"}, - 6032:{uuid:6032,name:"自愈", sp_name:"heath_small",path:"6032",TargetType:1,TargetGroup:0,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:0,apup:0,ap:100,mhp:0,hp:5,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"主动:自己回复自身5%最大生命值的生命"}, - 6033:{uuid:6033,name:"震地裂击",sp_name:"cuida",path:"6033",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:4,depb:100,debtime:1,derate:20,in:1,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:6035,hero:0,info:"捶爆前方目标,造成300%攻击的伤害,震慑敌人,本局内全部敌方降低对方10%攻击力"}, - 6034:{uuid:6034,name:"风暴之矢",sp_name:"bingyu",path:"6034",TargetType:1,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:4,depb:100,debtime:1,derate:20,in:1,count:1,def:0,apup:0,ap:80,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"} + 6022:{uuid:6022,name:"寒霜之矛",sp_name:"icez",path:"6022",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:1,depb:50,debtime:2,derate:0,in:1,count:1,def:0,apup:0,ap:300,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"}, + 6023:{uuid:6023,name:"冰墙", sp_name:"icet",path:"6023",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:1,count:1,def:0,apup:0,ap:400,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"}, + 6024:{uuid:6024,name:"旋风斩", sp_name:"fwind",path:"6024",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:3,endType:1,fname:"max_red",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:2,count:1,def:0,apup:0,ap:80,mhp:0,hp:0,cd:5,buff_cd:0.5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"旋转武器对周围的敌人造成80%攻击,2秒内旋转4次"}, + 6025:{uuid:6025,name:"火焰漩涡",sp_name:"fireball",path:"6025",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:1,derate:0,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"}, + 6026:{uuid:6026,name:"潮汐", sp_name:"watert",path:"6026",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:2,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"}, + 6027:{uuid:6027,name:"国王霸气",sp_name:"kingba",path:"6027",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:3,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:100,debtime:2,derate:0,in:3,count:1,def:0,apup:2,ap:400,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"释放霸气攻击周围敌人,造成400%伤害,并100%几率击退敌人"}, + 6028:{uuid:6028,name:"自然庇佑",sp_name:"heath2",path:"6028",TargetType:TargetType.Frontline,TargetGroup:2,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:0,apup:0,ap:100,mhp:0,hp:10,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"为全体友方恢复施法者最大生命值10%的生命,和抵御1次攻击的护盾"}, + 6029:{uuid:6029,name:"陨石术", sp_name:"fireys",path:"6029",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:4,endType:1,fname:"max",flash:false,with:50,debuff:8,depb:50,debtime:2,derate:0,in:3,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"}, + 6030:{uuid:6030,name:"闪电呼吸",sp_name:"dianquan",path:"6030",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:3,count:1,def:0,apup:0,ap:100,mhp:0,hp:0,cd:5,buff_cd:0.5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤闪电攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"}, + 6031:{uuid:6031,name:"召唤仆从",sp_name:"zhaohuan",path:"6031",TargetType:TargetType.Frontline,TargetGroup:0,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max_blue",flash:true,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:20,apup:0,ap:70,mhp:0,hp:70,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:5211,info:"召唤一个与施法者等级相同的骷髅战士为我方而战"}, + 6032:{uuid:6032,name:"自愈", sp_name:"heath_small",path:"6032",TargetType:TargetType.Frontline,TargetGroup:0,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:0,depb:0,debtime:0,derate:0,in:2,count:1,def:0,apup:0,ap:100,mhp:0,hp:5,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"主动:自己回复自身5%最大生命值的生命"}, + 6033:{uuid:6033,name:"震地裂击",sp_name:"cuida",path:"6033",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:4,depb:100,debtime:1,derate:20,in:1,count:1,def:0,apup:0,ap:500,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:6035,hero:0,info:"捶爆前方目标,造成300%攻击的伤害,震慑敌人,本局内全部敌方降低对方10%攻击力"}, + 6034:{uuid:6034,name:"风暴之矢",sp_name:"bingyu",path:"6034",TargetType:TargetType.Frontline,TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,endType:1,fname:"max",flash:false,with:50,debuff:4,depb:100,debtime:1,derate:20,in:1,count:1,def:0,apup:0,ap:80,mhp:0,hp:0,cd:5,buff_cd:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"} }; \ No newline at end of file diff --git a/assets/script/game/common/ecs/position/BattleMoveSystem.ts b/assets/script/game/common/ecs/position/BattleMoveSystem.ts index 03e26da9..bdf65ed7 100644 --- a/assets/script/game/common/ecs/position/BattleMoveSystem.ts +++ b/assets/script/game/common/ecs/position/BattleMoveSystem.ts @@ -119,7 +119,8 @@ export class BattleMoveSystem extends ecs.ComblockSystem implements ecs.ISystemU const currentPos = entity.get(HeroViewComp).node.position; const team = entity.get(HeroViewComp).fac; const view = entity.get(HeroViewComp); - const isMelee = view.type === 0; + // const isMelee = view.type === 0; + const isMelee = false; return ecs.query(ecs.allOf(HeroViewComp)).some(e => { const view = e.get(HeroViewComp); diff --git a/assets/script/game/hero/Hero.ts b/assets/script/game/hero/Hero.ts index 97c7e36d..69f7f6d7 100644 --- a/assets/script/game/hero/Hero.ts +++ b/assets/script/game/hero/Hero.ts @@ -28,7 +28,7 @@ export class Hero extends ecs.Entity { this.remove(HeroModelComp); super.destroy(); } - hart_load(uuid:number=5001) { + hart_load(uuid:number=5004) { console.log("主体加载") let box_group=BoxSet.HERO var path = "game/heros/"+HeroInfo[uuid].path; @@ -57,6 +57,7 @@ export class Hero extends ecs.Entity { hv.ap_ur=hero.ap_ur hv.hp_up=hero.hp_up hv.atk_skill=hero.skills[0] + console.log(hv.hero_name+"dis=>"+hv.dis) this.add(hv); } /** 加载角色 */ diff --git a/assets/script/game/hero/HeroViewComp.ts b/assets/script/game/hero/HeroViewComp.ts index 1dbd9eb6..9363d289 100644 --- a/assets/script/game/hero/HeroViewComp.ts +++ b/assets/script/game/hero/HeroViewComp.ts @@ -142,9 +142,7 @@ export class HeroViewComp extends CCComp { this.yun_cd -=dt; return } - this.at += dt; this.in_stop(dt); - // 处理伤害队列 this.processDamageQueue(); } diff --git a/assets/script/game/hero/SkillConComp.ts b/assets/script/game/hero/SkillConComp.ts index 4bff0677..48c7ff52 100644 --- a/assets/script/game/hero/SkillConComp.ts +++ b/assets/script/game/hero/SkillConComp.ts @@ -35,6 +35,7 @@ export class SkillConComp extends CCComp { update(dt: number) { if(!smc.mission.play||smc.mission.pause) return + this.HeroView.at += dt; if (this.HeroView.is_atking &&this.HeroView.at > this.HeroView.cd) { const config = SkillSet[this.HeroView.atk_skill]; if (!config) return; @@ -44,6 +45,7 @@ export class SkillConComp extends CCComp { }else{ count+=this.FIGHTCON.friend.ATK_COUNT+this.FIGHTCON.ally.ATK_COUNT } + console.log(this.HeroView.hero_name+(this.HeroView.is_master?"[主]":"[从]")+"=>"+config.name+"=>"+count) this.castSkill(config,count); this.HeroView.at = 0; } @@ -75,23 +77,46 @@ export class SkillConComp extends CCComp { } } - private doSkill(config: typeof SkillSet[keyof typeof SkillSet],count:number=1) { + private doSkill(config: typeof SkillSet[keyof typeof SkillSet],count:number=1,angle:number=0) { + // 添加节点有效性检查 + if (!this.node || !this.node.isValid || !this.HeroView || !this.HeroView.node || !this.HeroView.node.isValid) { + return; + } const skillEntity = ecs.getEntity(Skill); const targets = this.selectEnemyTargets(config); if (targets.length === 0) return; - this.scheduleOnce(()=>{ - if(targets.length<=0||!this.HeroView) return + + const timerId = setTimeout(() => { + // 再次检查节点有效性 + if (!this.node || !this.node.isValid || !this.HeroView || !this.HeroView.node || !this.HeroView.node.isValid) { + return; + } + + // 检查目标有效性 + if (targets.length <= 0 || !targets[0]) return; + const targetView = targets[0].get(HeroViewComp); + if (!targetView || !targetView.node || !targetView.node.isValid) return; + skillEntity.load( - new Vec3(this.HeroView.node.position.x+BoxSet.ATK_X*this.HeroView.scale, this.HeroView.node.position.y+BoxSet.ATK_Y, 0), // 起始位置 - this.HeroView.box_group, // 阵营 - this.node.parent, // 父节点 - config.uuid, // 技能ID - new Vec3(targets[0]?.get(HeroViewComp).node.position.x, targets[0]?.get(HeroViewComp).node.position.y, 0), // 目标位置 - this.HeroView + new Vec3(this.HeroView.node.position.x + BoxSet.ATK_X * this.HeroView.scale, + this.HeroView.node.position.y + BoxSet.ATK_Y, 0), + this.node.parent, + config.uuid, + new Vec3(targetView.node.position.x, targetView.node.position.y, 0), + this.HeroView, + angle ); - },0.3) - // console.log("技能:"+config.uuid+"=>"+targets[0]?.get(HeroViewComp).hero_name); + }, 300); + count-=1 + if(count>0){ + let angle=10*count + this.scheduleOnce(()=>{ + this.doSkill(config,count,angle) + },0.1) + } + // 保存定时器ID + this._timers[`skill_${config.uuid}`] = timerId; } private selectEnemyTargets(config: typeof SkillSet[keyof typeof SkillSet]): ecs.Entity[] { @@ -144,8 +169,11 @@ export class SkillConComp extends CCComp { } onDestroy() { - // console.log("SkillConComp onDestroy") + // 清理所有定时器 Object.values(this._timers).forEach(clearTimeout); + this._timers = {}; + // 移除事件监听 + this.off(GameEvent.CastHeroSkill); } } diff --git a/assets/script/game/skills/Skill.ts b/assets/script/game/skills/Skill.ts index 0d6bb27e..cb024576 100644 --- a/assets/script/game/skills/Skill.ts +++ b/assets/script/game/skills/Skill.ts @@ -24,11 +24,11 @@ export class Skill extends ecs.Entity { } load( startPos: Vec3, // 起始位置 - group: number, // 阵营 parent: Node, // 父节点 uuid: number, // 技能ID targetPos: Vec3, // 目标位置 - caster:any=null // 施法者 + caster:any=null, // 施法者 + angle:number=0 ) { let FIGHTCON=parent.getComponent(FightConComp); const config = SkillSet[uuid]; @@ -65,8 +65,8 @@ export class Skill extends ecs.Entity { skillComp.targetPos =targetPos skillComp.caster = caster; skillComp.prefabName = config.sp_name; - skillComp.group = group; - skillComp.fac= group==BoxSet.HERO?0:1; + skillComp.group = caster.box_group; + skillComp.fac= caster.box_group==BoxSet.HERO?0:caster.box_group==BoxSet.MONSTER?1:2; // console.log(config.sp_name+"技能配置",skillComp); // 初始化动画名称 diff --git a/assets/script/game/skills/SkillCom.ts b/assets/script/game/skills/SkillCom.ts index 56b97a83..9d9e63b8 100644 --- a/assets/script/game/skills/SkillCom.ts +++ b/assets/script/game/skills/SkillCom.ts @@ -60,6 +60,7 @@ export class SkillCom extends CCComp { } if(SkillSet[this.s_uuid].AnimType==AnimType.parabolic){ + this.node.angle +=10 let bm=this.node.getComponent(BezierMove) // bm.speed=700 if(this.group==BoxSet.MONSTER) bm.controlPointSide=-1