125 lines
5.7 KiB
TypeScript
125 lines
5.7 KiB
TypeScript
import { count } from "console";
|
||
import { Attrs } from "./HeroAttrs";
|
||
|
||
/**
|
||
* 天赋类型枚举,也是触发条件
|
||
*/
|
||
export enum TriType {
|
||
LUP = 1, // 等级升触发
|
||
ATK = 2, //普通攻击触发
|
||
DMG = 3, // 受伤触发
|
||
SKILL = 4, // 技能触发
|
||
HPL = 5, // 失去生命值触发
|
||
HPA = 6, // 获得生命值触发
|
||
INIT = 7, // 初始触发,如:多1个技能
|
||
DEAD = 8 // 基于死亡触发
|
||
}
|
||
|
||
|
||
|
||
export enum TalEffet {
|
||
DMG=1, // 伤害
|
||
HP=2, // 回血 百分比
|
||
MP=3, //回蓝 百分比
|
||
BUFF = 4, // 暴击率,闪避率等,可叠加的触发后清零
|
||
STATS=5, // 状态
|
||
WFUNY=6, // 风怒
|
||
SPLASH=7, // 溅射
|
||
D_SKILL=8, //两次技能
|
||
SHIELD=9, // 护盾
|
||
LDMG=10, // 减伤
|
||
}
|
||
|
||
export enum TalTarget {
|
||
SELF = 1, // 自己触发
|
||
ENEMY = 2, // 敌人触发
|
||
}
|
||
|
||
export enum TalAttrs {
|
||
NON=0,
|
||
FREEZE_CHANCE=Attrs.FREEZE_CHANCE, // 冰冻概率
|
||
STUN_CHANCE=Attrs.STUN_CHANCE, // 冰冻概率
|
||
BACK_CHANCE=Attrs.BACK_CHANCE, // 击退概率
|
||
SILENCE_CHANCE=Attrs.SILENCE_CHANCE, // 沉默概率
|
||
CRITICAL=Attrs.CRITICAL, // 暴击率
|
||
AP=Attrs.AP, // 攻击力
|
||
MP=Attrs.MAP, // 魔法
|
||
}
|
||
/**
|
||
* 天赋配置接口
|
||
* 定义一个完整的天赋效果
|
||
*/
|
||
|
||
export interface ItalConf {
|
||
uuid: number; // 天赋ID
|
||
name: string; // 天赋名称
|
||
triType: TriType;
|
||
target: TalTarget;
|
||
effet: TalEffet;
|
||
value: number; // 触发的效果值(如增加10%攻击力, 触发的技能uuid,增加1个技能uuid)
|
||
attrs?:TalAttrs //触发的attrs效果的对应attrs
|
||
Trigger:number //触发值
|
||
desc: string; // 天赋描述(说明触发条件和效果)
|
||
}
|
||
|
||
// ========== 天赋配置表 ==========
|
||
|
||
/**
|
||
* 天赋配置表 - 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> = {
|
||
/*** 普通攻击触发 ***/
|
||
7001:{uuid:7001,name:"风怒",triType:TriType.ATK,Trigger:3,target:TalTarget.ENEMY,effet:TalEffet.WFUNY,value:50,attrs:TalAttrs.NON,
|
||
desc:"普通攻击3次后, 立即给与目标150%伤害的额外打击"},
|
||
7002:{uuid:7002,name:"溅射",triType:TriType.ATK,Trigger:3,target:TalTarget.ENEMY,effet:TalEffet.SPLASH,value:50,attrs:TalAttrs.NON,
|
||
desc:"普通攻击3次后, 会对目标100码内的敌人造成30%伤害"},
|
||
7003:{uuid:7003,name:"回血",triType:TriType.ATK,Trigger:3,target:TalTarget.SELF,effet:TalEffet.HP,value:1,attrs:TalAttrs.NON,
|
||
desc:"普通攻击3次后, 会回复10%的生命值"},
|
||
7004:{uuid:7004,name:"回蓝",triType:TriType.ATK,Trigger:3,target:TalTarget.SELF,effet:TalEffet.MP,value:1,attrs:TalAttrs.NON,
|
||
desc:"普通攻击3次后, 会回复10%的蓝值"},
|
||
7005:{uuid:7005,name:"冰冻",triType:TriType.ATK,Trigger:3,target:TalTarget.ENEMY,effet:TalEffet.BUFF,value:5,attrs:TalAttrs.FREEZE_CHANCE,
|
||
desc:"普通攻击3次后, 获得5%的冻结率"},
|
||
7006:{uuid:7006,name:"沉默",triType:TriType.ATK,Trigger:3,target:TalTarget.ENEMY,effet:TalEffet.BUFF,value:5,attrs:TalAttrs.SILENCE_CHANCE,
|
||
desc:"普通攻击3次后, 获得5%的沉默率"},
|
||
7007:{uuid:7007,name:"击退",triType:TriType.ATK,Trigger:3,target:TalTarget.ENEMY,effet:TalEffet.BUFF,value:5,attrs:TalAttrs.BACK_CHANCE,
|
||
desc:"普通攻击3次后, 获得5%的击退率"},
|
||
7008:{uuid:7008,name:"会心",triType:TriType.ATK,Trigger:3,target:TalTarget.SELF,effet:TalEffet.BUFF,value:5,attrs:TalAttrs.CRITICAL,
|
||
desc:"普通攻击3次后, 获得5%的暴击率"},
|
||
7009:{uuid:7009,name:"眩晕",triType:TriType.ATK,Trigger:3,target:TalTarget.ENEMY,effet:TalEffet.BUFF,value:5,attrs:TalAttrs.STUN_CHANCE,
|
||
desc:"普通攻击3次后, 获得5%的眩晕率"},
|
||
7010:{uuid:7010,name:"熟练",triType:TriType.ATK,Trigger:10,target:TalTarget.SELF,effet:TalEffet.D_SKILL,value:0,attrs:TalAttrs.NON,
|
||
desc:"普通攻击10次后, 下次一般技能额外释放1次,伤害100%"},
|
||
|
||
/*** 受伤触发 ***/
|
||
7101:{uuid:7101,name:"反击",triType:TriType.DMG,Trigger:3,target:TalTarget.ENEMY,effet:TalEffet.DMG,value:50,attrs:TalAttrs.NON,
|
||
desc:"被攻击3次后, 给于目标50%的伤害"},
|
||
7102:{uuid:7102,name:"护盾",triType:TriType.DMG,Trigger:3,target:TalTarget.SELF,effet:TalEffet.SHIELD,value:20,attrs:TalAttrs.NON,
|
||
desc:"被攻击3次后, 获得20%的生命值护盾"},
|
||
7103:{uuid:7103,name:"减伤",triType:TriType.DMG,Trigger:3,target:TalTarget.ENEMY,effet:TalEffet.LDMG,value:50,attrs:TalAttrs.NON,
|
||
desc:"被攻击3次后, 下1次伤害减50%"},
|
||
|
||
|
||
/*** 失去血量触发 ***/ //需要重新设计,触发类型
|
||
7201:{uuid:7201,name:"背水",triType:TriType.HPL,Trigger:50,target:TalTarget.SELF,effet:TalEffet.BUFF,value:10,attrs:TalAttrs.AP,
|
||
desc:"每失去50%生命值,获得下10次普通攻击暴击"},
|
||
|
||
/*** 升级触发 ***/ //需要重新设计,触发类型
|
||
7301:{uuid:7301,name:"勤勉",triType:TriType.LUP,Trigger:1,target:TalTarget.SELF,effet:TalEffet.BUFF,value:5,attrs:TalAttrs.AP,
|
||
desc:"每升1级,获得下5次技能暴击"},
|
||
|
||
};
|
||
|
||
// ========== 工具函数 ==========
|
||
|