CardBook.lua 4.0 KB

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