2020-05-09 13:31:21 +08:00
|
|
|
|
EquipTreasureManager= {}
|
|
|
|
|
local this=EquipTreasureManager
|
|
|
|
|
local allTreasures={}
|
|
|
|
|
local jewelConfig=ConfigManager.GetConfig(ConfigName.JewelConfig)
|
|
|
|
|
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
|
|
|
local jewerLevelUpConfig=ConfigManager.GetConfig(ConfigName.JewelRankupConfig)
|
|
|
|
|
function this.Initialize()
|
|
|
|
|
end
|
|
|
|
|
--初始化所有宝器数据
|
|
|
|
|
function this.InitAllEquipTreasure(_equipData)
|
|
|
|
|
if _equipData==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
for i=1,#_equipData do
|
|
|
|
|
this.InitSingleTreasureData(_equipData[i])
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--初始化单个宝物的数据
|
|
|
|
|
function this.InitSingleTreasureData(_singleData)
|
|
|
|
|
if _singleData==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local single={}
|
|
|
|
|
local staticId=_singleData.equipId
|
|
|
|
|
local currJewel=jewelConfig[staticId]
|
|
|
|
|
single.id=staticId
|
|
|
|
|
single.idDyn=_singleData.id
|
|
|
|
|
single.lv=_singleData.exp
|
|
|
|
|
single.refineLv=_singleData.rebuildLevel
|
|
|
|
|
single.maxLv=currJewel.Max[1]
|
|
|
|
|
single.maxRefineLv=currJewel.Max[2]
|
|
|
|
|
single.upHeroDid=""
|
2020-05-15 16:52:35 +08:00
|
|
|
|
local quantity=currJewel.Level
|
|
|
|
|
single.quantity=quantity
|
|
|
|
|
single.frame=GetQuantityImageByquality(quantity)
|
2020-05-09 13:31:21 +08:00
|
|
|
|
single.name=itemConfig[staticId].Name
|
|
|
|
|
single.itemConfig=itemConfig[staticId]
|
|
|
|
|
single.levelPool=currJewel.LevelupPool
|
|
|
|
|
single.proIcon=GetProStrImageByProNum(currJewel.Race)
|
|
|
|
|
single.refinePool=currJewel.RankupPool
|
|
|
|
|
single.equipType=currJewel.Location
|
|
|
|
|
if currJewel.Location==1 then
|
|
|
|
|
single.type="魂宝"
|
|
|
|
|
else
|
|
|
|
|
single.type="灵宝"
|
|
|
|
|
end
|
|
|
|
|
single.icon=GetResourcePath(itemConfig[staticId].ResourceID)
|
|
|
|
|
single.strongConfig=this.GetCurrTreasureLvConfig(1,currJewel.LevelupPool,_singleData.exp)
|
|
|
|
|
single.refineConfig=this.GetCurrTreasureLvConfig(2,currJewel.RankupPool,_singleData.rebuildLevel)
|
|
|
|
|
allTreasures[_singleData.id]=single
|
|
|
|
|
end
|
|
|
|
|
--获取玩家可以穿戴的宝物
|
|
|
|
|
function this.GetTreasureDataByPos(_pos,_idDyn)
|
|
|
|
|
local equips = {}
|
|
|
|
|
for i, v in pairs(allTreasures) do
|
|
|
|
|
if v.equipType==_pos-4 then
|
|
|
|
|
if v.upHeroDid=="" or v.upHeroDid==_idDyn then
|
|
|
|
|
table.insert(equips,v)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return equips
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--获取当前宝物升级数据
|
|
|
|
|
function this.GetCurrTreasureLvConfig(_type,_id,_lv)
|
|
|
|
|
for _, configInfo in ConfigPairs(jewerLevelUpConfig) do
|
|
|
|
|
if configInfo.Type==_type and configInfo.PoolID==_id and configInfo.Level==_lv then
|
|
|
|
|
return configInfo
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--获取当前等级的基础属性/精炼属性
|
|
|
|
|
function this.GetCurrLvAndNextLvPropertyValue(_type,_id,_lv)
|
|
|
|
|
local lvConfig=nil
|
|
|
|
|
local nexLvConfig=nil
|
|
|
|
|
--获取当前等级属性加成
|
|
|
|
|
for _, configInfo in ConfigPairs(jewerLevelUpConfig) do
|
|
|
|
|
if configInfo.Type==_type and configInfo.PoolID==_id and configInfo.Level==_lv then
|
|
|
|
|
lvConfig=configInfo
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--获取下一等级属性加成
|
|
|
|
|
local nextLv=_lv+1
|
|
|
|
|
for _, configInfo in ConfigPairs(jewerLevelUpConfig) do
|
|
|
|
|
if configInfo.Type==_type and configInfo.PoolID==_id and configInfo.Level==nextLv then
|
|
|
|
|
nexLvConfig=configInfo
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local proList={}
|
|
|
|
|
if lvConfig then
|
|
|
|
|
for i = 1, table.getn(lvConfig.Property) do
|
|
|
|
|
local info=lvConfig.Property[i]
|
|
|
|
|
if info then
|
|
|
|
|
local index=info[1]
|
|
|
|
|
local skillValue={}
|
|
|
|
|
skillValue.currValue=info[2]
|
|
|
|
|
proList[index]=skillValue
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--没有下一等级数据为已升到最高级
|
|
|
|
|
if nexLvConfig then
|
|
|
|
|
for i = 1, table.getn(nexLvConfig.Property) do
|
|
|
|
|
local info=nexLvConfig.Property[i]
|
|
|
|
|
if info then
|
|
|
|
|
if proList[info[1]] then
|
|
|
|
|
proList[info[1]].nextValue=info[2]
|
|
|
|
|
else
|
|
|
|
|
local skillValue={}
|
|
|
|
|
skillValue.currValue=info[2]
|
|
|
|
|
proList[info[1]]=skillValue
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--最高级显示
|
|
|
|
|
else
|
|
|
|
|
for i, v in pairs(proList) do
|
|
|
|
|
proList[i].nextValue=proList[i].currValue
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
return proList
|
|
|
|
|
end
|
|
|
|
|
|
2020-05-15 16:52:35 +08:00
|
|
|
|
--根据属性类型获取所有类型的表数据
|
|
|
|
|
function this.GetAllTabletTreasuresByRace(_index)
|
|
|
|
|
if jewelConfig== nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local list={}
|
|
|
|
|
local index=0
|
|
|
|
|
for _, configInfo in ConfigPairs(jewelConfig) do
|
|
|
|
|
local jewel=configInfo
|
|
|
|
|
if jewel then
|
|
|
|
|
-- 获取同类型的所有表中的数据 (最低品质为2 不显示最低品质)
|
|
|
|
|
if jewel.Race == _index and jewel.Level>2 then
|
|
|
|
|
index=index+1
|
|
|
|
|
local treasure={}
|
|
|
|
|
local Id=jewel.Id
|
|
|
|
|
treasure.Id=Id
|
|
|
|
|
local lv=jewel.Level
|
|
|
|
|
treasure.frame=GetQuantityImageByquality(lv)
|
2020-05-25 19:16:23 +08:00
|
|
|
|
--合成当前宝物需要的宝物id
|
|
|
|
|
treasure.lowId=Id-1
|
2020-05-15 16:52:35 +08:00
|
|
|
|
treasure.lowFrame=GetQuantityImageByquality(lv-1)
|
|
|
|
|
treasure.icon=GetResourcePath(itemConfig[Id].ResourceID)
|
|
|
|
|
treasure.quantity=lv
|
|
|
|
|
treasure.name=itemConfig[Id].Name
|
|
|
|
|
treasure.race=lv
|
|
|
|
|
treasure.equipType=jewel.Location
|
|
|
|
|
treasure.quaUpCount=jewel.RankupCount
|
|
|
|
|
treasure.proIcon=GetProStrImageByProNum(jewel.Race)
|
|
|
|
|
treasure.costCoin=jewel.RankupResources
|
|
|
|
|
list[index]=treasure
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
if LengthOfTable(list)>0 then
|
|
|
|
|
table.sort(list,function(a,b)
|
|
|
|
|
return a.race < b.race
|
|
|
|
|
end)
|
|
|
|
|
return list
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--获取一键合成便利的所有宝物
|
|
|
|
|
function this.GetAllTabletTreasuresByRaceAndType(_index, _Location)
|
|
|
|
|
if jewelConfig== nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local list={}
|
|
|
|
|
local index=0
|
|
|
|
|
for _, configInfo in ConfigPairs(jewelConfig) do
|
|
|
|
|
local jewel=configInfo
|
|
|
|
|
if jewel then
|
|
|
|
|
-- 获取同类型的所有表中的数据 (最低品质为2 不显示最低品质)
|
|
|
|
|
if jewel.Race == _index and jewel.Level>2 and jewel.Location== _Location then
|
|
|
|
|
index=index+1
|
|
|
|
|
local treasure={}
|
|
|
|
|
local Id=jewel.Id
|
|
|
|
|
treasure.Id=Id
|
|
|
|
|
local lv=jewel.Level
|
|
|
|
|
treasure.frame=GetQuantityImageByquality(lv)
|
|
|
|
|
treasure.lowFrame=GetQuantityImageByquality(lv-1)
|
|
|
|
|
treasure.icon=GetResourcePath(itemConfig[Id].ResourceID)
|
|
|
|
|
treasure.quantity=lv
|
|
|
|
|
treasure.name=itemConfig[Id].Name
|
|
|
|
|
treasure.race=lv
|
|
|
|
|
treasure.equipType=jewel.Location
|
|
|
|
|
treasure.quaUpCount=jewel.RankupCount
|
|
|
|
|
treasure.proIcon=GetProStrImageByProNum(jewel.Race)
|
|
|
|
|
treasure.costCoin=jewel.RankupResources
|
|
|
|
|
list[index]=treasure
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
if LengthOfTable(list)>0 then
|
|
|
|
|
table.sort(list,function(a,b)
|
|
|
|
|
return a.race < b.race
|
|
|
|
|
end)
|
|
|
|
|
return list
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
2020-05-09 13:31:21 +08:00
|
|
|
|
|
2020-05-15 16:52:35 +08:00
|
|
|
|
--获取所有可以合成宝物的数据
|
|
|
|
|
function this.GetBagCompoundEquipDatasByequipSData(equipSData)
|
|
|
|
|
local equips = {}
|
|
|
|
|
for i, v in pairs(allTreasures) do
|
|
|
|
|
--获取没有穿戴,没有精炼/强化,低一个品质(表里低一个品质的id-1)
|
|
|
|
|
if v.equipType == equipSData.equipType and v.upHeroDid ==""
|
|
|
|
|
and v.quantity == equipSData.quantity - 1 and v.lv ==0 and v.refineLv ==0 and v.id==equipSData.Id-1 then
|
|
|
|
|
table.insert(equips,v)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return equips
|
|
|
|
|
end
|
|
|
|
|
--获取可以合成宝物的数量根据宝物id
|
|
|
|
|
function this.GetCanCompoundTreasureNumByTreasureId(_id,_type)
|
|
|
|
|
local equips = {}
|
|
|
|
|
for i, v in pairs(allTreasures) do
|
|
|
|
|
--获取没有穿戴,没有精炼/强化,低一个品质(表里低一个品质的id-1)
|
|
|
|
|
if v.equipType == _type and v.upHeroDid ==""
|
|
|
|
|
and v.lv ==0 and v.refineLv ==0 and v.id==_id then
|
|
|
|
|
table.insert(equips,v)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return LengthOfTable(equips)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--获取当前等级加成的属性
|
2020-05-09 13:31:21 +08:00
|
|
|
|
function this.GetCurLvPropertyValue(_type,_id,_lv)
|
|
|
|
|
local lvConfig=nil
|
|
|
|
|
--获取当前等级属性加成
|
|
|
|
|
for _, configInfo in ConfigPairs(jewerLevelUpConfig) do
|
|
|
|
|
if configInfo.Type==_type and configInfo.PoolID==_id and configInfo.Level==_lv then
|
|
|
|
|
lvConfig=configInfo
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local proList={}
|
|
|
|
|
if lvConfig then
|
|
|
|
|
for i = 1, table.getn(lvConfig.Property) do
|
|
|
|
|
local info=lvConfig.Property[i]
|
|
|
|
|
if info then
|
|
|
|
|
local index=info[1]
|
|
|
|
|
local skillValue={}
|
|
|
|
|
skillValue.currValue=info[2]
|
|
|
|
|
if info[2]~=0 then
|
|
|
|
|
proList[index]=skillValue
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return proList
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--获取满足升级条件的宝物
|
|
|
|
|
function this.GetEnoughRefineTreasure(_id,_idDyn)
|
|
|
|
|
if allTreasures==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local num=0
|
|
|
|
|
local list={}
|
|
|
|
|
for i, v in pairs(allTreasures) do
|
|
|
|
|
local isUpHero=false
|
|
|
|
|
if v.upHeroDid=="" or v.upHeroDid==nil then
|
|
|
|
|
isUpHero=false
|
|
|
|
|
else
|
|
|
|
|
isUpHero=true
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if v.id==_id and v.idDyn~=_idDyn and v.lv==0 and v.refineLv==0 and isUpHero==false then
|
|
|
|
|
list[i]=v
|
|
|
|
|
num=num+1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return list,num
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function this.RemoveTreasureByIdDyn(_idDyn)
|
|
|
|
|
if allTreasures==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
if allTreasures[_idDyn] then
|
|
|
|
|
LogError(_idDyn)
|
|
|
|
|
allTreasures[_idDyn]=nil
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--获取所有宝物 不算英雄身上穿的 通过稀有度
|
|
|
|
|
function this.GetAllTreasuresByQuantity(Quantity)
|
|
|
|
|
local curAllEquipTreasure = {}
|
|
|
|
|
for key, value in pairs(allTreasures) do
|
|
|
|
|
if value.upHeroDid == "" and value.itemConfig.Quantity == Quantity then
|
|
|
|
|
table.insert( curAllEquipTreasure, value )
|
|
|
|
|
elseif value.upHeroDid == "" and Quantity == 1 then--1 全部
|
|
|
|
|
table.insert( curAllEquipTreasure, value )
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return curAllEquipTreasure
|
|
|
|
|
end
|
|
|
|
|
--获取所有宝物 不算英雄身上穿的 通过稀有度
|
|
|
|
|
function this.GetAllTreasuresByLocation(Location)
|
|
|
|
|
local curAllEquipTreasure = {}
|
|
|
|
|
for key, value in pairs(allTreasures) do
|
|
|
|
|
if value.upHeroDid == "" and jewelConfig[value.id].Location == Location then
|
|
|
|
|
table.insert( curAllEquipTreasure, value )
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return curAllEquipTreasure
|
|
|
|
|
end
|
|
|
|
|
--获取所有宝物 不算英雄身上穿的
|
|
|
|
|
function this.GetAllTreasures()
|
|
|
|
|
local curAllEquipTreasure = {}
|
|
|
|
|
for key, value in pairs(allTreasures) do
|
|
|
|
|
if value.upHeroDid == "" then
|
|
|
|
|
table.insert( curAllEquipTreasure, value )
|
|
|
|
|
end
|
|
|
|
|
end
|
2020-05-15 16:52:35 +08:00
|
|
|
|
if LengthOfTable(curAllEquipTreasure)>0 then
|
|
|
|
|
table.sort(curAllEquipTreasure,function(a,b)
|
|
|
|
|
if a.quantity==b.quantity then
|
|
|
|
|
if a.lv==b.lv then
|
|
|
|
|
return a.refineLv>b.refineLv
|
|
|
|
|
else
|
|
|
|
|
return a.lv>b.lv
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
return a.quantity > b.quantity
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end)
|
|
|
|
|
return curAllEquipTreasure
|
|
|
|
|
end
|
|
|
|
|
|
2020-05-09 13:31:21 +08:00
|
|
|
|
return curAllEquipTreasure
|
|
|
|
|
end
|
|
|
|
|
--改变宝物的等级或精炼等级
|
|
|
|
|
function this.ChangeTreasureLv(_idDyn,_type)
|
|
|
|
|
if allTreasures==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
if allTreasures[_idDyn]==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
if allTreasures[_idDyn] then
|
|
|
|
|
if _type==1 then
|
|
|
|
|
if allTreasures[_idDyn].lv==allTreasures[_idDyn].maxLv then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local lv=allTreasures[_idDyn].lv+1
|
|
|
|
|
allTreasures[_idDyn].lv=lv
|
|
|
|
|
allTreasures[_idDyn].strongConfig=this.GetCurrTreasureLvConfig(1,allTreasures[_idDyn].levelPool,lv)
|
|
|
|
|
else if _type==2 then
|
|
|
|
|
if allTreasures[_idDyn].refineLv == allTreasures[_idDyn].maxRefineLv then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local refine=allTreasures[_idDyn].refineLv+1
|
|
|
|
|
allTreasures[_idDyn].refineLv=refine
|
|
|
|
|
allTreasures[_idDyn].refineConfig=this.GetCurrTreasureLvConfig(2,allTreasures[_idDyn].refinePool,refine)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--设置宝物的穿戴卸下 (第二个参数传nil为卸下)
|
|
|
|
|
function this.SetTreasureUpOrDown(_idDyn,_hero)
|
|
|
|
|
if allTreasures[_idDyn] then
|
|
|
|
|
allTreasures[_idDyn].upHeroDid=_hero
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--根据id删除宝物
|
|
|
|
|
function this.DeleteTreasureByIdDyn(_idDyn)
|
|
|
|
|
if allTreasures then
|
|
|
|
|
allTreasures[_idDyn]=nil
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--设置装备穿戴的英雄
|
|
|
|
|
function this.SetEquipTreasureUpHeroDid(_equipTreasureDid,_heroDid)
|
|
|
|
|
if allTreasures[_equipTreasureDid] then
|
|
|
|
|
allTreasures[_equipTreasureDid].upHeroDid=_heroDid
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--设置装备穿戴的英雄
|
|
|
|
|
function this.GetSingleEquipTreasreData(_equipTreasureDid)
|
|
|
|
|
if allTreasures[_equipTreasureDid] then
|
|
|
|
|
return allTreasures[_equipTreasureDid]
|
|
|
|
|
else
|
|
|
|
|
return nil
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--根据动态id获取宝物
|
|
|
|
|
function this.GetSingleTreasureByIdDyn(_idDyn)
|
|
|
|
|
if allTreasures==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
return allTreasures[_idDyn]
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--计算战斗力
|
|
|
|
|
function this.CalculateWarForceBySid(sId,lv,rlv)
|
|
|
|
|
return this.CalculateWarForceBase(sId,lv,rlv)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--计算战斗力
|
|
|
|
|
function this.CalculateWarForce(Did)
|
|
|
|
|
local curTreasure = allTreasures[Did]
|
|
|
|
|
if curTreasure then
|
|
|
|
|
return this.CalculateWarForceBase(curTreasure.id,curTreasure.lv,curTreasure.refineLv)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
function this.CalculateWarForceBase(sId,lv,rlv)
|
|
|
|
|
local curEuipTreaSureConfig = ConfigManager.GetConfigData(ConfigName.JewelConfig,sId)
|
|
|
|
|
if curEuipTreaSureConfig then
|
|
|
|
|
local addAllProVal = {}
|
|
|
|
|
--主属性
|
|
|
|
|
for _, configInfo in ConfigPairs(jewerLevelUpConfig) do
|
|
|
|
|
--强化的属性
|
|
|
|
|
if configInfo.PoolID == curEuipTreaSureConfig.LevelupPool and configInfo.Type == 1 and configInfo.Level == lv then
|
|
|
|
|
for j = 1, #configInfo.Property do
|
|
|
|
|
if addAllProVal[configInfo.Property[j][1]] then
|
|
|
|
|
addAllProVal[configInfo.Property[j][1]] = addAllProVal[configInfo.Property[j][1]] + configInfo.Property[j][2]
|
|
|
|
|
else
|
|
|
|
|
addAllProVal[configInfo.Property[j][1]] = configInfo.Property[j][2]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--精炼的属性
|
|
|
|
|
if configInfo.PoolID == curEuipTreaSureConfig.RankupPool and configInfo.Type == 2 and configInfo.Level == rlv then
|
|
|
|
|
for j = 1, #configInfo.Property do
|
|
|
|
|
if addAllProVal[configInfo.Property[j][1]] then
|
|
|
|
|
addAllProVal[configInfo.Property[j][1]] = addAllProVal[configInfo.Property[j][1]] + configInfo.Property[j][2]
|
|
|
|
|
else
|
|
|
|
|
addAllProVal[configInfo.Property[j][1]] = configInfo.Property[j][2]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
local heroPropertyScore={}
|
|
|
|
|
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.PropertyConfig)) do
|
|
|
|
|
heroPropertyScore[i]=v.Score
|
|
|
|
|
end
|
|
|
|
|
local powerEndVal=0
|
|
|
|
|
for i, v in pairs(addAllProVal) do
|
|
|
|
|
if v > 0 then
|
|
|
|
|
local curProConfigData = ConfigManager.GetConfigData(ConfigName.PropertyConfig,i)
|
|
|
|
|
if curProConfigData then
|
|
|
|
|
if curProConfigData.Style == 1 then
|
|
|
|
|
powerEndVal=powerEndVal+v*heroPropertyScore[i]
|
|
|
|
|
else
|
|
|
|
|
powerEndVal=powerEndVal+v/100*heroPropertyScore[i]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return math.floor(powerEndVal)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--获取宝物升级消耗
|
|
|
|
|
function this.GetTreasureUpLvCostMatrial(_id,_lv)
|
|
|
|
|
local currJewel=jewelConfig[_id]
|
|
|
|
|
if currJewel==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local lvConfig=nil
|
|
|
|
|
--获取当前等级属性加成
|
|
|
|
|
local lvList
|
|
|
|
|
for _, configInfo in ConfigPairs(jewerLevelUpConfig) do
|
|
|
|
|
if configInfo.Type==2 and configInfo.PoolID==currJewel.RankupPool and configInfo.Level<_lv then
|
|
|
|
|
lvList[configInfo.Level]=configInfo
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
if lvList ==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local idList={}
|
|
|
|
|
for i, v in pairs(lvList) do
|
|
|
|
|
local cost =v.JewelExpend
|
|
|
|
|
if cost then
|
|
|
|
|
for i = 1, cost do
|
|
|
|
|
for i = 1, cost[i][2] do
|
|
|
|
|
if cost[i][1]==1 then
|
|
|
|
|
table.insert(idList,currJewel.Id)
|
|
|
|
|
else
|
|
|
|
|
table.insert(idList,cost[i][1])
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return idList
|
|
|
|
|
end
|
|
|
|
|
return EquipTreasureManager
|