using System.Collections.Generic; using UnityEngine; public partial class HeroInfo { // 武将服务器唯一ID public long sid; // 武将配置表ID public int heroId { get { return itemHero.config.ID; } } // 武将等级 public int heroLevel; // 武将星级 public int heroStar; // 武将突破等级 public int breakLevel; // 武将觉醒等级 public int awakeLevel; public HeroCountry heroCountry { get { return (HeroCountry)heroConfig.Country; } } public int Quality { get { return heroConfig.Quality; } } public readonly ItemModel itemHero; public readonly CB122_tagSCHeroInfo.tagSCHero scHeroInfo; // 武将配置 public HeroConfig heroConfig; // 觉醒配置 public HeroAwakeConfig awakeConfig; // 突破配置 public HeroBreakConfig breakConfig; // 羁绊配置 public HeroFetterConfig fetterConfig; // 品质觉醒配置 public HeroQualityAwakeConfig qualityAwakeConfig; // 品质配置 public HeroQualityConfig qualityConfig; // 品质突破配置 public HeroQualityBreakConfig qualityBreakConfig; public List fetterInfoList = new List(); public List talentList = new List(); public HeroInfo(CB122_tagSCHeroInfo.tagSCHero _scHeroInfo, ItemModel _itemHero) { scHeroInfo = _scHeroInfo; itemHero = _itemHero; InitConfigs(); // HeroConfigUtility // 70 # 英雄等级 heroLevel = itemHero.GetUseData(70)[0]; // 72 # 英雄星级 heroStar = itemHero.GetUseData(72)[0]; // 74 # 英雄突破等级 breakLevel = itemHero.GetUseData(74)[0]; // 76 # 英雄觉醒等级 awakeLevel = itemHero.GetUseData(76)[0]; // 78 # 英雄使用的皮肤索引 SkinIndex = itemHero.GetUseData(78)[0]; // 71 # 英雄天赋ID列表 List talentSkillList = itemHero.GetUseData(71); // 73 # 英雄天赋ID等级列表,对应71天赋ID的等级 List talentLvList = itemHero.GetUseData(73); // 75 # 英雄天赋洗炼锁定索引列表,对应71天赋ID索引 List talentLockList = itemHero.GetUseData(75); if (talentLockList.Count != talentLvList.Count || talentLvList.Count != talentSkillList.Count) { Debug.LogError("天赋ID列表及后续的数据数量没对上"); } // 天赋 talentList.Clear(); for (int i = 0; i < talentSkillList.Count; i++) { talentList.Add(new HeroTalentInfo(this, talentSkillList[i], talentLvList[i], talentLockList[i])); } // 羁绊 fetterInfoList.Clear(); for (int i = 0; i < heroConfig.FetterIDList.Length; i++) { fetterInfoList.Add(new HeroFetterInfo(this, heroConfig.FetterIDList[i])); } // 77 # 英雄天赋洗炼随机ID列表 // 79 # 英雄觉醒时随机天赋选项ID列表 // 80 # 主阵型上阵位置 } protected void InitConfigs() { // 武将配置 heroConfig = HeroConfig.Get(heroId); // 觉醒配置 (满级为空) awakeConfig = HeroAwakeConfig.GetHeroAwakeConfig(heroId, awakeLevel); // 突破配置 breakConfig = HeroBreakConfig.GetHeroBreakConfig(heroId, breakLevel); // 羁绊配置 可能需要fetterid 去检索效率太低 // fetterConfig; // 品质觉醒配置 qualityAwakeConfig = HeroQualityAwakeConfig.GetQualityAwakeConfig(Quality, awakeLevel); // 品质配置 qualityConfig = HeroQualityConfig.Get(Quality); // 品质突破配置 qualityBreakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(Quality, awakeLevel); } public int GetInheritRate(HeroAttrType attrType) { return heroConfig.GetInheritPercent(attrType); } }