import { HType, calculateBaseAttributes, calculateAttributeInfluences } from "../common/config/heroSet"; import { Attrs } from "../common/config/SkillSet"; /** * 英雄属性计算器使用示例 */ export class AttributeExample { /** * 示例:计算指定类型和等级的英雄属性 * @param heroType 英雄类型 * @param level 英雄等级 */ static calculateHeroAttributes(heroType: HType, level: number) { // 1. 计算基础属性值 const baseAttributes = calculateBaseAttributes(heroType, level); console.log("基础属性:", baseAttributes); // 2. 计算基础属性对战斗属性的影响 const attributeInfluences = calculateAttributeInfluences(baseAttributes); console.log("属性影响:", attributeInfluences); // 3. 输出特定属性的影响值 console.log(`攻击力加成: ${attributeInfluences[Attrs.AP]}`); console.log(`生命值加成: ${attributeInfluences[Attrs.HP_MAX]}`); console.log(`魔法攻击力加成: ${attributeInfluences[Attrs.MAP]}`); return { baseAttributes, attributeInfluences }; } /** * 示例:为英雄应用属性影响 * @param hero 英雄对象 * @param level 英雄等级 */ static applyAttributesToHero(hero: any, level: number) { // 计算基础属性 const baseAttributes = calculateBaseAttributes(hero.type, level); // 计算属性影响 const attributeInfluences = calculateAttributeInfluences(baseAttributes); // 应用属性影响到英雄 hero.ap += attributeInfluences[Attrs.AP]; hero.hp += attributeInfluences[Attrs.HP_MAX]; hero.map += attributeInfluences[Attrs.MAP]; hero.mp += attributeInfluences[Attrs.MP_MAX]; hero.mdef += attributeInfluences[Attrs.MDEF]; hero.as += attributeInfluences[Attrs.AS]; hero.dodge += attributeInfluences[Attrs.DODGE]; hero.hit += attributeInfluences[Attrs.HIT]; hero.critical += attributeInfluences[Attrs.CRITICAL]; hero.lifesteal += attributeInfluences[Attrs.LIFESTEAL]; return hero; } } // 使用示例 // const warriorAttrs = AttributeExample.calculateHeroAttributes(HType.warrior, 10); // const mageAttrs = AttributeExample.calculateHeroAttributes(HType.mage, 10);