重构天赋系统配置,包括: 1. 调整天赋类型枚举和效果枚举 2. 移除旧的天赋配置数据 3. 简化天赋组件实现 4. 更新设计文档中的天赋描述 同时修正地图组件中的英雄位置坐标和缩放值
103 lines
3.5 KiB
TypeScript
103 lines
3.5 KiB
TypeScript
/**
|
||
* 天赋系统配置文件
|
||
* 支持定义英雄的特殊能力或特性
|
||
*/
|
||
|
||
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> = {
|
||
|
||
|
||
};
|
||
|
||
// ========== 工具函数 ==========
|
||
|