CardBookCtr.lua 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. local CardBookCtr = class("CardBookCtr", require("UICtrBase"))
  2. function CardBookCtr:Init()
  3. end
  4. function CardBookCtr:GetData()
  5. return self.data
  6. end
  7. function CardBookCtr:GetHandBookQualityCountByQuality(quality)
  8. return ManagerContainer.DataMgr.CollectionBookData:GetCardHandBookQualityCountById(quality)
  9. end
  10. function CardBookCtr:GetCurCount(type)
  11. local count = 0
  12. if type == Enum.CollectQualityType.ALL then
  13. for i = 1, 3 do
  14. local count1 = self:GetHandBookQualityCountByQuality(i)
  15. count = count + count1
  16. end
  17. elseif type >= Enum.CollectQualityType.NORMAL or type <= Enum.CollectQualityType.MVP then
  18. count = self:GetHandBookQualityCountByQuality(type - 1)
  19. end
  20. return count
  21. end
  22. function CardBookCtr:GetHandBookCardCfgDatas(quality)
  23. local list = clone(ManagerContainer.CfgMgr:GetCardIdentificationDatasByQuality(quality))
  24. for _,v in pairs(list) do
  25. local data = ManagerContainer.DataMgr.CollectionBookData:GetCollectionBookDataById(v.Cardid)
  26. v.canActive = (data and {data.cardLevel == 0} or {true})[1]
  27. end
  28. CommonUtil.ArraySortSelections(list, Enum.TableSortRule.Up, "canActive", "CardQuality", "Cardid")
  29. return list
  30. end
  31. function CardBookCtr:GetHandBookCardCfgDatasByType(type)
  32. if type == Enum.CollectQualityType.ALL then
  33. local list = {}
  34. for i = 1, 3 do
  35. local list1 = self:GetHandBookCardCfgDatas(i)
  36. for _,v in pairs(list1) do
  37. list[#list + 1] = v
  38. end
  39. end
  40. CommonUtil.ArraySortSelections(list, Enum.TableSortRule.Up, "canActive", "CardQuality", "Cardid")
  41. self.showData = list
  42. elseif type >= Enum.CollectQualityType.NORMAL or type <= Enum.CollectQualityType.MVP then
  43. self.showData = self:GetHandBookCardCfgDatas(type - 1)
  44. end
  45. end
  46. function CardBookCtr:GetCurShowDatasLength()
  47. return self.showData and #self.showData or 0
  48. end
  49. function CardBookCtr:GetShowDataByIdx(idx)
  50. return self.showData and self.showData[idx] or nil
  51. end
  52. function CardBookCtr:GetCardBookOffsetCfgId(cfgId, offset)
  53. if not self.showData then return cfgId end
  54. for i = 1,#self.showData do
  55. if self.showData[i].Cardid == cfgId then
  56. if i + offset < 1 then
  57. return self.showData[#self.showData].Cardid
  58. elseif i + offset > #self.showData then
  59. return self.showData[1].Cardid
  60. else
  61. return self.showData[i + offset].Cardid
  62. end
  63. end
  64. end
  65. return cfgId
  66. end
  67. function CardBookCtr:OnDispose()
  68. self.showData = nil
  69. self.data = nil
  70. end
  71. return CardBookCtr