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; type: TalentType; quality: TalentQuality; buffType: BuffAttr; value: number; cost: number; maxLevel: number; description: string; icon?: string; } // 天赋列表配置 export const TalentList: { [key: number]: TalentConfig } = { // ==================== 蓝色品质天赋 ==================== // 攻击系 1001: { uuid: 1001, name: "攻击强化", type: TalentType.ATK, quality: TalentQuality.BLUE, buffType: BuffAttr.ATK, value: 50, cost: 1, maxLevel: 1, description: "攻击力+50%" }, 1002: { uuid: 1002, name: "暴击强化", type: TalentType.CRITICAL, quality: TalentQuality.BLUE, buffType: BuffAttr.CRITICAL, value: 25, cost: 1, maxLevel: 1, description: "暴击率+25%" }, 1003: { uuid: 1003, name: "暴击伤害强化", type: TalentType.CRITICAL_DMG, quality: TalentQuality.BLUE, buffType: BuffAttr.CRITICAL_DMG, value: 50, cost: 1, maxLevel: 1, description: "暴击伤害+50%" }, 1004: { uuid: 1004, name: "闪避强化", type: TalentType.DODGE, quality: TalentQuality.BLUE, buffType: BuffAttr.DODGE, value: 15, cost: 1, maxLevel: 1, description: "闪避率+15%" }, 1005: { uuid: 1005, name: "多重攻击", type: TalentType.ATTACK_COUNT, quality: TalentQuality.BLUE, buffType: BuffAttr.DEBUFF_COUNT, // 使用debuff_count来表示攻击次数 value: 1, cost: 1, maxLevel: 1, description: "攻击次数+1,伤害减40%" }, 1006: { uuid: 1006, name: "生命强化", type: TalentType.HP, quality: TalentQuality.BLUE, buffType: BuffAttr.HP, value: 100, cost: 1, maxLevel: 1, description: "生命值+100%" }, 1007: { uuid: 1007, name: "免伤强化", type: TalentType.DEF, quality: TalentQuality.BLUE, buffType: BuffAttr.DEF, value: 15, cost: 1, maxLevel: 1, description: "免伤+15%" }, 1008: { uuid: 1008, name: "穿透强化", type: TalentType.PUNCTURE, quality: TalentQuality.BLUE, buffType: BuffAttr.PUNCTURE, value: 1, cost: 1, maxLevel: 1, description: "普通攻击穿透+1" }, 1009: { uuid: 1009, name: "攻击加速", type: TalentType.ATK_CD, quality: TalentQuality.BLUE, buffType: BuffAttr.ATK_CD, value: 40, cost: 1, maxLevel: 1, description: "攻击速度+40%" }, 1010: { uuid: 1010, name: "技能加速", type: TalentType.SKILL_CD, quality: TalentQuality.BLUE, buffType: BuffAttr.SKILL_CD, value: 40, cost: 1, maxLevel: 1, description: "技能冷却缩减+40%" }, 1011: { uuid: 1011, name: "冰冻强化", type: TalentType.FROST_RATIO, quality: TalentQuality.BLUE, buffType: BuffAttr.FROST_RATIO, value: 10, cost: 1, maxLevel: 1, description: "冰冻概率+10%" }, 1012: { uuid: 1012, name: "击退强化", type: TalentType.KNOCKBACK, quality: TalentQuality.BLUE, buffType: BuffAttr.KNOCKBACK, value: 10, cost: 1, maxLevel: 1, description: "击退概率+10%" }, 1013: { uuid: 1013, name: "击晕强化", type: TalentType.STUN_RATTO, quality: TalentQuality.BLUE, buffType: BuffAttr.STUN_RATTO, value: 10, cost: 1, maxLevel: 1, description: "击晕概率+10%" }, 1014: { uuid: 1014, name: "反伤强化", type: TalentType.REFLECT, quality: TalentQuality.BLUE, buffType: BuffAttr.REFLECT, value: 20, cost: 1, maxLevel: 1, description: "反伤+20%" }, 1015: { uuid: 1015, name: "吸血强化", type: TalentType.LIFESTEAL, quality: TalentQuality.BLUE, buffType: BuffAttr.POWER_UP, // 使用power_up来表示吸血效果 value: 20, cost: 1, maxLevel: 1, description: "吸血+20%" }, // ==================== 紫色品质天赋 ==================== // 紫色品质比蓝色品质强15% 2001: { uuid: 2001, name: "攻击大师", type: TalentType.ATK, quality: TalentQuality.PURPLE, buffType: BuffAttr.ATK, value: 57, // 50 * 1.15 cost: 2, maxLevel: 1, description: "攻击力+57%" }, 2002: { uuid: 2002, name: "暴击大师", type: TalentType.CRITICAL, quality: TalentQuality.PURPLE, buffType: BuffAttr.CRITICAL, value: 29, // 25 * 1.15 cost: 2, maxLevel: 1, description: "暴击率+29%" }, 2003: { uuid: 2003, name: "暴击伤害大师", type: TalentType.CRITICAL_DMG, quality: TalentQuality.PURPLE, buffType: BuffAttr.CRITICAL_DMG, value: 57, // 50 * 1.15 cost: 2, maxLevel: 1, description: "暴击伤害+57%" }, 2004: { uuid: 2004, name: "闪避大师", type: TalentType.DODGE, quality: TalentQuality.PURPLE, buffType: BuffAttr.DODGE, value: 17, // 15 * 1.15 cost: 2, maxLevel: 1, description: "闪避率+17%" }, 2005: { uuid: 2005, name: "多重攻击大师", type: TalentType.ATTACK_COUNT, quality: TalentQuality.PURPLE, buffType: BuffAttr.DEBUFF_COUNT, value: 1, cost: 2, maxLevel: 1, description: "攻击次数+1,伤害减35%" // 伤害减幅也相应减少 }, 2006: { uuid: 2006, name: "生命大师", type: TalentType.HP, quality: TalentQuality.PURPLE, buffType: BuffAttr.HP, value: 115, // 100 * 1.15 cost: 2, maxLevel: 1, description: "生命值+115%" }, 2007: { uuid: 2007, name: "免伤大师", type: TalentType.DEF, quality: TalentQuality.PURPLE, buffType: BuffAttr.DEF, value: 17, // 15 * 1.15 cost: 2, maxLevel: 1, description: "免伤+17%" }, 2008: { uuid: 2008, name: "穿透大师", type: TalentType.PUNCTURE, quality: TalentQuality.PURPLE, buffType: BuffAttr.PUNCTURE, value: 1, cost: 2, maxLevel: 1, description: "普通攻击穿透+1,伤害不减" }, 2009: { uuid: 2009, name: "攻击加速大师", type: TalentType.ATK_CD, quality: TalentQuality.PURPLE, buffType: BuffAttr.ATK_CD, value: 46, // 40 * 1.15 cost: 2, maxLevel: 1, description: "攻击速度+46%" }, 2010: { uuid: 2010, name: "技能加速大师", type: TalentType.SKILL_CD, quality: TalentQuality.PURPLE, buffType: BuffAttr.SKILL_CD, value: 46, // 40 * 1.15 cost: 2, maxLevel: 1, description: "技能冷却缩减+46%" }, 2011: { uuid: 2011, name: "冰冻大师", type: TalentType.FROST_RATIO, quality: TalentQuality.PURPLE, buffType: BuffAttr.FROST_RATIO, value: 12, // 10 * 1.15 cost: 2, maxLevel: 1, description: "冰冻概率+12%" }, 2012: { uuid: 2012, name: "击退大师", type: TalentType.KNOCKBACK, quality: TalentQuality.PURPLE, buffType: BuffAttr.KNOCKBACK, value: 12, // 10 * 1.15 cost: 2, maxLevel: 1, description: "击退概率+12%" }, 2013: { uuid: 2013, name: "击晕大师", type: TalentType.STUN_RATTO, quality: TalentQuality.PURPLE, buffType: BuffAttr.STUN_RATTO, value: 12, // 10 * 1.15 cost: 2, maxLevel: 1, description: "击晕概率+12%" }, 2014: { uuid: 2014, name: "反伤大师", type: TalentType.REFLECT, quality: TalentQuality.PURPLE, buffType: BuffAttr.REFLECT, value: 23, // 20 * 1.15 cost: 2, maxLevel: 1, description: "反伤+23%" }, 2015: { uuid: 2015, name: "吸血大师", type: TalentType.LIFESTEAL, quality: TalentQuality.PURPLE, buffType: BuffAttr.POWER_UP, value: 23, // 20 * 1.15 cost: 2, maxLevel: 1, description: "吸血+23%" }, }; // 获取天赋配置 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: 1.0, // 蓝色品质基础倍率 purpleQualityMultiplier: 1.15, // 紫色品质比蓝色强15% talentCost: { [TalentQuality.BLUE]: 1, // 蓝色天赋消耗1点 [TalentQuality.PURPLE]: 2 // 紫色天赋消耗2点 } };