UIPetStampTipsView.lua 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. local UIPetStampTipsView = require("UIPet/UIPetStampTipsView_Generate")
  2. local IconItemCtr = require("Common/IconItemCtr")
  3. function UIPetStampTipsView:OnAwake(data)
  4. self.controller = require("UIPet/UIPetStampTipsCtr"):new()
  5. self.controller:Init(self)
  6. self.controller:SetData(data)
  7. end
  8. function UIPetStampTipsView:AddEventListener()
  9. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  10. end
  11. function UIPetStampTipsView:FillContent(data, uiBase)
  12. self.uiBase = uiBase
  13. local gameObject = self.uiBase:GetRoot()
  14. if gameObject ~= nil then
  15. self.gameObject = gameObject
  16. self.transform = gameObject.transform
  17. end
  18. self:InitGenerate(self.transform, data)
  19. self:Init()
  20. end
  21. function UIPetStampTipsView:Init()
  22. self:Refresh()
  23. end
  24. function UIPetStampTipsView:Refresh()
  25. local stampData = self.controller:GetStampData()
  26. if not stampData then return end
  27. local cfgData = ManagerContainer.CfgMgr:GetPetEquipCfgDataById(stampData.cfgId)
  28. if not cfgData then return end
  29. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(stampData.cfgId)
  30. if not itemCfgData then return end
  31. local lvCfgData = ManagerContainer.CfgMgr:GetPetEquipExpCfgDataByLvAndCfgId(stampData.lv, stampData.cfgId)
  32. if not lvCfgData then return end
  33. IconItemCtr:SetData(self, self.iconItem, stampData, Enum.ItemIEnterType.PetStamp)
  34. self.textName.text.text = I18N.T(cfgData.Name)
  35. CommonUtil.LoadIcon(self, Constant.Pet_Stamp_Slot_Icons[cfgData.Type], function (sprite)
  36. self.type1.image.image.sprite = sprite
  37. end)
  38. local dcs = cfgData.Desc or itemCfgData.Describe
  39. self.desTxt.text.text = I18N.T(dcs)
  40. local baseAttrs = clone(lvCfgData.Nature)
  41. table.sort(baseAttrs, function (a,b)
  42. return a[1] < b[1]
  43. end)
  44. local idx = 0
  45. for i = 1, #baseAttrs do
  46. idx = idx + 1
  47. CommonUtil.BatchCreateItemsLoopWithMould(self, self.attrItem, self.baseAttr.grid.transform, baseAttrs[i], i, Enum.ItemIEnterType.Attr)
  48. end
  49. local isMaxLv = stampData.lv >= cfgData.MaxLevel
  50. local canAdvance = cfgData.Advance > 0
  51. self.bottomBox:SetActive(not isMaxLv or (isMaxLv and canAdvance))
  52. local petId = self.controller:GetPetId()
  53. local slotIdx = self.controller:GetSlotIdx()
  54. local petData = ManagerContainer.DataMgr.PetDataMgr:GetPetDataById(petId)
  55. if petData and slotIdx then
  56. self.btnPetStampLvUp:SetActive(not isMaxLv)
  57. self.btnAdvance:SetActive(isMaxLv and canAdvance)
  58. if not isMaxLv then
  59. local lvUpRP = ManagerContainer.RedPointMgr.PetRPCtr:GetPetSlotLvUpRPState(petData.id, slotIdx)
  60. self.btnPetStampLvUp.uIRedPointRP:SetActive(lvUpRP)
  61. elseif isMaxLv and canAdvance then
  62. local advanceRP = ManagerContainer.RedPointMgr.PetRPCtr:GetPetSlotAdvanceRPState(petData.id, slotIdx)
  63. self.btnAdvance.uIRedPointRP:SetActive(advanceRP)
  64. end
  65. else
  66. self.btnPetStampLvUp.uIRedPointRP:SetActive(false)
  67. self.btnAdvance.uIRedPointRP:SetActive(false)
  68. end
  69. end
  70. function UIPetStampTipsView:RemoveEventListener()
  71. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  72. end
  73. function UIPetStampTipsView:AddUIEventListener()
  74. self.uiBase:AddButtonEventListener(self.btnClose.button, self, self.OnCloseClick)
  75. self.uiBase:AddButtonEventListener(self.AnyBtn.button, self, self.OnCloseClick)
  76. self.uiBase:AddButtonEventListener(self.btnChange.button, self, self.OnChangeClick)
  77. self.uiBase:AddButtonEventListener(self.btnPetStampLvUp.button, self, self.OnLvUpClick)
  78. self.uiBase:AddButtonEventListener(self.btnAdvance.button, self, self.OnLvUpClick)
  79. end
  80. function UIPetStampTipsView:OnCloseClick()
  81. self:UIClose()
  82. end
  83. function UIPetStampTipsView:OnChangeClick()
  84. self:UIClose()
  85. local stampData = self.controller:GetStampData()
  86. local data = {curStamp = stampData, type = stampData.type, slotIdx = self.controller:GetSlotIdx(), petId = self.controller:GetPetId()}
  87. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPetStampList, data)
  88. end
  89. function UIPetStampTipsView:OnLvUpClick()
  90. self:UIClose()
  91. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIStampLvUp, self.controller:GetData())
  92. end
  93. function UIPetStampTipsView:OnHide()
  94. end
  95. function UIPetStampTipsView:OnShow(data)
  96. self.controller:SetData(data)
  97. end
  98. function UIPetStampTipsView:OnClose()
  99. end
  100. function UIPetStampTipsView:OnDispose()
  101. self.controller:OnDispose()
  102. end
  103. return UIPetStampTipsView