using System.Collections.Generic;
|
using UnityEngine;
|
|
public partial class HeroInfo
|
{
|
|
// 觉醒配置
|
public HeroAwakeConfig awakeConfig { get; private set; }
|
|
// 品质觉醒配置
|
public HeroQualityAwakeConfig qualityAwakeConfig { get; private set; }
|
|
// 武将觉醒等级
|
public int awakeLevel
|
{
|
get
|
{
|
if (itemHero == null)
|
return 0;
|
return itemHero.GetUseDataFirstValue(76);
|
}
|
}
|
|
|
Dictionary<int, int> awakeAttrs = new Dictionary<int, int>();
|
//计算觉醒属性
|
public void RefreshAwakeAttr()
|
{
|
awakeAttrs.Clear();
|
|
for (int i = 0; i < awakeLevel; i++)
|
{
|
var tmpAwakeConfig = HeroAwakeConfig.GetHeroAwakeConfig(heroId, awakeLevel);
|
if (tmpAwakeConfig == null)
|
continue;
|
for(int j = 0; j < tmpAwakeConfig.AttrIDList.Length; j++)
|
{
|
int id = tmpAwakeConfig.AttrIDList[j];
|
if (id == 0)
|
continue;
|
if (!breakAttrs.ContainsKey(id))
|
{
|
breakAttrs.Add(id, tmpAwakeConfig.AttrValueList[j]);
|
}
|
else
|
{
|
breakAttrs[id] += tmpAwakeConfig.AttrValueList[j];
|
}
|
}
|
|
if (tmpAwakeConfig.SkillID != 0)
|
{
|
var skillConfig = SkillConfig.Get(tmpAwakeConfig.SkillID);
|
if (skillConfig == null)
|
{
|
Debug.LogError("觉醒技能配置错误" + tmpAwakeConfig.SkillID);
|
continue;
|
}
|
if (allSkillTypeIDToID.ContainsKey(skillConfig.SkillTypeID))
|
{
|
var tmpSkillConfig = SkillConfig.Get(allSkillTypeIDToID[skillConfig.SkillTypeID]);
|
if (skillConfig.SkillLV > tmpSkillConfig.SkillLV)
|
{
|
//取最大技能
|
allSkillTypeIDToID[skillConfig.SkillTypeID] = tmpAwakeConfig.SkillID;
|
}
|
}
|
else
|
{
|
allSkillTypeIDToID[skillConfig.SkillTypeID] = tmpAwakeConfig.SkillID;
|
}
|
}
|
}
|
}
|
|
public int GetAwakeAttrValue(int attrType)
|
{
|
int value = 0;
|
awakeAttrs.TryGetValue(attrType, out value);
|
return value;
|
}
|
|
public int GetAwakeAttrPer(int attrType)
|
{
|
if (PlayerPropertyConfig.baseAttr2perDict.ContainsKey(attrType))
|
{
|
var pertype = PlayerPropertyConfig.baseAttr2perDict[attrType];
|
return awakeAttrs.ContainsKey(pertype) ? awakeAttrs[pertype] : 0;
|
}
|
return 0;
|
}
|
}
|