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