// ========== Buff/Debuff 配置定义 ========== import { Attrs } from "./HeroAttrs"; /** Buff 类别 */ export enum BuffCategory { Buff = 0, Debuff = 1, Control = 2, } /** 修饰器运算类型 */ export enum ModOp { Flat = 0, PercentAdd = 1, PercentMul = 2, } /** 单条属性修饰器 */ export interface BuffModifier { attr: Attrs; op: ModOp; value: number; } /** 周期效果(DoT/HoT) */ export interface BuffTickEffect { interval: number; damage_or_heal: number; // 正=治疗,负=伤害 scale_by_ap_pct: number; // 按施法者 ap 缩放百分比,0=不吃加成 } /** Buff 静态定义 */ export interface BuffConfig { id: number; name: string; icon: string; category: BuffCategory; duration: number; // 单层持续时间(秒),0=永久 max_stack: number; // 默认 0=无限叠加;1=不可叠层;N=最多N层 modifiers?: BuffModifier[]; tick?: BuffTickEffect; is_control?: boolean; control_kind?: 'frost' | 'stun' | 'none'; info: string; } /** Buff 配置表 */ export const BuffList: Record = { // 攻击强化(限时版) 7001: { id: 7001, name: "攻击强化", icon: "Stat_Attack_03", category: BuffCategory.Buff, duration: 10, max_stack: 0, modifiers: [{ attr: Attrs.ap, op: ModOp.Flat, value: 5 }], info: "攻击力 +5,持续 10 秒", }, // 灼烧(DoT,可叠层) 7002: { id: 7002, name: "灼烧", icon: "Stat_Burn", category: BuffCategory.Debuff, duration: 5, max_stack: 5, tick: { interval: 0.5, damage_or_heal: -10, scale_by_ap_pct: 30 }, info: "每 0.5 秒受到 10 伤害,可叠加", }, // 冰冻(控制,走统一框架,双写兼容) 7003: { id: 7003, name: "冰冻", icon: "Stat_Freeze", category: BuffCategory.Control, duration: 2, max_stack: 1, is_control: true, control_kind: 'frost', info: "冰冻目标,无法行动", }, // 击晕(控制) 7004: { id: 7004, name: "击晕", icon: "Stat_Stun", category: BuffCategory.Control, duration: 2, max_stack: 1, is_control: true, control_kind: 'stun', info: "击晕目标,无法行动", }, // 占卜师战前攻击强化(基础档:+30/5s;高阶通过 buff_value/buff_duration 覆写成长) 7111: { id: 7111, name: "战前强攻", icon: "Stat_Attack_03", category: BuffCategory.Buff, duration: 5, max_stack: 0, modifiers: [{ attr: Attrs.ap, op: ModOp.Flat, value: 30 }], info: "攻击力 +30,持续 5 秒", }, // ==================== 玩家计时性强化(药水/技能用,默认 5s) ==================== // 计时性回血(HoT) 7010: { id: 7010, name: "再生", icon: "Stat_PotionBoost", category: BuffCategory.Buff, duration: 5, max_stack: 1, tick: { interval: 0.5, damage_or_heal: 10, scale_by_ap_pct: 0 }, info: "每秒回复生命,持续 5 秒", }, // 攻击强化(限时) 7011: { id: 7011, name: "攻击爆发", icon: "Stat_Attack_03", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.ap, op: ModOp.PercentAdd, value: 50 }], info: "攻击力提升 50%,持续 5 秒", }, // 暴击强化(限时) 7012: { id: 7012, name: "暴击爆发", icon: "Stat_CriticalChance_02", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.critical, op: ModOp.Flat, value: 30 }], info: "暴击率提升 30%,持续 5 秒", }, // 击退距离强化(限时) 7013: { id: 7013, name: "击退爆发", icon: "Stat_Stun_01", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.knockback_chance, op: ModOp.Flat, value: 30 }], info: "击退距离提升 30,持续 5 秒", }, // 穿透强化(限时) 7014: { id: 7014, name: "穿透爆发", icon: "Stat_Tripleshot", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.puncture_chance, op: ModOp.Flat, value: 30 }], info: "穿透概率提升 30%,持续 5 秒", }, // 攻速强化(限时,走 getEffectiveSkillCd 计时修饰) 7015: { id: 7015, name: "攻速爆发", icon: "Stat_AttackSpeed_02", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.speed, op: ModOp.Flat, value: 40 }], info: "攻击速度提升 40%,持续 5 秒", }, // 风怒强化(限时,按概率百分点) 7016: { id: 7016, name: "风怒爆发", icon: "Stat_CriticalComboChance", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.wfuny, op: ModOp.Flat, value: 20 }], info: "风怒概率提升 20%,持续 5 秒", }, // 击晕概率强化(限时) 7017: { id: 7017, name: "击晕爆发", icon: "Stat_Stun_01", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.stun_chance, op: ModOp.Flat, value: 30 }], info: "击晕概率提升 30%,持续 5 秒", }, // 击晕抗性强化(限时) 7018: { id: 7018, name: "击晕抗性", icon: "Stat_Armor_01", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.stun_res, op: ModOp.Flat, value: 50 }], info: "击晕抗性提升 50%,持续 5 秒", }, // 冰冻抗性强化(限时) 7019: { id: 7019, name: "冰冻抗性", icon: "Stat_Freeze", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.freeze_res, op: ModOp.Flat, value: 50 }], info: "冰冻抗性提升 50%,持续 5 秒", }, // 暴伤强化(限时) 7020: { id: 7020, name: "暴伤爆发", icon: "Stat_Critical_01", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.critical_damage, op: ModOp.Flat, value: 30 }], info: "暴击伤害提升 30%,持续 5 秒", }, // 冰冻概率强化(限时) 7021: { id: 7021, name: "冰冻概率爆发", icon: "Stat_Freeze", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.freeze_chance, op: ModOp.Flat, value: 5 }], info: "冰冻概率提升 5%,持续 5 秒", }, // 穿透伤害强化(限时) 7022: { id: 7022, name: "穿透伤害爆发", icon: "Stat_Tripleshot", category: BuffCategory.Buff, duration: 5, max_stack: 1, modifiers: [{ attr: Attrs.puncture_dmg_bonus, op: ModOp.Flat, value: 30 }], info: "穿透后伤害提升 30%,持续 5 秒", }, };