Files
heros/assets/script/game/common/config/TalentSet.ts
2025-07-29 17:08:42 +08:00

266 lines
13 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 { BuffAttr } from "./SkillSet"
// 天赋品质枚举
export enum TalentQuality {
BLUE = 3, // 蓝色品质
PURPLE = 4, // 紫色品质
}
// 天赋类型枚举
export enum TalentType {
ATK = 1, // 攻击力
CRITICAL = 2, // 暴击率
CRITICAL_DMG = 3, // 暴击伤害
DODGE = 4, // 闪避
ATTACK_COUNT = 5, // 攻击次数
HP = 6, // 生命值
DEF = 7, // 免伤
PUNCTURE = 8, // 普通攻击穿透
ATK_CD = 9, // 攻击加速
SKILL_CD = 10, // 技能加速
FROST_RATIO = 11, // 冰冻概率
KNOCKBACK = 12, // 击退概率
STUN_RATTO = 13, // 击晕概率
REFLECT = 14, // 反伤
LIFESTEAL = 15, // 吸血
}
// 天赋配置接口
export interface TalentConfig {
uuid: number;
name: string;
path: string;
type: TalentType;
quality: TalentQuality;
buffType: BuffAttr;
value: number;
info: string;
icon?: string;
}
export const TalentSlot = {
0:"tal1",
1:"tal2",
2:"tal3",
3:"tal4",
4:"tal5",
5:"tal6",
}
// 天赋列表配置
export const TalentList: { [key: number]: TalentConfig } = {
// ==================== 蓝色品质天赋 ====================
1001: {uuid:1001,name:"攻击强化",path:"3063",type:TalentType.ATK,quality:TalentQuality.BLUE,buffType:BuffAttr.ATK,value:30,info:"攻击力+30%"},
1002: {uuid:1002,name:"暴击强化",path:"3063",type:TalentType.CRITICAL,quality:TalentQuality.BLUE,buffType:BuffAttr.CRITICAL,value:15,info:"暴击率+15%"},
1003: {uuid:1003,name:"暴击伤害强化",path:"3063",type:TalentType.CRITICAL_DMG,quality:TalentQuality.BLUE,buffType:BuffAttr.CRITICAL_DMG,value:30,info:"暴击伤害+30%"},
1004: {uuid:1004,name:"闪避强化",path:"3063",type:TalentType.DODGE,quality:TalentQuality.BLUE,buffType:BuffAttr.DODGE,value:9,info:"闪避率+9%"},
1005: {uuid:1005,name:"多重攻击",path:"3063",type:TalentType.ATTACK_COUNT,quality:TalentQuality.BLUE,buffType:BuffAttr.DEBUFF_COUNT,value:1,info:"攻击次数+1伤害减60%"},
1006: {uuid:1006,name:"生命强化",path:"3063",type:TalentType.HP,quality:TalentQuality.BLUE,buffType:BuffAttr.HP,value:60,info:"生命值+60%"},
1007: {uuid:1007,name:"免伤强化",path:"3063",type:TalentType.DEF,quality:TalentQuality.BLUE,buffType:BuffAttr.DEF,value:9,info:"免伤+9%"},
1008: {uuid:1008,name:"穿透强化",path:"3063",type:TalentType.PUNCTURE,quality:TalentQuality.BLUE,buffType:BuffAttr.PUNCTURE,value:1,info:"普通攻击穿透+1"},
1009: {uuid:1009,name:"攻击加速",path:"3063",type:TalentType.ATK_CD,quality:TalentQuality.BLUE,buffType:BuffAttr.ATK_CD,value:24,info:"攻击速度+24%"},
1010: {uuid:1010,name:"技能加速",path:"3063",type:TalentType.SKILL_CD,quality:TalentQuality.BLUE,buffType:BuffAttr.SKILL_CD,value:24,info:"技能冷却缩减+24%"},
1011: {uuid:1011,name:"冰冻强化",path:"3063",type:TalentType.FROST_RATIO,quality:TalentQuality.BLUE,buffType:BuffAttr.FROST_RATIO,value:6,info:"冰冻概率+6%"},
1012: {uuid:1012,name:"击退强化",path:"3063",type:TalentType.KNOCKBACK,quality:TalentQuality.BLUE,buffType:BuffAttr.KNOCKBACK,value:6,info:"击退概率+6%"},
1013: {uuid:1013,name:"击晕强化",path:"3063",type:TalentType.STUN_RATTO,quality:TalentQuality.BLUE,buffType:BuffAttr.STUN_RATTO,value:6,info:"击晕概率+6%"},
1014: {uuid:1014,name:"反伤强化",path:"3063",type:TalentType.REFLECT,quality:TalentQuality.BLUE,buffType:BuffAttr.REFLECT,value:12,info:"反伤+12%"},
1015: {uuid:1015,name:"吸血强化",path:"3063",type:TalentType.LIFESTEAL,quality:TalentQuality.BLUE,buffType:BuffAttr.POWER_UP,value:12,info:"吸血+12%"},
// ==================== 紫色品质天赋 ====================
2001: {uuid:2001,name:"攻击大师",path:"3063",type:TalentType.ATK,quality:TalentQuality.PURPLE,buffType:BuffAttr.ATK,value:50,info:"攻击力+50%"},
2002: {uuid:2002,name:"暴击大师",path:"3063",type:TalentType.CRITICAL,quality:TalentQuality.PURPLE,buffType:BuffAttr.CRITICAL,value:25,info:"暴击率+25%"},
2003: {uuid:2003,name:"暴击伤害大师",path:"3063",type:TalentType.CRITICAL_DMG,quality:TalentQuality.PURPLE,buffType:BuffAttr.CRITICAL_DMG,value:50,info:"暴击伤害+50%"},
2004: {uuid:2004,name:"闪避大师",path:"3063",type:TalentType.DODGE,quality:TalentQuality.PURPLE,buffType:BuffAttr.DODGE,value:15,info:"闪避率+15%"},
2005: {uuid:2005,name:"多重攻击大师",path:"3063",type:TalentType.ATTACK_COUNT,quality:TalentQuality.PURPLE,buffType:BuffAttr.DEBUFF_COUNT,value:1,info:"攻击次数+1伤害减40%"},
2006: {uuid:2006,name:"生命大师",path:"3063",type:TalentType.HP,quality:TalentQuality.PURPLE,buffType:BuffAttr.HP,value:100,info:"生命值+100%"},
2007: {uuid:2007,name:"免伤大师",path:"3063",type:TalentType.DEF,quality:TalentQuality.PURPLE,buffType:BuffAttr.DEF,value:15,info:"免伤+15%"},
2008: {uuid:2008,name:"穿透大师",path:"3063",type:TalentType.PUNCTURE,quality:TalentQuality.PURPLE,buffType:BuffAttr.PUNCTURE,value:1,info:"普通攻击穿透+1"},
2009: {uuid:2009,name:"攻击加速大师",path:"3063",type:TalentType.ATK_CD,quality:TalentQuality.PURPLE,buffType:BuffAttr.ATK_CD,value:40,info:"攻击速度+40%"},
2010: {uuid:2010,name:"技能加速大师",path:"3063",type:TalentType.SKILL_CD,quality:TalentQuality.PURPLE,buffType:BuffAttr.SKILL_CD,value:40,info:"技能冷却缩减+40%"},
2011: {uuid:2011,name:"冰冻大师",path:"3063",type:TalentType.FROST_RATIO,quality:TalentQuality.PURPLE,buffType:BuffAttr.FROST_RATIO,value:10,info:"冰冻概率+10%"},
2012: {uuid:2012,name:"击退大师",path:"3063",type:TalentType.KNOCKBACK,quality:TalentQuality.PURPLE,buffType:BuffAttr.KNOCKBACK,value:10,info:"击退概率+10%"},
2013: {uuid:2013,name:"击晕大师",path:"3063",type:TalentType.STUN_RATTO,quality:TalentQuality.PURPLE,buffType:BuffAttr.STUN_RATTO,value:10,info:"击晕概率+10%"},
2014: {uuid:2014,name:"反伤大师",path:"3063",type:TalentType.REFLECT,quality:TalentQuality.PURPLE,buffType:BuffAttr.REFLECT,value:20,info:"反伤+20%"},
2015: {uuid:2015,name:"吸血大师",path:"3063",type:TalentType.LIFESTEAL,quality:TalentQuality.PURPLE,buffType:BuffAttr.POWER_UP,value:20,info:"吸血+20%"},
};
// 获取天赋配置
export const getTalentConfig = (uuid: number): TalentConfig | null => {
return TalentList[uuid] || null;
};
// 获取指定品质的所有天赋
export const getTalentsByQuality = (quality: TalentQuality): TalentConfig[] => {
return Object.values(TalentList).filter(talent => talent.quality === quality);
};
// 获取指定类型的所有天赋
export const getTalentsByType = (type: TalentType): TalentConfig[] => {
return Object.values(TalentList).filter(talent => talent.type === type);
};
// 获取所有蓝色品质天赋
export const getBlueTalents = (): TalentConfig[] => {
return getTalentsByQuality(TalentQuality.BLUE);
};
// 获取所有紫色品质天赋
export const getPurpleTalents = (): TalentConfig[] => {
return getTalentsByQuality(TalentQuality.PURPLE);
};
// 天赋流派配置
export const TalentBuilds = {
// 攻击系流派
HIGH_ATK_SPEED: {
name: "高攻高速流",
description: "4个高攻 + 2个高攻速",
talents: [1001, 1001, 1001, 1001, 1009, 1009],
blueTalents: [1001, 1001, 1001, 1001, 1009, 1009],
purpleTalents: [2001, 2001, 2001, 2001, 2009, 2009]
},
HIGH_ATK_CRIT: {
name: "高攻高暴击流",
description: "4个高攻 + 2个高暴击",
talents: [1001, 1001, 1001, 1001, 1002, 1002],
blueTalents: [1001, 1001, 1001, 1001, 1002, 1002],
purpleTalents: [2001, 2001, 2001, 2001, 2002, 2002]
},
CRIT_BUILD: {
name: "暴击流",
description: "4个暴击 + 2个暴击加成 (100%暴击率)",
talents: [1002, 1002, 1002, 1002, 1003, 1003],
blueTalents: [1002, 1002, 1002, 1002, 1003, 1003],
purpleTalents: [2002, 2002, 2002, 2002, 2003, 2003]
},
MULTI_ATTACK: {
name: "多段攻击流",
description: "4个攻击次数+1 + 2个攻击加速 (高频低伤)",
talents: [1005, 1005, 1005, 1005, 1009, 1009],
blueTalents: [1005, 1005, 1005, 1005, 1009, 1009],
purpleTalents: [2005, 2005, 2005, 2005, 2009, 2009]
},
// 防御系流派
TANK_BUILD: {
name: "坦克流",
description: "4个HP + 2个免伤 (超高生存)",
talents: [1006, 1006, 1006, 1006, 1007, 1007],
blueTalents: [1006, 1006, 1006, 1006, 1007, 1007],
purpleTalents: [2006, 2006, 2006, 2006, 2007, 2007]
},
DODGE_BUILD: {
name: "闪避流",
description: "4个闪避 + 2个HP (60%闪避率)",
talents: [1004, 1004, 1004, 1004, 1006, 1006],
blueTalents: [1004, 1004, 1004, 1004, 1006, 1006],
purpleTalents: [2004, 2004, 2004, 2004, 2006, 2006]
},
REFLECT_BUILD: {
name: "反伤流",
description: "4个反伤 + 2个HP (80%反伤)",
talents: [1014, 1014, 1014, 1014, 1006, 1006],
blueTalents: [1014, 1014, 1014, 1014, 1006, 1006],
purpleTalents: [2014, 2014, 2014, 2014, 2006, 2006]
},
LIFESTEAL_BUILD: {
name: "吸血流",
description: "4个吸血 + 2个攻击 (80%吸血)",
talents: [1015, 1015, 1015, 1015, 1001, 1001],
blueTalents: [1015, 1015, 1015, 1015, 1001, 1001],
purpleTalents: [2015, 2015, 2015, 2015, 2001, 2001]
},
// 控制系流派
FROST_CONTROL: {
name: "冰冻控制流",
description: "4个冰冻概率 + 2个技能加速 (40%冰冻率)",
talents: [1011, 1011, 1011, 1011, 1010, 1010],
blueTalents: [1011, 1011, 1011, 1011, 1010, 1010],
purpleTalents: [2011, 2011, 2011, 2011, 2010, 2010]
},
KNOCKBACK_CONTROL: {
name: "击退控制流",
description: "4个击退概率 + 2个攻击加速 (40%击退率)",
talents: [1012, 1012, 1012, 1012, 1009, 1009],
blueTalents: [1012, 1012, 1012, 1012, 1009, 1009],
purpleTalents: [2012, 2012, 2012, 2012, 2009, 2009]
},
STUN_CONTROL: {
name: "击晕控制流",
description: "4个击晕概率 + 2个攻击 (40%击晕率)",
talents: [1013, 1013, 1013, 1013, 1001, 1001],
blueTalents: [1013, 1013, 1013, 1013, 1001, 1001],
purpleTalents: [2013, 2013, 2013, 2013, 2001, 2001]
},
// 技能系流派
SKILL_BUILD: {
name: "技能流",
description: "4个技能加速 + 2个攻击 (160%技能加速)",
talents: [1010, 1010, 1010, 1010, 1001, 1001],
blueTalents: [1010, 1010, 1010, 1010, 1001, 1001],
purpleTalents: [2010, 2010, 2010, 2010, 2001, 2001]
},
// 混合流派
BALANCED_BUILD: {
name: "攻防平衡流",
description: "2个攻击 + 2个HP + 2个免伤",
talents: [1001, 1001, 1006, 1006, 1007, 1007],
blueTalents: [1001, 1001, 1006, 1006, 1007, 1007],
purpleTalents: [2001, 2001, 2006, 2006, 2007, 2007]
},
SPEED_BUILD: {
name: "速度流",
description: "4个攻击加速 + 2个技能加速 (全方位加速)",
talents: [1009, 1009, 1009, 1009, 1010, 1010],
blueTalents: [1009, 1009, 1009, 1009, 1010, 1010],
purpleTalents: [2009, 2009, 2009, 2009, 2010, 2010]
},
PENETRATION_CRIT: {
name: "穿透暴击流",
description: "2个穿透 + 2个暴击 + 2个暴击加成",
talents: [1008, 1008, 1002, 1002, 1003, 1003],
blueTalents: [1008, 1008, 1002, 1002, 1003, 1003],
purpleTalents: [2008, 2008, 2002, 2002, 2003, 2003]
},
SURVIVAL_DPS: {
name: "生存输出流",
description: "2个攻击 + 2个吸血 + 2个闪避",
talents: [1001, 1001, 1015, 1015, 1004, 1004],
blueTalents: [1001, 1001, 1015, 1015, 1004, 1004],
purpleTalents: [2001, 2001, 2015, 2015, 2004, 2004]
}
};
// 获取推荐天赋流派
export const getRecommendedBuilds = () => {
return Object.values(TalentBuilds);
};
// 获取指定流派的天赋配置
export const getBuildTalents = (buildName: string): number[] => {
const build = TalentBuilds[buildName as keyof typeof TalentBuilds];
return build ? build.talents : [];
};
// 天赋系统配置
export const TalentSystemConfig = {
maxTalents: 6, // 玩家最多拥有6个天赋
blueQualityMultiplier: 0.6, // 蓝色品质为基础值的60%降低40%
purpleQualityMultiplier: 1.0, // 紫色品质为基础值(最高品质)
talentCost: {
[TalentQuality.BLUE]: 1, // 蓝色天赋消耗1点
[TalentQuality.PURPLE]: 2 // 紫色天赋消耗2点
}
};