/** * 天赋系统配置文件 * 支持定义英雄的特殊能力或特性 */ import * as exp from "constants"; import { Attrs, BType } from "./HeroAttrs"; import { SkillSet } from "./SkillSet"; // ========== 枚举定义 ========== /** * 天赋类型枚举,也是触发条件 */ export enum TalType { LUP_1 = 1, // 等级升级1级触发 LUP_5 = 2, // 等级升级5级触发 LUP_10 = 3, // 等级升级10级触发 ATK_1 = 4, //普通攻击1次触发 ATK_3 = 5, // 普通攻击3次触发 ATK_5 = 6, // 普通攻击5次触发 DMG_1 = 7, // 受伤1次触发 DMG_3 = 8, // 受伤3次触发 DMG_5 = 9, // 受伤5次触发 SKILL_1 = 10, // 技能1次触发 SKILL_3 = 11, // 技能3次触发 SKILL_5 = 12, // 技能5次触发 LHP_50 = 13, // 失去生命值50%触发 LHP_30 = 14, // 失去生命值30%触发 AHP_100 = 15, // 获得生命值100%触发 AHP_200 = 16, // 获得生命值200%触发 INIT = 17, // 初始触发,如:多1个技能 DEAD = 18 // 基于死亡触发 } /** * 触发效果 */ export enum TalETag { Wfuny = 1, // 风怒 } export enum TalEffet { DMG=1, // 伤害 ATTR=2, // 属性hp,mp数值,持久添加 BUFF = 3, // 暴击率,闪避率等,可叠加的触发后清零 STATS=3, // 状态 N_ATK = 4, // 下n次普通攻击 需要特殊处理 N_SKILL=5, // 下n次技能攻击 需要特殊处理 } export enum TalTager { SELF = 1, // 自己触发 ENEMY = 2, // 敌人触发 } /** * 天赋配置接口 * 定义一个完整的天赋效果 */ export interface ItalConf { uuid: number; // 天赋ID name: string; // 天赋名称 desc: string; // 天赋描述(说明触发条件和效果) type: TalType; triggerType: TalEType; // 触发效果类型 chance: number; // 触发概率,默认100,`0-100`之间的数字 t_value: number; // 触发的阈值(如5级触发一次, 5次攻击触发一次,初始触发) e_value: number; // 触发的效果值(如增加10%攻击力, 触发的技能uuid,增加1个技能uuid) e_name: number; // 触发的特殊值,如具体属性类型, 0表示没有特定值,对应Attrs枚举 e_type: BType; // 效果类型, 主要针对属性修改,是百分比还是固定值 e_scaling: number; // 效果随等级缩放系数,默认1, 0.5表示效果随等级减半 e_count: number; // 触发效果的累计次数(如触发2次技能实现召唤2个召唤物) stackable?: boolean; // 是否可堆叠效果(默认true) maxStack?: number; // 最大堆叠次数(不设置表示无限制) } // ========== 天赋配置表 ========== /** * 天赋配置表 - 2行紧凑格式 * 每个天赋配置压缩为2行:注释行 + 配置对象行 * * 格式说明: * 第1行:// 天赋名称 - 英雄专属/通用 | 触发条件 | 效果描述 * 第2行:{uuid, name, desc, type, triggerType, chance, t_value, e_value, e_name, e_type, e_scaling, e_count, stackable, maxStack} * * 使用说明: * 1. 等级类天赋:当英雄升级到指定等级时,每次都会触发效果 * 2. 行为计数类:当特定行为累计达到阈值时触发,支持是否重置计数 * 3. 受伤计数类:当受伤累计达到阈值时触发,支持是否重置计数 * 4. 技能触发类:当特定条件满足时自动触发指定技能 */ export const talConf: Record = { }; // ========== 工具函数 ==========