Files
pixelheros/assets/script/game/common/config/SkillSet.ts
panw bca97070d4 fix(技能): 修复复活技能动画顺序和buff动画配置
调整复活技能逻辑,确保目标先标记为存活再播放准备动画
修正技能6401、6404、6406、6501的readyAnm配置为正确的"up_ap"
将up_ap动画的采样率从30降低到15,使动画时长加倍
2026-04-23 15:01:53 +08:00

337 lines
16 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ========== 从 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<number, SkillConfig> = {
// ========== 基础技能 ==========
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.linear,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%攻击的伤害,冰冻率20%",
},
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.linear,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:6007,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:100,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:"对多个目标造成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:100,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:"对多个目标造成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:100,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:"多次对多个目标造成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.linear,EType:EType.collision,buffs:[],info:"对多个目标造成100%攻击的伤害,暴击",
},
6105: {
uuid:6105,name:"冰刺",sp_name:"atk_fire",icon:"1173",TGroup:TGroup.Enemy,readyAnm:"blues",endAnm:"",act:"max",
DTType:DTType.range,frz:0,ap:100,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:"多次对多个目标造成150%攻击的伤害,冰冻率20%",
},
6106: {
uuid:6106,name:"火墙",sp_name:"atk_fire",icon:"1173",TGroup:TGroup.Enemy,readyAnm:"reds",endAnm:"",act:"max",
DTType:DTType.range,bck:20,ap:100,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:"多次对多个目标造成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:500,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:"治疗1个友方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:"随机1个友方获得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:"随机3个友方获得2次伤害免疫",
},
//==========================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:"随机1个友方+5攻击",
},
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:"随机1个友方+20最大生命值",
},
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:"随机1个友方+2攻击,+10最大生命值",
},
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:"随机3个友方+2攻击",
},
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:"随机3个友方+10最大生命值",
},
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:"随机3个友方+2攻击,+10最大生命值",
},
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%生命",
}
};
export enum FieldSkillType {
SummonCount = 1, // 召唤触发技能次数提升
DeadCount = 2, // 死亡触发技能次数提升
StartCount = 3, // 战斗开始触发技能次数提升
EndCount = 4, // 战斗结束触发技能次数提升
WaveGold = 5, // 每回合金币收益提升
SellGold = 6, // 卖出英雄金币提升
WaveHeal = 7, // 战斗结束生命回复量提升
HeroAtk = 8, // 英雄攻击力加成
}
export interface FieldSkillConfig {
uuid: number;
name: string;
type: FieldSkillType;
value: number; // 提升的数值
info: string;
}
export const FieldSkillSet: Record<number, FieldSkillConfig> = {
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%" },
};