Files
heros/assets/script/game/common/config/TalSet.ts
panw deb224b067 refactor(game): 重构天赋系统配置和组件逻辑
重构天赋系统配置,包括:
1. 调整天赋类型枚举和效果枚举
2. 移除旧的天赋配置数据
3. 简化天赋组件实现
4. 更新设计文档中的天赋描述

同时修正地图组件中的英雄位置坐标和缩放值
2025-11-18 11:00:18 +08:00

103 lines
3.5 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.

/**
* 天赋系统配置文件
* 支持定义英雄的特殊能力或特性
*/
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<number, ItalConf> = {
};
// ========== 工具函数 ==========