/** * 天赋系统配置文件 * 支持定义英雄的特殊能力或特性 */ import { Attrs } from "./HeroAttrs"; // ========== 枚举定义 ========== /** * 天赋类型枚举,也是触发条件 */ export enum TalType { LEVEL_TRIGGER = 1, // 基于等级触发 ACTION_COUNT_TRIGGER = 2, // 基于普通攻击触发, skills[0]计数触发 SKILL_COUNT_TRIGGER = 3, // 基于技能触发, > skills[0]计数触发 DAMAGE_COUNT_TRIGGER = 4, // 基于受伤次数触发 INIT_TRIGGER = 5, // 初始触发,如:多1个技能 DEAD_TRIGGER = 6 // 基于死亡触发 } /** * 触发效果 */ export enum TalEffectType { ATTR_MODIFY = 1, // 属性修改 SKILL_TRIGGER = 2, // 技能触发 SKILL_MORE = 3, // 天生多1个技能 } /** * 天赋配置接口 * 定义一个完整的天赋效果 */ export interface ItalConf { talId: number; // 天赋ID name: string; // 天赋名称 desc: string; // 天赋描述(说明触发条件和效果) type: TalType; triggerType: TalEffectType; // 触发效果类型 t_value: number; // 触发的阈值(如5级触发一次, 5次攻击触发一次,初始触发) e_value: number; // 触发的效果值(如增加10%攻击力, 触发的技能uuid,增加1个技能uuid) e_count?: number; // 触发效果的累计次数(如触发2次技能实现召唤2个召唤物) stackable?: boolean; // 是否可堆叠效果(默认true) maxStack?: number; // 最大堆叠次数(不设置表示无限制) } // ========== 天赋配置表 ========== /** * 天赋配置表 - 一维数组格式 * 存储所有天赋的配置信息,采用2行紧凑格式 * * 使用说明: * 1. 等级类天赋:当英雄升级到指定等级时,每次都会触发效果 * 2. 行为计数类:当特定行为累计达到阈值时触发,支持是否重置计数 * 3. 受伤计数类:当受伤累计达到阈值时触发,支持是否重置计数 * 4. 技能触发类:当特定条件满足时自动触发指定技能 */ export const talConf: ItalConf[] = [ // ========== 等级类天赋 ========== /** * 剑意提升 - 刘邦专属 * 每升5级,攻击力增加10% */ ]; // ========== 工具函数 ========== /** * 根据天赋ID获取天赋配置 * @param talId 天赋ID * @returns 天赋配置,不存在返回undefined */ export const getTalConf = (talId: number): ItalConf | undefined => { return talConf.find(tal => tal.talId === talId); }; /** * 获取所有天赋ID列表 * @returns 天赋ID数组 */ export const getAllTalIds = (): number[] => { return talConf.map(tal => tal.talId); };