UIPetContractAttributeView.lua 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. local UIPetContractAttributeView = require("UIPet/UIPetContractAttributeView_Generate")
  2. local IconPetItemCtr = require("Common/IconPetItemCtr")
  3. local pageToggleData = {}
  4. local baseAttrs = {}
  5. local addAttrs = {}
  6. function UIPetContractAttributeView:OnAwake(data)
  7. self.controller = require("UIPet/UIPetContractAttributeCtr"):new()
  8. self.controller:Init(self)
  9. self.controller:SetData(data)
  10. end
  11. function UIPetContractAttributeView:AddEventListener()
  12. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  13. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.QUERY_PET_QIYUE_ATTRS_SUCCESS, self, self.OnQueryQiyueBattlePetAttrs)
  14. end
  15. function UIPetContractAttributeView:FillContent(data, uiBase)
  16. self.uiBase = uiBase
  17. local gameObject = self.uiBase:GetRoot()
  18. if gameObject ~= nil then
  19. self.gameObject = gameObject
  20. self.transform = gameObject.transform
  21. end
  22. self:InitGenerate(self.transform, data)
  23. self:Init()
  24. end
  25. function UIPetContractAttributeView:Init()
  26. self.controller:QueryPetDetailInfo()
  27. self:ClearTop()
  28. end
  29. function UIPetContractAttributeView:OnPageInEnd()
  30. self.super.OnPageInEnd(self)
  31. --CommonUtil.CreateToggleMouduleOnlyBtns(self, pageToggleData, self.toggleGroup, 1, self.OnValueChangedToggle)
  32. end
  33. function UIPetContractAttributeView:ClearTop()
  34. local unlockCount = self.controller:GetUnlockCount()
  35. for i = 1, 4 do
  36. local toggleItem = self["toggle"..i]
  37. toggleItem.petLock:SetActive(unlockCount < i)
  38. toggleItem.iconPetItem:SetActive(false)
  39. toggleItem.toggle.interactable = false
  40. end
  41. end
  42. function UIPetContractAttributeView:RefreshTop()
  43. local unlockCount = self.controller:GetUnlockCount()
  44. for i = 1, 4 do
  45. local battlePetData = self.controller:GetBattlePetDataByIdx(i)
  46. local toggleItem = self["toggle"..i]
  47. toggleItem.petLock:SetActive(unlockCount < i)
  48. toggleItem.iconPetItem:SetActive(unlockCount >= i and battlePetData ~= nil)
  49. toggleItem.toggle.interactable = unlockCount >= i
  50. if unlockCount >= i and battlePetData ~= nil then
  51. IconPetItemCtr:SetData(self,toggleItem.iconPetItem, battlePetData, Enum.ItemIEnterType.Pet)
  52. end
  53. end
  54. end
  55. function UIPetContractAttributeView:OnQueryQiyueBattlePetAttrs()
  56. self.controller:RefreshQiyueAttrs()
  57. self:RefreshTop()
  58. CommonUtil.CreateToggleMouduleOnlyBtns(self, pageToggleData, self.toggleGroup, 1, self.OnValueChangedToggle)
  59. end
  60. function UIPetContractAttributeView:OnValueChangedToggle()
  61. if pageToggleData.toggleDefaultIndex == 1 then
  62. self:RefreshTotalQiyueAttrs()
  63. else
  64. self:RefreshTBattlePetQiyueAttrs()
  65. end
  66. end
  67. function UIPetContractAttributeView:RefreshTotalQiyueAttrs()
  68. self.noContract:SetActive(false)
  69. self.scrollView:SetActive(true)
  70. local baseAttrs, addAttrs = self.controller:GetTotalQiyueAttrs()
  71. self:RefreshBottomAttrs(baseAttrs, addAttrs)
  72. end
  73. function UIPetContractAttributeView:RefreshTBattlePetQiyueAttrs()
  74. local idx = pageToggleData.toggleDefaultIndex - 1
  75. local hasQiyue = self.controller:IsPetHaveQiyueByIdx(idx)
  76. self.noContract:SetActive(not hasQiyue)
  77. self.scrollView:SetActive(hasQiyue)
  78. if hasQiyue then
  79. local baseAttrs, addAttrs = self.controller:GetPetQiyueAttrsByIdx(idx)
  80. self:RefreshBottomAttrs(baseAttrs, addAttrs)
  81. end
  82. end
  83. function UIPetContractAttributeView:RefreshBottomAttrs(baseAttrs, addAttrs)
  84. CommonUtil.LoopGridViewEleCreate(self, self.baseSView.loopVerticalScrollRect, self.baseSView.content.gridLayoutGroup, baseAttrs, 0, function (itemLua, idx)
  85. CommonUtil.UpdateItemPrefab(self, itemLua, baseAttrs[idx + 1])
  86. end)
  87. CommonUtil.LoopGridViewEleCreate(self, self.addSView.loopVerticalScrollRect, self.addSView.content.gridLayoutGroup, addAttrs, 0, function (itemLua, idx)
  88. CommonUtil.UpdateItemPrefab(self, itemLua, addAttrs[idx + 1])
  89. end)
  90. self.addSView:SetActive(#addAttrs > 0)
  91. self.none:SetActive(#addAttrs == 0)
  92. end
  93. function UIPetContractAttributeView:RemoveEventListener()
  94. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  95. end
  96. function UIPetContractAttributeView:AddUIEventListener()
  97. self.uiBase:AddButtonEventListener(self.AnyBtn.button, self, self.OnCloseClick)
  98. self.uiBase:AddButtonEventListener(self.btnClose.button, self, self.OnCloseClick)
  99. end
  100. function UIPetContractAttributeView:OnCloseClick()
  101. self:UIClose()
  102. end
  103. function UIPetContractAttributeView:OnHide()
  104. end
  105. function UIPetContractAttributeView:OnShow(data)
  106. self.controller:SetData(data)
  107. end
  108. function UIPetContractAttributeView:OnClose()
  109. end
  110. function UIPetContractAttributeView:OnDispose()
  111. self.controller:OnDispose()
  112. end
  113. return UIPetContractAttributeView