| 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 (!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 (allSkillTypeIDToID.ContainsKey(skillConfig.SkillTypeID)) | 
|                 { | 
|                     var tmpSkillConfig = SkillConfig.Get(allSkillTypeIDToID[skillConfig.SkillTypeID]); | 
|                     if (skillConfig.SkillID > tmpSkillConfig.SkillID) | 
|                     { | 
|                         //取最大技能 | 
|                         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; | 
|     } | 
| } |