95 lines
2.8 KiB
Lua
95 lines
2.8 KiB
Lua
|
LikabilityManager = {}
|
|||
|
local this = LikabilityManager
|
|||
|
|
|||
|
function this.Initialize()
|
|||
|
this.AllHeroDataLikAbility = {}
|
|||
|
this.HeroLvList = {}
|
|||
|
this.TotalLvList = {}
|
|||
|
end
|
|||
|
|
|||
|
function this.InitializeTableData()
|
|||
|
for k,v in ConfigPairs(ConfigManager.GetConfig(ConfigName.LikeAbility))
|
|||
|
end
|
|||
|
|
|||
|
function this.UpdateAllBackData(msg)
|
|||
|
for i = 1,#msg.heros do
|
|||
|
this.UpdatelBackData(msg.heros[i].heroId,msg.heros[i].value)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function this.UpdatelBackData(heroId,value)
|
|||
|
if not this.AllHeroDataLikAbility[heroId] then
|
|||
|
this.AllHeroDataLikAbility[heroId] = {}
|
|||
|
end
|
|||
|
this.AllHeroDataLikAbility[heroId].value = value
|
|||
|
this.AllHeroDataLikAbility[heroId].likeLv = this.GetHeroLikeLv(value)
|
|||
|
end
|
|||
|
|
|||
|
function this.GetTotalHeroLikeLv()
|
|||
|
local totalCurNum = 0
|
|||
|
for k,v in pairs(this.AllHeroDataLikAbility) do
|
|||
|
totalCurNum = totalCurNum + v.value
|
|||
|
end
|
|||
|
local totalLv,totalNum = this.GetLv(1,totalCurNum)
|
|||
|
return totalCurNum,totalLv,totalNum
|
|||
|
end
|
|||
|
|
|||
|
--indexType 1: 获取总好感度等级 2:获取单个神将好感度等级
|
|||
|
function this.GetLv(indexType,value)
|
|||
|
local list = {}
|
|||
|
if indexType == 1 then
|
|||
|
list = this.TotalLvList
|
|||
|
else
|
|||
|
list = this.HeroLvList
|
|||
|
end
|
|||
|
for i = 1,#list do
|
|||
|
if not list[i].value or list[i].value <= 0 or value < list[i].value then
|
|||
|
return list[i].lv,list[i].value
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
--indexType 1: 获取总好感度属性 2:获取单个神将好感度属性
|
|||
|
--index -1 获取累加的好感度属性 其他 获取某级的好感度属性
|
|||
|
--lv 累加到某级
|
|||
|
function this.GetProData(indexType,index,lv)
|
|||
|
local list = {}
|
|||
|
if indexType == 1 then
|
|||
|
list = this.TotalLvList
|
|||
|
else
|
|||
|
list = this.HeroLvList
|
|||
|
end
|
|||
|
for _,n in ipairs(list) do
|
|||
|
if not heroSkinAllHeroProVal[n[1]] then
|
|||
|
heroSkinAllHeroProVal[n[1]] = 0
|
|||
|
end
|
|||
|
heroSkinAllHeroProVal[n[1]] = heroSkinAllHeroProVal[n[1]] + n[2]
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function this.GetTotalForce(heroData)
|
|||
|
local SingleProVal = {}
|
|||
|
local AllHeroProVal = {}
|
|||
|
local lv,totalNum = 0,0
|
|||
|
if this.AllHeroDataLikAbility[heroData.id] then
|
|||
|
lv,totalNum = this.GetLv(2,this.AllHeroDataLikAbility[heroData.id].value)
|
|||
|
SingleProVal = this.GetProData(2,-1,lv)
|
|||
|
end
|
|||
|
local totalCurNum,totalLv,totalNum = this.GetTotalHeroLikeLv()
|
|||
|
AllHeroProVal = this.GetProData(1,-1,lv)
|
|||
|
|
|||
|
for _,v in pairs(this.skinDatas) do
|
|||
|
if heroData.skinId ~= v.id then
|
|||
|
if this.skinDatas[v.id] and this.skinDatas[v.id].UnlockProperty and #this.skinDatas[v.id].UnlockProperty > 0 then
|
|||
|
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
return heroSkinSingleProVal, heroSkinAllHeroProVal
|
|||
|
end
|
|||
|
|
|||
|
function this.CheckRedPot()
|
|||
|
|
|||
|
end
|
|||
|
|
|||
|
return this
|