// ========== 从 HeroAttrs.ts 导入属性相关定义 ========== import { Attrs } from "./HeroAttrs"; export enum HSSet { atk = 0, // 普通攻击 skill = 1, // 一般技能 max = 2, // 必杀技 } export enum TGroup { Self = 0, // 自身 Ally = 1, // 所有友方,包括自己 Team = 2, // 所有友方 Enemy = 3, // 敌方单位 All = 4 // 所有单位 } export enum DTType { single = 0, range = 1, } export enum SkillKind { Damage = 0, Heal = 1, Shield = 2, Support = 3 } //受伤动画名称 export enum AtkedName { atked = "atked", ice = "atked_ice", fire = "atked_fire", wind = "atked_wind", crit = "atked_crit", } export enum RType { linear = 0, //直线 bezier = 1, //贝塞尔 fixed = 2, //固定起点 fixedEnd = 3, //固定终点 } //EType 只负责动画什么时候结束,碰撞体什么时候消失不管,但是消失前一定要关闭碰撞体 export enum EType { animationEnd = 0, //碰撞够也不消失,动画结束才消失 timeEnd = 1, //碰撞够也不消失,时间到才消失 collision = 2, //碰撞次数够就消失 } //debuff类型 /* === 技能配置系统使用说明 === 1. 基础属性: - uuid: 技能唯一ID - name: 技能名称 - sp_name: 特效名称 - AtkedName: 攻击类型 - path: 图片资源路径 2. 目标和效果: - TGroup: 目标群体 (敌方、友方等) - SType: 技能类型 (伤害、治疗、护盾等) 3. 执行参数: - act: 角色执行的动画 - DTType: 伤害类型 (单体、范围) - EType: 结束条件 - fname: 特效文件名 - with: 暂时无用 4. 数值参数: - ap: 攻击力百分比 - cd: 冷却时间 - hit_count: 可命中次数 - t_num: 目标数量 - hitcd: 持续伤害的伤害间隔 - speed: 移动速度 - cost: 消耗值 */ export enum DType { ATK= 0, // 物理 ICE=1, // 冰元素 FIRE=2, // 火元素 WIND=3, // 风元素 } export enum IType { Melee = 0, // 近战 remote = 1, // 远程 support = 2, // 辅助 } export const HeroSkillList = [6001,6001,6001,6001,6001,6001] // Debuff配置接口 export interface BuffConf { buff:Attrs; value:number; // 效果值 } interface IReady { uuid:number, loop: boolean, SkillTime: number,// 技能控制存续时间时间 ReadyTime: number,// 技能前摇时间 RType: number, //技能运行类型 0-线性 1-贝塞尔 2-开始位置固定 3-目标位置固定 ready_y: number, path:string, } interface IEndAnm { uuid:number, path:string, loop:boolean, time:number, } // 技能配置接口 - 按照6001格式排列 export interface SkillConfig { uuid:number, // 技能唯一ID name:string, // 技能名称 sp_name:string, // 特效名称 icon:string, // 图标ID TGroup:TGroup, // 目标群体(敌方/友方/自身等) act:string, // 角色执行的动画 DTType:DTType, // 伤害类型(单体/范围) ap:number, // 伤害/治疗技能为攻击百分比,护盾技能为免疫次数 hit_count:number, // 可命中次数 hitcd:number, // 持续伤害的伤害间隔(秒) speed:number, // 移动速度 with:number, // 宽度(暂时无用) ready:number, // 前摇时间 readyAnm:string, // 前摇动画名称 endAnm:string, // 结束动画名称 EAnm:number, // 结束动画ID DAnm:string, // 命中后动画ID IType:IType, // 技能类型(近战/远程/辅助) RType:RType, // 技能运行类型(直线/贝塞尔/固定起点/固定终点) EType:EType, // 结束条件(动画结束/时间结束/距离结束/碰撞/次数结束) bezier_start_y?:number, // 贝塞尔起始抬升高度 bezier_mid_y?:number, // 贝塞尔中间高度增量 bezier_arc?:number, // 贝塞尔弧度系数 time?:number, // timeEnd 持续时间(秒) kind?:SkillKind, // 主效果类型 crt?:number, // 额外暴击率 frz?:number, // 额外冰冻概率 bck?:number, // 额外击退概率 buffs:BuffConf[], // 对目标应用的 buff 配置列表 call_hero?:number, // 召唤技能召唤英雄id(可选) info:string, // 技能描述 } export const SkillUpList = { 1001:{ap:0,hit_count:0,buff_ap:0,buff_hp:0,bck:0,frz:0,crt:0,num:0} } /****** * * 射箭类技能 带暴击属性 * 火法技能 带击退属性 * 冰法技能 带冰冻属性 * */ export const SkillSet: Record = { // ========== 基础技能 ========== 6001: { uuid:6001,name:"普通攻击",sp_name:"atk",icon:"1026",TGroup:TGroup.Enemy,readyAnm:"",endAnm:"",act:"atk", DTType:DTType.single,ap:100,hit_count:1,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.Melee, RType:RType.bezier,EType:EType.collision,buffs:[],info:"造成攻击力100%的伤害", }, 6002: { uuid:6002,name:"火球术",sp_name:"ball_fire",icon:"1126",TGroup:TGroup.Enemy,readyAnm:"",endAnm:"",act:"atk", DTType:DTType.single,frz:0,ap:100,hit_count:1,hitcd:0.3,speed:720,with:90,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.bezier,EType:EType.collision,buffs:[],info:"发射火球,造成攻击力100%的伤害", }, 6003: { uuid:6003,name:"风刃",sp_name:"ball_winds",icon:"1126",TGroup:TGroup.Enemy,readyAnm:"",endAnm:"",act:"atk", DTType:DTType.single,ap:100,hit_count:1,hitcd:0.3,speed:720,with:90,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.bezier,EType:EType.collision,buffs:[],info:"发射风刃,造成攻击力100%的伤害", }, 6004: { uuid:6004,name:"暗影球",sp_name:"ball_zi",icon:"1126",TGroup:TGroup.Enemy,readyAnm:"",endAnm:"",act:"atk", DTType:DTType.single,ap:100,hit_count:1,hitcd:0.3,speed:720,with:90,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.bezier,EType:EType.collision,buffs:[],info:"发射暗影球,造成攻击力100%的伤害", }, 6005: { uuid:6005,name:"箭矢",sp_name:"arrow",icon:"1135",TGroup:TGroup.Enemy,readyAnm:"",endAnm:"",act:"atk", DTType:DTType.single,ap:100,hit_count:1,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.bezier,EType:EType.collision,bezier_start_y:20,bezier_mid_y:140,bezier_arc:1.05,buffs:[],info:"射出箭矢,造成攻击力100%的伤害", }, 6007: { uuid:6007,name:"冰霜球",sp_name:"ball_forst",icon:"1126",TGroup:TGroup.Enemy,readyAnm:"",endAnm:"",act:"atk", DTType:DTType.single,ap:100,hit_count:1,hitcd:0.3,speed:720,with:90,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.bezier,EType:EType.collision,buffs:[],info:"发射冰霜球,造成攻击力100%的伤害", }, 6008: { uuid:6008,name:"水球",sp_name:"ball_water",icon:"1126",TGroup:TGroup.Enemy,readyAnm:"",endAnm:"",act:"atk", DTType:DTType.single,ap:100,hit_count:1,hitcd:0.3,speed:720,with:90,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.bezier,EType:EType.collision,buffs:[],info:"发射水球,造成攻击力100%的伤害", }, //大招 6101: { uuid:6101,name:"烈焰斩",sp_name:"atk_fire",icon:"1173",TGroup:TGroup.Enemy,readyAnm:"reds",endAnm:"",act:"max", DTType:DTType.single,bck:20,ap:150,hit_count:6,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.Melee, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"释放烈焰斩击,最多命中6个敌人,造成攻击力150%的伤害,附带20%击退概率", }, 6102: { uuid:6102,name:"雷霆击",sp_name:"atk_s4",icon:"1173",TGroup:TGroup.Enemy,readyAnm:"yellow",endAnm:"",act:"max", DTType:DTType.single,crt:20,ap:150,hit_count:6,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.Melee, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"释放雷霆一击,最多命中6个敌人,造成攻击力150%的伤害,附带20%额外暴击率", }, 6103: { uuid:6103,name:"火焰风暴",sp_name:"atk_fire",icon:"1173",TGroup:TGroup.Enemy,readyAnm:"reds",endAnm:"",act:"max", DTType:DTType.range,crt:20,ap:150,hit_count:6,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"召唤火焰风暴,最多命中6个敌人,造成攻击力150%的范围伤害,附带20%额外暴击率", }, 6104: { uuid:6104,name:"穿云箭",sp_name:"arrow_big_yellow",icon:"1135",TGroup:TGroup.Enemy,readyAnm:"yellow",endAnm:"",act:"max", DTType:DTType.single,crt:20,ap:100,hit_count:6,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.bezier,EType:EType.collision,buffs:[],info:"射出强力箭矢,最多穿透6个敌人,造成攻击力100%的伤害,附带20%额外暴击率", }, 6105: { uuid:6105,name:"冰封领域",sp_name:"atk_fire",icon:"1173",TGroup:TGroup.Enemy,readyAnm:"blues",endAnm:"",act:"max", DTType:DTType.range,frz:0,ap:150,hit_count:6,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"释放冰封领域,最多命中6个敌人,造成攻击力150%的范围伤害", }, 6106: { uuid:6106,name:"冲击波",sp_name:"atk_fire",icon:"1173",TGroup:TGroup.Enemy,readyAnm:"reds",endAnm:"",act:"max", DTType:DTType.range,bck:20,ap:150,hit_count:6,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.remote, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"释放冲击波,最多命中6个敌人,造成攻击力150%的范围伤害,附带20%击退概率", }, //============================= ====== 辅助技能 ====== ========================== 6301:{ uuid:6301,name:"护盾术",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Self,readyAnm:"up_blue",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Shield,ap:3,hit_count:1,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"为自己添加护盾,可抵挡3次伤害", }, 6302: { uuid:6302,name:"群体治疗",sp_name:"buff_wind",icon:"1292",TGroup:TGroup.Team,readyAnm:"up_green",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Heal,ap:300,hit_count:1,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"为全体友方恢复攻击力300%的生命值", }, 6303:{ uuid:6303,name:"强化护盾",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Self,readyAnm:"up_blue",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Shield,ap:3,hit_count:1,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"为自己添加强化护盾,可抵挡3次伤害", }, 6304: { uuid:6304,name:"持续恢复",sp_name:"buff_wind",icon:"1292",TGroup:TGroup.Team,readyAnm:"up_green",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Heal,ap:200,hit_count:3,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"为全体友方持续恢复,共3次,每次恢复攻击力200%的生命值", }, 6305:{ uuid:6305,name:"团队护盾",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Team,readyAnm:"up_blue",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Shield,ap:2,hit_count:3,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"为全体友方添加护盾,每人可抵挡2次伤害,持续3次", }, //==========================buff 技能===================== 6401:{ uuid:6401,name:"攻击强化",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Team,readyAnm:"up_ap",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Support,ap:0,hit_count:1,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[{buff:Attrs.ap,value:5}],info:"全体友方攻击力提升5点,持续1次", }, 6402:{ uuid:6402,name:"生命强化",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Team,readyAnm:"up_hp",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Support,ap:0,hit_count:1,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[{buff:Attrs.hp_max,value:20}],info:"全体友方最大生命值提升20点,持续1次", }, 6403:{ uuid:6403,name:"全面强化",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Team,readyAnm:"up_hp",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Support,ap:0,hit_count:1,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[{buff:Attrs.ap,value:5},{buff:Attrs.hp_max,value:20}],info:"全体友方攻击力提升5点,最大生命值提升20点,持续1次", }, 6404:{ uuid:6404,name:"持续攻击强化",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Team,readyAnm:"up_ap",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Support,ap:0,hit_count:3,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[{buff:Attrs.ap,value:2}],info:"全体友方攻击力提升2点,持续3次", }, 6405:{ uuid:6405,name:"持续生命强化",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Team,readyAnm:"up_hp",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Support,ap:0,hit_count:3,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[{buff:Attrs.hp_max,value:10}],info:"全体友方最大生命值提升10点,持续3次", }, 6406:{ uuid:6406,name:"持续全面强化",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Team,readyAnm:"up_ap",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Support,ap:0,hit_count:3,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[{buff:Attrs.ap,value:2},{buff:Attrs.hp_max,value:10}],info:"全体友方攻击力提升2点,最大生命值提升10点,持续3次", }, 6501:{ uuid:6501,name:"自我强化",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Self,readyAnm:"up_ap",endAnm:"",act:"atk", DTType:DTType.single,kind:SkillKind.Support,ap:50,hit_count:3,hitcd:0.2,speed:720,with:0,ready:0.2,EAnm:0,DAnm:"",IType:IType.support, RType:RType.fixed,EType:EType.animationEnd,buffs:[],info:"自身攻击力提升50点,持续3次", } }; //***************驻场技能配置*************** export enum FieldSkillType { SummonCount = 1, // 召唤触发技能次数提升 DeadCount = 2, // 死亡触发技能次数提升 StartCount = 3, // 战斗开始触发技能次数提升 EndCount = 4, // 战斗结束触发技能次数提升 WaveGold = 5, // 每回合金币收益提升 SellGold = 6, // 卖出英雄金币提升 WaveHeal = 7, // 战斗结束生命回复量提升 HeroAtk = 8, // 英雄攻击力加成 HeroFrost = 9, // 英雄冰冻加成 HeroCrit = 10, // 英雄暴击加成 HeroCritDamage = 11, // 英雄暴击伤害加成 HeroSpeed = 12, // 英雄攻击速度加成 } export interface FieldSkillConfig { uuid: number; name: string; type: FieldSkillType; value: number; // 提升的数值 info: string; } export const FieldSkillSet: Record = { 7001: { uuid: 7001, name: "召唤强化", type: FieldSkillType.SummonCount, value: 1, info: "召唤触发技能次数+1" }, 7002: { uuid: 7002, name: "死亡强化", type: FieldSkillType.DeadCount, value: 1, info: "死亡触发技能次数+1" }, 7003: { uuid: 7003, name: "开场强化", type: FieldSkillType.StartCount, value: 1, info: "战斗开始触发技能次数+1" }, 7004: { uuid: 7004, name: "结束强化", type: FieldSkillType.EndCount, value: 1, info: "战斗结束触发技能次数+1" }, 7005: { uuid: 7005, name: "金币收益", type: FieldSkillType.WaveGold, value: 10, info: "每回合金币收益+10" }, 7006: { uuid: 7006, name: "出售强化", type: FieldSkillType.SellGold, value: 5, info: "卖出英雄金币+5" }, 7007: { uuid: 7007, name: "战后恢复", type: FieldSkillType.WaveHeal, value: 0.3, info: "战斗结束生命回复量+30%" }, 7008: { uuid: 7008, name: "攻击加成", type: FieldSkillType.HeroAtk, value: 0.2, info: "英雄攻击力+20%" }, 7009: { uuid: 7009, name: "冰冻加成", type: FieldSkillType.HeroFrost, value: 0.1, info: "英雄冰冻概率+10%" }, 7010: { uuid: 7010, name: "暴击加成", type: FieldSkillType.HeroCrit, value: 0.1, info: "英雄暴击率+10%" }, 7011: { uuid: 7011, name: "暴伤加成", type: FieldSkillType.HeroCritDamage, value: 0.5, info: "英雄暴击伤害+50%" }, 7012: { uuid: 7012, name: "攻速加成", type: FieldSkillType.HeroSpeed, value: 0.2, info: "英雄攻击速度+20%" }, };