import { log } from "cc" import { QualitySet } from "./BoxSet" import * as exp from "constants" export enum TGroup { Self = 0, // 自身 Ally = 1, // 所有敌人 Team = 2, // 所有友方 Enemy = 3, // 敌方单位 All = 4 // 所有单位 } export enum TType { /** 前排目标(最靠近敌方阵营的单位) */ Frontline = 1, // 最前排单位 /** 后排目标(离敌方阵营最远的单位) */ Backline = 2, // 最后排单位 /** 生命值最低的目标 */ LowestHP = 3, // 最低生命值 /** 生命值最高的目标 */ HighestHP = 4, // 最高生命值 /** 近战职业目标 */ Melee =5, // 近战职业 /** 远程职业目标 */ Ranged =6, // 远程职业 /** 辅助职业目标 */ SupportClass =7, // 辅助职业 /** 随机目标 */ Random =8 // 随机目标 } export enum SKILL_CONST { POWER_UP = 60, } export enum DTType { single = 0, range = 1, } export enum skRun { runing = 0, dead = 1, } export enum SType { damage = 0, heal = 1, shield = 2, atk_speed = 3, power_up = 4, ap_up = 5, dod_up = 6, crit_up = 7, crit_dmg_up = 8, wfuny_up = 9, zhaohuan = 10, buff = 11, } //技能释放cd: 0:技能配置的cd,1:HeroViewComp.cd 值,2:HeroViewComp.pw:0值,当HeroViewComppw==HeroViewComp.pwm值是 释放 export enum CdType { cd=0, atk=1, atked=2, crit=3, dod=4, power=5, } export enum AtkedType { atked = "atked", ice = "atked_ice", fire = "atked_fire", wind = "atked_wind", crit = "atked_crit", } //技能释放cd: 0:技能配置的cd,1:HeroViewComp.cd 值,2:HeroViewComp.pw:0值,当HeroViewComppw==HeroViewComp.pwm值是 释放 export enum AType { linear = 0, // 直线 parabolic = 1, // 抛射物 fixedStart = 2, // 固定在出发点,物理攻击 fixedEnd = 3, // 固定在终点 StartEnd = 4, // 固定在出发点和终点 用于治疗和buff类技能 } export enum RType { linear = 0, //直线 bezier = 1, //贝塞尔 fixed = 2, //固定起点 fixedEnd = 3, //固定终点 } export enum EType { animationEnd = 0, timeEnd = 1, distanceEnd = 2, collision = 3, countEnd = 4, } //debuff类型 export enum DBuff { STUN = 1, //眩晕 - 对应Attrs.CON_RES (控制抗性), BType.RATIO SLOW = 2, //减速 - 对应Attrs.AS (攻击速度), BType.RATIO FROST = 3, //冰冻 - 对应Attrs.ICE_RES (冰冻抗性), BType.RATIO BURN = 4, //易伤 - 对应Attrs.DEF/MDEF (防御/魔防), BType.RATIO, 默认次数是5, 技能配置的devC是额外次数 DEAS = 5, //减速 - 对应Attrs.AS (攻击速度), BType.RATIO, 直接+技能cd DEHP = 6, //减hp - 对应Attrs.HP_MAX (最大生命值), BType.RATIO DEAP = 7, //减atk - 对应Attrs.AP (攻击力), BType.RATIO DEMGP = 8, //减魔法伤害 - 对应Attrs.MAP (魔法攻击力), BType.RATIO BACK = 9, //击退概率 - 对应Attrs.KNOCKBACK (击退概率), BType.RATIO CRITICAL = 10, //-暴击率 - 对应Attrs.CRITICAL (暴击率), BType.RATIO CRIT_DAMAGE = 11, //-暴击伤害 - 对应Attrs.CRITICAL_DMG (暴击伤害), BType.RATIO DODGE = 12, //-闪避 - 对应Attrs.DODGE (闪避), BType.RATIO DBUFFUP=13, //edbuff效果提升 BUFF_DOWN = 14,// buff效果减弱 } export const geDebuffNum=()=>{ return { [DBuff.STUN]:0, //眩晕 [DBuff.SLOW]:0, //减速 [DBuff.FROST]:0, //冰冻 [DBuff.BURN]:0, //易伤 [DBuff.DEAS]:0, //减cd [DBuff.DEHP]:0, //减生命最大值 [DBuff.DEAP]:0, //减攻击力 [DBuff.DEMGP]:0, //减魔法攻击力 [DBuff.BACK]:0, //+击退比率 [DBuff.CRITICAL]:0,//-技能暴击几率 [DBuff.CRIT_DAMAGE]:0, [DBuff.DODGE]:0, [DBuff.DBUFFUP]:0, } } export enum Attrs { HP_MAX = 0, //生命值 MP_MAX = 1, //魔法值 SHIELD_MAX=2, //护盾 AP = 3, //攻击力 MAP=4, //魔法攻击力 DEF = 5, //防御 MDEF = 6, //魔法防御 CRITICAL =7, //暴击率 CRITICAL_DMG = 8, //暴击伤害 DODGE = 9, //闪避 HIT = 10, //命中 WFUNY = 11, // 风怒 AS = 12, //攻击速度,直接减技能cd REFLICT = 13, //反伤比率 LIFESTEAL = 14, //吸血比率 KNOCKBACK = 15, //攻击带击退概率 CON_RES = 16, //控制抗性 ICE_RES = 17, //冰冻抗性 FIRE_RES = 18, //火抗性 WIND_RES = 19, //风抗性 ICE_POWER = 20, //冰冻伤害效果提升 FIRE_POWER = 21,//火伤害效果提升 WIND_POWER = 22,//风伤害效果提升 SHIELD_UP = 23, //护盾效果提升 BUFF_UP = 24, //buff效果提升 DBUFF_UP=25, //debuff效果提升 DIS=26, //攻击距离 } export const getAttrs=()=>{ // 遍历枚举的数字值(枚举会生成双向映射) let reAttrs = {}; Object.keys(Attrs).forEach(key => { if (!isNaN(Number(key))) { reAttrs[Number(key)] = 0; } }); return reAttrs; } export enum BType { VALUE=0, //数值型 RATIO=1 //百分比型 } /* === 技能配置系统使用说明 === 1. 基础属性: - uuid: 技能唯一ID - name: 技能名称 - for_hero: 是否为英雄专用技能 - sp_name: 特效名称 - AtkedType: 攻击类型 - path: 图片资源路径 - quality: 技能品质 2. 目标和效果: - TType: 目标类型 (最前排、最后排等) - maxC: 最大命中数量 - TGroup: 目标群体 (敌方、友方等) - SType: 技能类型 (伤害、治疗、护盾等) 3. 执行参数: - act: 行为类型 - DTType: 伤害类型 (单体、范围) - CdType: 冷却类型 - AType: 动画类型 - EType: 结束条件 - fname: 特效文件名 - flash: 是否闪烁 - with: 角度参数 4. 数值参数: - ap: 攻击力百分比 - cd: 冷却时间 - in: 持续时间 - hit_num: 命中次数 - hit: 伤害倍数 - hitcd: 伤害间隔 - speed: 移动速度 - cost: 消耗值 5. 效果配置: - buffs: BuffConf[] - 增益效果数组 - debuffs: DbuffConf[] - 减益效果数组 - info: 技能描述 - hero?: 召唤物英雄ID (可选) 6. BuffConf结构: - buff: BuffAttr - 增益类型 - buV: number - 效果值 - buC: number - 持续次数 - buR: number - 触发概率 7. DbuffConf结构: - debuff: DebuffAttr - 减益类型 - dev: number - 效果值 - deC: number - 持续时间 - deR: number - 触发概率 8. 使用示例: buffs: [createBuffConf(BuffAttr.SHIELD, 2, 0, 100)] debuffs: [createDbuffConf(DBuff.STUN, 0, 1, 50)] */ export const HeroSkillList = [6001,6001,6001,6001,6001,6001] // Debuff配置接口 export interface DbuffConf { debuff: DBuff; // debuff类型 BType:BType //buff是数值型还是百分比型 dev: number; // 效果值 (原deV) deC: number; // 持续时间 deR: number; // 触发概率 (原deR) } export interface BuffConf { buff:Attrs; BType:BType buV:number; buC:number; buR:number; } // 技能配置接口 - 按照6001格式排列 export interface SkillConfig { uuid:number,name:string,sp_name:string,AtkedType:AtkedType,path:string,TGroup:TGroup,SType:SType,act:string,DTType:DTType, ap:number,cd:number,in:number,t_num:number,hit_num:number,hit:number,hitcd:number,speed:number,cost:number,with:number, buffs:BuffConf[],debuffs:DbuffConf[],info:string,hero?:number } export const SkillSet: Record = { // ========== 基础攻击 ========== 6001-6099 6001: { uuid:6001,name:"挥击",sp_name:"atk_s1",AtkedType:AtkedType.atked,path:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0.2,t_num:1,hit_num:1,hit:1,hitcd:0.2,speed:720,cost:10,with:0, buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害" }, 6002: { uuid:6002,name:"挥击",sp_name:"atk2",AtkedType:AtkedType.atked,path:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.2,speed:720,cost:10,with:0, buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害" }, 6003: { uuid:6003,name:"射击",sp_name:"arrow",AtkedType:AtkedType.atked,path:"3037",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0, buffs:[],debuffs:[],info:"向最前方敌人释放箭矢,造成100%攻击的伤害" }, 6004: { uuid:6004,name:"冰球",sp_name:"am_ice",AtkedType:AtkedType.ice,path:"3034",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0, buffs:[],debuffs:[],info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害" }, 6005: { uuid:6005,name:"火球术",sp_name:"atk_fires",AtkedType:AtkedType.fire,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:1,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧" }, 6006: { uuid:6006,name:"能量波",sp_name:"am_blue",AtkedType:AtkedType.ice,path:"3034",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0, buffs:[],debuffs:[],info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害" }, 6007: { uuid:6007,name:"圣光波",sp_name:"am_yellow",AtkedType:AtkedType.fire,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧" }, // ========== 大招 ========== 6100-6199 6101: { uuid:6101,name:"护盾",sp_name:"shield",AtkedType:AtkedType.atked,path:"3045",TGroup:TGroup.Team,SType:SType.shield,act:"max",DTType:DTType.single, ap:0,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0, buffs:[],debuffs:[],info:"为最前排队友召唤一个可以抵御2次攻击的圣盾(最高叠加到6次)" }, 6102: { uuid:6102,name:"寒冰箭",sp_name:"arrow_blue",AtkedType:AtkedType.ice,path:"3060",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:1,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人" }, 6103: { uuid:6103,name:"治疗",sp_name:"heath_small",AtkedType:AtkedType.atked,path:"3056",TGroup:TGroup.Team,SType:SType.heal,act:"max",DTType:DTType.single, ap:0,cd:5,in:0,t_num:1,hit_num:1,hit:0,hitcd:0,speed:0,cost:10,with:0, buffs:[],debuffs:[],info:"回复最前排队友10%最大生命值的生命" }, 6104: { uuid:6104,name:"烈焰斩击",sp_name:"max_fireatk",AtkedType:AtkedType.fire,path:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.2,speed:720,cost:10,with:0, buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害" }, 6105: { uuid:6105,name:"烈火护盾",sp_name:"max_firedun",AtkedType:AtkedType.atked,path:"3061",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:1,speed:80,cost:10,with:90, buffs:[],debuffs:[],info:"召唤烈焰保护英雄,持续10秒,每秒对范围内的敌人造成100%伤害" }, 6106: { uuid:6106,name:"龙卷风",sp_name:"bwind",AtkedType:AtkedType.wind,path:"3065",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:1,speed:360,cost:10,with:90, buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人" }, 6107: { uuid:6107,name:"烈焰射击",sp_name:"arrow_yellow",AtkedType:AtkedType.fire,path:"3014",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人" }, 6108: { uuid:6108,name:"火墙",sp_name:"max_fwall",AtkedType:AtkedType.atked,path:"3040",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range, ap:50,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:1,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害" }, 6109: { uuid:6109,name:"冰刺",sp_name:"icez",AtkedType:AtkedType.atked,path:"3049",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range, ap:300,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人" }, 6110: { uuid:6110,name:"潮汐",sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人" }, 6111: { uuid:6111,name:"陨石术",sp_name:"max_yunshi",AtkedType:AtkedType.fire,path:"3123",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range, ap:500,cd:5,in:0,t_num:1,hit_num:0,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害" }, 6112: { uuid:6112,name:"冰墙",sp_name:"icet",AtkedType:AtkedType.atked,path:"3050",TGroup:TGroup.Enemy,SType:SType.damage,act:"max",DTType:DTType.range, ap:400,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人" }, 6113: { uuid:6113,name:"剑雨",sp_name:"max_jianyu",AtkedType:AtkedType.fire,path:"3123",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range, ap:500,cd:5,in:0,t_num:1,hit_num:0,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害" }, //召唤取消 // 6031:{uuid:6031,name:"召唤骷髅",sp_name:"zhaohuan",AtkedType:AtkedType.atked,path:"3018", // TGroup:TGroup.Self,SType:SType.zhaohuan,act:"max",DTType:DTType.single,fname:"max_blue",flash:true,with:90, // debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:70,cd:60,in:0,t_num:1,hit_num:1,hit:1,hitcd:1,speed:720,hero:5221,cost:10,info:"召唤一个骷髅战士为我方而战"}, // ========== 超必杀 ========== 6200-6299 6201: { uuid:6201,name:"满天火雨",sp_name:"atk_fires",AtkedType:AtkedType.atked,path:"3101",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range, ap:100,cd:5,in:2,t_num:1,hit_num:1,hit:5,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害" }, 6202: { uuid:6202,name:"龙卷风爆",sp_name:"bwind",AtkedType:AtkedType.atked,path:"3069",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:1,speed:360,cost:10,with:90, buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人" }, 6203: { uuid:6203,name:"大潮汐",sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人" }, // ==========增强型技能,被动技能,========== 6300-6399 6301: { uuid:6301,name:"攻击生命强化Ⅰ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"增加20%攻击力和生命值" }, 6302: { uuid:6302,name:"攻击生命强化Ⅱ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3093",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"增加40%攻击力和生命值" }, 6303: { uuid:6303,name:"攻击生命强化Ⅲ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"增加60%攻击力和生命值" }, 6304: { uuid:6304,name:"攻击生命强化Ⅳ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single, ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90, buffs:[],debuffs:[],info:"增加80%攻击力和生命值" }, };