| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- 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
|