ro-webgl/Assets/Lua/UI/UICollect/CardBookCtr.lua
2021-12-21 09:40:39 +08:00

86 lines
2.4 KiB
Lua

local CardBookCtr = class("CardBookCtr", require("UICtrBase"))
function CardBookCtr:Init()
end
function CardBookCtr:GetData()
return self.data
end
function CardBookCtr:GetHandBookQualityCountByQuality(quality)
return ManagerContainer.DataMgr.CollectionBookData:GetCardHandBookQualityCountById(quality)
end
function CardBookCtr:GetCurCount(type)
local count = 0
if type == Enum.CollectQualityType.ALL then
for i = 1, 3 do
local count1 = self:GetHandBookQualityCountByQuality(i)
count = count + count1
end
elseif type >= Enum.CollectQualityType.NORMAL or type <= Enum.CollectQualityType.MVP then
count = self:GetHandBookQualityCountByQuality(type - 1)
end
return count
end
function CardBookCtr:GetHandBookCardCfgDatas(quality)
local list = clone(ManagerContainer.CfgMgr:GetCardIdentificationDatasByQuality(quality))
for _,v in pairs(list) do
local data = ManagerContainer.DataMgr.CollectionBookData:GetCollectionBookDataById(v.Cardid)
v.canActive = (data and {data.cardLevel == 0} or {true})[1]
end
CommonUtil.ArraySortSelections(list, Enum.TableSortRule.Up, "canActive", "CardQuality", "Cardid")
return list
end
function CardBookCtr:GetHandBookCardCfgDatasByType(type)
if type == Enum.CollectQualityType.ALL then
local list = {}
for i = 1, 3 do
local list1 = self:GetHandBookCardCfgDatas(i)
for _,v in pairs(list1) do
list[#list + 1] = v
end
end
CommonUtil.ArraySortSelections(list, Enum.TableSortRule.Up, "canActive", "CardQuality", "Cardid")
self.showData = list
elseif type >= Enum.CollectQualityType.NORMAL or type <= Enum.CollectQualityType.MVP then
self.showData = self:GetHandBookCardCfgDatas(type - 1)
end
end
function CardBookCtr:GetCurShowDatasLength()
return self.showData and #self.showData or 0
end
function CardBookCtr:GetShowDataByIdx(idx)
return self.showData and self.showData[idx] or nil
end
function CardBookCtr:GetCardBookOffsetCfgId(cfgId, offset)
if not self.showData then return cfgId end
for i = 1,#self.showData do
if self.showData[i].Cardid == cfgId then
if i + offset < 1 then
return self.showData[#self.showData].Cardid
elseif i + offset > #self.showData then
return self.showData[1].Cardid
else
return self.showData[i + offset].Cardid
end
end
end
return cfgId
end
function CardBookCtr:OnDispose()
self.showData = nil
self.data = nil
end
return CardBookCtr