UIPetContractTipsView.lua 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. local UIPetContractTipsView = require("UIPet/UIPetContractTipsView_Generate")
  2. local PetMatsGridView = require("UIPet/PetMatsGridView")
  3. local sameNatureTypeAdd = 0
  4. local petMatsGridView
  5. function UIPetContractTipsView:OnAwake(data)
  6. self.controller = require("UIPet/UIPetContractTipsCtr"):new()
  7. self.controller:Init(self)
  8. self.controller:SetData(data)
  9. end
  10. function UIPetContractTipsView:AddEventListener()
  11. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  12. end
  13. function UIPetContractTipsView:FillContent(data, uiBase)
  14. self.uiBase = uiBase
  15. local gameObject = self.uiBase:GetRoot()
  16. if gameObject ~= nil then
  17. self.gameObject = gameObject
  18. self.transform = gameObject.transform
  19. end
  20. self:InitGenerate(self.transform, data)
  21. self:Init()
  22. end
  23. function UIPetContractTipsView:Init()
  24. sameNatureTypeAdd = GlobalConfig.Instance:GetConfigIntValue(351)* 0.01
  25. if not petMatsGridView then
  26. petMatsGridView = PetMatsGridView:new()
  27. petMatsGridView:Init(Enum.ItemIEnterType.PetQiyueMat, self, self.scrollView.loopGridView)
  28. end
  29. self:RefreshPetNatureIcon()
  30. self:RefreshAddAttrPreview()
  31. end
  32. function UIPetContractTipsView:RefreshPetNatureIcon()
  33. local curQiyuePetId = self.controller:GetQiyuePetId()
  34. local petData = ManagerContainer.DataMgr.PetDataMgr:GetPetDataById(curQiyuePetId)
  35. if not petData then
  36. CommonUtil.LoadIcon(self, Constant.Natural_Unknow_Icon, function (sprite)
  37. self.petExtra.nature.image.sprite = sprite
  38. end)
  39. return
  40. end
  41. local qiyuePetCfgData = ManagerContainer.CfgMgr:GetPetDataById(petData.cfgId)
  42. if not qiyuePetCfgData then
  43. return
  44. end
  45. local natureId = qiyuePetCfgData.NatureType
  46. local natureCfgData = ManagerContainer.CfgMgr:GetNatureDataById(natureId)
  47. local icon = natureCfgData.Icon
  48. CommonUtil.LoadIcon(self, icon, function (sprite)
  49. self.petExtra.nature.image.sprite = sprite
  50. end)
  51. end
  52. function UIPetContractTipsView:OnPageInEnd()
  53. self.super.OnPageInEnd(self)
  54. if petMatsGridView then
  55. petMatsGridView:Refresh(true)
  56. end
  57. end
  58. function UIPetContractTipsView:OnItemClick(button, params)
  59. local data = params[0]
  60. local itemlua = params[1]
  61. local lastData = self.controller:SetSelectedData(data)
  62. if itemlua then
  63. itemlua.selected:SetActive(true)
  64. end
  65. if lastData then
  66. local _,idx = self.controller:GetPetDataIdxInShowDatas(lastData.id)
  67. local lastItemlua = petMatsGridView:GetShowItemByIdx(idx)
  68. if lastItemlua then
  69. lastItemlua.selected:SetActive(false)
  70. end
  71. end
  72. self:RefreshAddAttrPreview()
  73. end
  74. function UIPetContractTipsView:RefreshAddAttrPreview()
  75. local data = self.controller:GetSelectedData()
  76. local cfgData = ManagerContainer.CfgMgr:GetPetDataById(data and data.cfgId or 0)
  77. if not cfgData then
  78. self.contractEffect.number.text.text = "0%"
  79. self.skillExtra.number.text.text = "0%"
  80. self.petExtra.number.text.text = "0%"
  81. return
  82. end
  83. local curQiyuePetId = self.controller:GetQiyuePetId()
  84. local petData = ManagerContainer.DataMgr.PetDataMgr:GetPetDataById(curQiyuePetId)
  85. local qiyuePetCfgData
  86. if petData then
  87. qiyuePetCfgData = ManagerContainer.CfgMgr:GetPetDataById(petData.cfgId)
  88. end
  89. local isSameNature = false
  90. if qiyuePetCfgData then
  91. isSameNature = cfgData.NatureType == qiyuePetCfgData.NatureType
  92. end
  93. local count1 = (cfgData.contract * 0.01).."%"
  94. local count2 = ((data and data.totalSkillUpCount or 0) * cfgData.understand * 0.01).."%"
  95. self.contractEffect.number.text.text = isSameNature and string.format(Constant.GreenColorText, count1) or count1
  96. self.petExtra.number.text.text = isSameNature and string.format(Constant.GreenColorText, sameNatureTypeAdd.."%") or "0%"
  97. self.skillExtra.number.text.text = isSameNature and string.format(Constant.GreenColorText, count2) or count2
  98. end
  99. function UIPetContractTipsView:RemoveEventListener()
  100. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  101. end
  102. function UIPetContractTipsView:AddUIEventListener()
  103. self.uiBase:AddButtonEventListener(self.AnyBtn.button, self, self.OnCloseClick)
  104. self.uiBase:AddButtonEventListener(self.btnClose.button, self, self.OnCloseClick)
  105. self.uiBase:AddButtonEventListener(self.btnOK.button, self, self.OnOkClick)
  106. self.uiBase:AddButtonEventListener(self.btnCancel.button, self, self.OnCloseClick)
  107. end
  108. function UIPetContractTipsView:OnCloseClick()
  109. self:UIClose()
  110. end
  111. function UIPetContractTipsView:OnOkClick()
  112. self.controller:SendSlotChangeReq()
  113. self:UIClose()
  114. end
  115. function UIPetContractTipsView:OnHide()
  116. end
  117. function UIPetContractTipsView:OnShow(data)
  118. self.controller:SetData(data)
  119. end
  120. function UIPetContractTipsView:OnClose()
  121. if petMatsGridView then
  122. petMatsGridView:OnDispose()
  123. petMatsGridView = nil
  124. end
  125. end
  126. function UIPetContractTipsView:OnDispose()
  127. self.controller:OnDispose()
  128. end
  129. return UIPetContractTipsView