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 talentList = new List(); Dictionary talentAttrDic = new Dictionary(); //属性ID : 天赋属性值 // 71 # 英雄天赋ID列表 // 73 # 英雄天赋ID等级列表,对应71天赋ID的等级 // 75 # 英雄天赋洗炼锁定索引列表,对应71天赋ID索引 // 77 # 英雄天赋洗炼随机ID列表 // 79 # 英雄觉醒时随机天赋选项ID列表 protected void RefreshTalentAttr() { // 71 # 英雄天赋ID列表 List talentIDList = itemHero.GetUseData(71); // // 73 # 英雄天赋ID等级列表,对应71天赋ID的等级 List 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; } }