CardBook.lua 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. local CardBook = class("CardBook")
  2. local BitUtil = require("BitUtil")
  3. local pageToggleData = {}
  4. function CardBook:ctor()
  5. end
  6. function CardBook:InitGo(host,uiGo)
  7. self.host = host
  8. self.viewLua = CommonUtil.BindGridViewItem2Lua(self.host, "BookItem", uiGo)
  9. self.controller = require("UICollect/CardBookCtr"):new()
  10. self.host.controller:SetCardBookCtr(self.controller)
  11. self:InitPanel()
  12. end
  13. function CardBook:InitPanel()
  14. self:InitGrid()
  15. self.viewLua.qtyCard:SetActive(true)
  16. self.viewLua.qtyPet:SetActive(false)
  17. self.viewLua.qtyCollection:SetActive(false)
  18. self.viewLua.btnMaterials:SetActive(false)
  19. self.viewLua.dscBox:SetActive(false)
  20. end
  21. function CardBook:Hide()
  22. self.viewLua.gameObject:SetActive(false)
  23. end
  24. function CardBook:Show()
  25. self.viewLua.gameObject:SetActive(true)
  26. end
  27. function CardBook:SelectToggle()
  28. CommonUtil.CreateToggleMouduleOnlyBtns(self.host, pageToggleData, self.viewLua.toggleGroup, Enum.CollectQualityType.ALL, self.host.OnValueChangedToggle)
  29. end
  30. function CardBook:InitGrid()
  31. self.viewLua.scrollView.loopGridView:InitGridView(0, function(gridView, itemIndex, row, column)
  32. return self:GetItemByRowColumn(gridView, itemIndex, row, column)
  33. end, nil)
  34. end
  35. function CardBook:GetItemByRowColumn(gridView, itemIndex, row, column)
  36. local item = gridView:NewListViewItem('CardCollect')
  37. local cfgData = self.controller:GetShowDataByIdx(itemIndex + 1)
  38. local logicData = ManagerContainer.DataMgr.CollectionBookData:GetCollectionBookDataById(cfgData.Cardid)
  39. local itemlua = CommonUtil.BindGridViewItem2Lua(self.host, "CardCollect", item.gameObject)
  40. CommonUtil.UpdateItemPrefab(self.host, itemlua, cfgData, nil, self, self.OnCardClick)
  41. if logicData then
  42. self:RedPointRefresh(logicData, itemlua.uIRedPointRP)
  43. end
  44. return item
  45. end
  46. function CardBook:RedPointRefresh(logicData, redPoint)
  47. for i = 1,logicData.cardLevel do
  48. local rewarded = BitUtil.RshiftNumBandOne(logicData.rewardRec, i - 1) == 1
  49. if not rewarded then
  50. redPoint.gameObject:SetActive(true)
  51. return
  52. end
  53. end
  54. end
  55. function CardBook:OnValueChangedToggle()
  56. local type = pageToggleData.toggleDefaultIndex
  57. self.controller:GetHandBookCardCfgDatasByType(type)
  58. local count = self.controller:GetCurCount(type)
  59. local length = self.controller:GetCurShowDatasLength()
  60. local maxCount = length
  61. self.viewLua.qtyCard.text.text.text = count.."/"..maxCount
  62. self.viewLua.qtyCard.iconAll:SetActive(type == Enum.CollectQualityType.ALL)
  63. self.viewLua.qtyCard.iconNormal:SetActive(type == Enum.CollectQualityType.NORMAL)
  64. self.viewLua.qtyCard.iconMini:SetActive(type == Enum.CollectQualityType.MINIBOSS)
  65. self.viewLua.qtyCard.iconMvp:SetActive(type == Enum.CollectQualityType.MVP)
  66. if length > 0 then
  67. --self.viewLua.scrollView.loopGridView:SetListItemCount(length, true)
  68. self.viewLua.scrollView.loopGridView:RefreshListByIndex(length)
  69. end
  70. end
  71. function CardBook:OnCardClick(button, params)
  72. local cfgId = params[0]
  73. local data = {type = Enum.CollectType.Card, cfgId = cfgId}
  74. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UICollectTips, data)
  75. end
  76. function CardBook:AddEventListener()
  77. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.host.uiData.name, UIEventNames.CARD_HANDBOOK_REWARD_REFRESH, function()
  78. self:OnValueChangedToggle()
  79. end)
  80. end
  81. function CardBook:RemoveEventListener()
  82. end
  83. function CardBook:AddUIEventListener()
  84. self.host.uiBase:AddButtonEventListener(self.viewLua.btnBack.button, self, self.OnBtnBackClick)
  85. end
  86. function CardBook:OnBtnBackClick()
  87. if self.host and self.host.BookBack then
  88. self.host:BookBack()
  89. end
  90. end
  91. function CardBook:Dispose()
  92. self.viewLua.scrollView.loopGridView:Dispose()
  93. self.controller:OnDispose()
  94. self.controller = nil
  95. self.host = nil
  96. self.viewLua:GenerateDestroy()
  97. self.viewLua = nil
  98. pageToggleData = {}
  99. end
  100. return CardBook