import { count } from "console"; import { Attrs, BType } from "./HeroAttrs"; import { CardKind } from "./GameSet"; /** * 天赋类型枚举,也是触发条件 */ export enum TriType { ATK = 1, // 等级升触发 DMG = 2, //普通攻击触发 ATKED=3, SKILL = 4, // 技能触发 HPL = 6, // 失去生命值触发 HPA = 7, // 获得生命值触发 INIT = 8, // 初始触发,如:多1个技能 DEAD = 9, // 基于死亡触发 } export enum TalEffet { ATK_DMG=1, // 伤害 次数+伤害加成,如额外5次 伤害+20% SKILL_DMG=2, // 技能伤害 次数+伤害加成,如额外5次 伤害+20% DEF=10, // 减伤 次数+减伤加成,如额外5次 伤害-20% THORNS=14, //反伤 百分比 次数+反伤加成,如额外5次 反伤-20% /////////////////////////////////////////////////////////////////////// HP=3, // 回血 百分比 直接触发,回血20% SHIELD=9, // 护盾 直接触发,获得20%的生命值护盾 //////////////////////////////////////////////////////////////////////// BUFF = 5, // 数值叠加 触发后清零: 暴击率,闪避率等,触发后效果取消 //////////////////////////////////////////////////////////////////////////////// ATTR=6, // 属性 永久添加 WFUNY=7, // 风怒 次数 叠加 ,如额外5次 风怒 D_SKILL=8, //两次技能 次数 叠加,如额外5次 两次技能 C_MSKILL=11, // 必杀技能必暴 次数 叠加 ,如额外5次 必杀技能必暴 C_ATK=12, // 普工必爆 次数 叠加 ,如额外5次 普工必爆 C_SKILL=13, // 一般技能必暴 次数 叠加 ,如额外5次 一般技能必暴 } 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, // 攻击力 HP_MAX=Attrs.HP_MAX, // 最大生命值 THORNS=Attrs.THORNS, //反伤 百分比 REVIVE_COUNT=Attrs.REVIVE_COUNT, // 复活次数 WFUNY=Attrs.WFUNY, // 风怒 } /** * 天赋配置接口 * 定义一个完整的天赋效果 */ export interface ItalConf { uuid: number; // 天赋ID name: string; // 天赋名称 icon:string; // 天赋图标 kind:CardKind; // 天赋类型 triType: TriType; // 天赋触发类型 target: TalTarget; // 天赋触发目标 effet: TalEffet; // 天赋触发效果 vType:BType; //数值型还是百分比型 value: number; // 触发的效果值(如增加10%攻击力, 触发的技能uuid,增加1个技能uuid) attrs?:TalAttrs //触发的attrs效果的对应attrs Trigger:number //触发值 Pts:number //添加的天赋点数 CPts:number //消耗的天赋点数 desc: string; // 天赋描述(说明触发条件和效果) count: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 = { /*** 普通攻击触发 ***/ 7001:{uuid:7001,name:"风怒",icon:"7001",kind:CardKind.Atk,triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.WFUNY,vType:BType.RATIO, value:50,attrs:TalAttrs.NON, Pts:2,CPts:0,desc:"普通攻击3次后, 立即给与目标150%伤害的额外打击"}, 7003:{uuid:7003,name:"回血",icon:"7001",kind:CardKind.Atk,triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.HP,vType:BType.RATIO, value:1,attrs:TalAttrs.NON, Pts:2,CPts:0,desc:"普通攻击3次后, 会回复1%的生命值"}, 7004:{uuid:7004,name:"回血(大)",icon:"7001",kind:CardKind.Atk,triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.HP,vType:BType.RATIO, value:2,attrs:TalAttrs.NON, Pts:2,CPts:0,desc:"普通攻击5次后, 会回复2%的生命值"}, 7005:{uuid:7005,name:"冰冻",icon:"7001",kind:CardKind.Atk,triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.BUFF,vType:BType.RATIO, value:100,attrs:TalAttrs.FREEZE_CHANCE, Pts:2,CPts:0,desc:"普通攻击3次后, 下一次攻击必定冻结目标"}, 7006:{uuid:7006,name:"沉默",icon:"7001",kind:CardKind.Atk,triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.BUFF,vType:BType.RATIO, value:100,attrs:TalAttrs.SILENCE_CHANCE, Pts:2,CPts:0,desc:"普通攻击3次后, 下一次攻击必定沉默目标"}, 7007:{uuid:7007,name:"击退",icon:"7001",kind:CardKind.Atk,triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.BUFF,vType:BType.RATIO, value:100,attrs:TalAttrs.BACK_CHANCE, Pts:2,CPts:0,desc:"普通攻击3次后, 下一次攻击必定击退目标"}, 7008:{uuid:7008,name:"会心",icon:"7001",kind:CardKind.Atk,triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.BUFF,vType:BType.RATIO, value:100,attrs:TalAttrs.CRITICAL, Pts:2,CPts:0,desc:"普通攻击3次后, 下一次攻击必定获得100%的暴击率"}, 7009:{uuid:7009,name:"眩晕",icon:"7001",kind:CardKind.Atk,triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.BUFF,vType:BType.RATIO, value:100,attrs:TalAttrs.STUN_CHANCE, Pts:2,CPts:0,desc:"普通攻击3次后, 下一次攻击必定获得100%的眩晕率"}, 7010:{uuid:7010,name:"熟练",icon:"7001",kind:CardKind.Atk,triType:TriType.ATK,Trigger:10,count:1,target:TalTarget.SELF,effet:TalEffet.D_SKILL,vType:BType.RATIO, value:0,attrs:TalAttrs.NON, Pts:2,CPts:0,desc:"普通攻击10次后, 下次一般技能额外释放1次,伤害100%"}, /*** 受伤触发 ***/ 7101:{uuid:7101,name:"反击",icon:"7001",kind:CardKind.Atted,triType:TriType.ATKED,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.ATK_DMG,vType:BType.RATIO, value:50,attrs:TalAttrs.NON, Pts:2,CPts:0,desc:"被攻击3次后, 给于目标50%的伤害"}, 7102:{uuid:7102,name:"护盾",icon:"7001",kind:CardKind.Atted,triType:TriType.ATKED,Trigger:30,count:1,target:TalTarget.SELF,effet:TalEffet.SHIELD,vType:BType.RATIO, value:20,attrs:TalAttrs.NON, Pts:2,CPts:0,desc:"被攻击30次后, 获得20%的生命值护盾"}, 7103:{uuid:7103,name:"减伤",icon:"7001",kind:CardKind.Atted,triType:TriType.ATKED,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.DEF,vType:BType.RATIO, value:50,attrs:TalAttrs.NON, Pts:2,CPts:0,desc:"被攻击3次后, 下1次伤害减50%"}, 7104:{uuid:7104,name:"复苏",icon:"7001",kind:CardKind.Atted,triType:TriType.ATKED,Trigger:100,count:1,target:TalTarget.SELF,effet:TalEffet.BUFF,vType:BType.VALUE, value:1,attrs:TalAttrs.REVIVE_COUNT, Pts:2,CPts:0,desc:"被攻击100次后, 获得1次复活"}, /*** 失去血量触发 ***/ 7201:{uuid:7201,name:"背水",icon:"7001",kind:CardKind.Hp,triType:TriType.HPL,Trigger:50,count:10,target:TalTarget.SELF,effet:TalEffet.C_ATK,vType:BType.VALUE, value:0,attrs:TalAttrs.NON, Pts:2,CPts:0,desc:"每失去50%生命值,获得下10次普通攻击暴击"}, /*** 7400 回血量触发 ***/ /** 7500 一击必杀触发 */ }; export const CanSelectTalents: Record = { // 3级开放攻击类天赋 3: [7001, 7003, 7005, 7008], // 5级必出防御类 5: [7101, 7102, 7103], // 9级混合 9: [7001, 7003, 7005, 7008, 7101, 7102, 7103], // 20级终极天赋 20: [7301, 7302], // 默认全开 99: [7001, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7101, 7102, 7103, 7104, 7201, 7301, 7302] }; // ========== 工具函数 ==========