| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
|   | 
| //武将天赋:升星获得天赋,可洗练 | 
| public partial class HeroInfo | 
| { | 
|   | 
|     public int heroStar | 
|     { | 
|         get | 
|         { | 
|             if (itemHero == null) | 
|                 return 0; | 
|             return itemHero.GetUseDataFirstValue(72); | 
|         } | 
|     } | 
|      | 
|     public List<HeroTalentInfo> talentList = new List<HeroTalentInfo>(); | 
|   | 
|   | 
|     Dictionary<int, int> talentAttrDic = new Dictionary<int, int>();   //属性ID : 天赋属性值 | 
|                                                                        // 71 # 英雄天赋ID列表 | 
|                                                                        // 73 # 英雄天赋ID等级列表,对应71天赋ID的等级 | 
|                                                                        // 75 # 英雄天赋洗炼锁定索引列表,对应71天赋ID索引 | 
|                                                                        // 77 # 英雄天赋洗炼随机ID列表 | 
|                                                                        // 79 # 英雄觉醒时随机天赋选项ID列表 | 
|     protected void RefreshTalentAttr() | 
|     { | 
|         // 71 # 英雄天赋ID列表 | 
|         List<int> talentIDList = itemHero.GetUseData(71); | 
|         // // 73 # 英雄天赋ID等级列表,对应71天赋ID的等级 | 
|         List<int> talentLvList = itemHero.GetUseData(73); | 
|         talentAttrDic.Clear(); | 
|   | 
|         for (int i = 0; i < talentIDList.Count; i++) | 
|         { | 
|             if (talentIDList[i] == 0) | 
|             { | 
|                 continue; | 
|             } | 
|             var config = HeroTalentConfig.Get(talentIDList[i]); | 
|             if (!talentAttrDic.ContainsKey(config.AttrID)) | 
|             { | 
|                 //天赋属性,值*天赋等级 | 
|                 talentAttrDic[config.AttrID] = config.AttrValue * talentLvList[i]; | 
|             } | 
|             else | 
|             {  | 
|                 talentAttrDic[config.AttrID] += config.AttrValue * talentLvList[i]; | 
|             } | 
|         } | 
|   | 
|     } | 
|   | 
|     public int GetTalentAttrValue(int attrType) | 
|     { | 
|         int value = 0; | 
|         talentAttrDic.TryGetValue(attrType, out value); | 
|         return value; | 
|     } | 
|   | 
|     public int GetTalentAttrPer(int attrType) | 
|     {  | 
|         if (PlayerPropertyConfig.baseAttr2perDict.ContainsKey(attrType)) | 
|         { | 
|             var pertype = PlayerPropertyConfig.baseAttr2perDict[attrType]; | 
|             return talentAttrDic.ContainsKey(pertype) ? talentAttrDic[pertype] : 0; | 
|         } | 
|         return 0; | 
|     } | 
|   | 
| } |