using System.Collections.Generic;
|
using UnityEngine;
|
using LitJson;
|
|
public partial class HeroInfo
|
{
|
// 武将服务器唯一ID
|
public long sid;
|
|
// 武将配置表ID
|
public int heroId
|
{
|
get
|
{
|
#if UNITY_EDITOR
|
if (null == itemHero)
|
{
|
return 520001;
|
}
|
#endif
|
|
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 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<HeroFetterInfo> fetterInfoList = new List<HeroFetterInfo>();
|
public List<HeroTalentInfo> talentList = new List<HeroTalentInfo>();
|
|
|
public HeroInfo(/*CB122_tagSCHeroInfo.tagSCHero _scHeroInfo, */ItemModel _itemHero)
|
{
|
// scHeroInfo = _scHeroInfo;
|
UpdateHero(_itemHero);
|
|
|
|
}
|
|
#if UNITY_EDITOR
|
public HeroInfo()
|
{
|
heroLevel = 1;
|
heroStar = 1;
|
breakLevel = 1;
|
awakeLevel = 1;
|
SkinIndex = 0;
|
heroConfig = HeroConfig.Get(heroId);
|
awakeConfig = HeroAwakeConfig.GetHeroAwakeConfig(heroId, awakeLevel);
|
breakConfig = HeroBreakConfig.GetHeroBreakConfig(heroId, breakLevel);
|
qualityAwakeConfig = HeroQualityAwakeConfig.GetQualityAwakeConfig(Quality, awakeLevel);
|
qualityConfig = HeroQualityConfig.Get(Quality);
|
qualityBreakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(Quality, awakeLevel);
|
CalculateProperties();
|
}
|
#endif
|
|
// public HeroInfo Clone() => JsonMapper.ToObject<HeroInfo>(JsonMapper.ToJson(this));
|
|
// 图鉴信息
|
public void UpdateSCHero(CB122_tagSCHeroInfo.tagSCHero _scHeroInfo)
|
{
|
|
}
|
|
public void UpdateHero(ItemModel _itemHero)
|
{
|
itemHero = _itemHero;
|
// 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<int> talentSkillList = itemHero.GetUseData(71);
|
// 73 # 英雄天赋ID等级列表,对应71天赋ID的等级
|
List<int> talentLvList = itemHero.GetUseData(73);
|
// 75 # 英雄天赋洗炼锁定索引列表,对应71天赋ID索引
|
List<int> talentLockList = itemHero.GetUseData(75);
|
|
InitConfigs();
|
|
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);
|
}
|
}
|