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; 
 | 
    } 
 | 
} 
 |