UIPetStampBlessTipsView.lua 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. local UIPetStampBlessTipsView = require("UIPet/UIPetStampBlessTipsView_Generate")
  2. function UIPetStampBlessTipsView:OnAwake(data)
  3. self.controller = require("UIPet/UIPetStampBlessTipsCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIPetStampBlessTipsView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  9. end
  10. function UIPetStampBlessTipsView:FillContent(data, uiBase)
  11. self.uiBase = uiBase
  12. local gameObject = self.uiBase:GetRoot()
  13. if gameObject ~= nil then
  14. self.gameObject = gameObject
  15. self.transform = gameObject.transform
  16. end
  17. self:InitGenerate(self.transform, data)
  18. self:Init()
  19. end
  20. function UIPetStampBlessTipsView:Init()
  21. self:RefreshTop()
  22. self:RefreshBottom()
  23. end
  24. function UIPetStampBlessTipsView:RefreshTop()
  25. local petData = self.controller:GetCurPetData()
  26. local stampSuit = petData.stampSuit
  27. self.petBlessLv.lightGreen:SetActive(stampSuit[1] == 1)
  28. self.petBlessLv.lightBlue:SetActive(stampSuit[1] == 2)
  29. self.petBlessLv.lightPurple:SetActive(stampSuit[1] == 3)
  30. self.petBlessLv.lightGold:SetActive(stampSuit[1] == 4)
  31. self.petBlessLv.lightRed:SetActive(stampSuit[1] == 5)
  32. for i = 1, 6 do
  33. local quality = stampSuit[4][i]
  34. local slot = self.petBlessLv["slot"..i]
  35. slot:SetActive(quality ~= nil)
  36. if quality then
  37. local image = slot.image
  38. local slotTb = tolua.getpeer(slot)
  39. CommonUtil.LoadIcon(self, Constant.Pet_Stamp_Bless_Icons[quality], function (sprite)
  40. image.sprite = sprite
  41. end, slotTb, 'BlessIcon')
  42. end
  43. end
  44. end
  45. function UIPetStampBlessTipsView:RefreshBottom()
  46. local petData = self.controller:GetCurPetData()
  47. local stampSuit = petData.stampSuit
  48. local curQuality = stampSuit[1]
  49. local curSuitCount = stampSuit[2]
  50. self.currentLv.unactivatedState:SetActive(curSuitCount < 6)
  51. self.currentLv.activedState:SetActive(curSuitCount == 6)
  52. local curLv = curQuality == 0 and 1 or curQuality
  53. self.currentLv.lv.text.text = I18N.SetLanguageValue("Stamp"..(curLv + 4), curSuitCount)
  54. local curIcon = curSuitCount < 6 and Constant.Pet_Stamp_Bless_Active_Icons[1] or Constant.Pet_Stamp_Bless_Active_Icons[curQuality + 1]
  55. local colorTb = tolua.getpeer(self.currentLv.color)
  56. CommonUtil.LoadIcon(self, curIcon, function (sprite)
  57. self.currentLv.color.image.sprite = sprite
  58. end, colorTb, 'BlessIcon1')
  59. local suitCfgData = ManagerContainer.CfgMgr:GetPetEquipSuitCfgDataByQuality(curLv)
  60. if suitCfgData then
  61. local state = curSuitCount == 6
  62. local color = state and Constant.GreenColorText or Constant.GrayColorText
  63. local parent = self.currentLv
  64. for i = 1, 5 do
  65. local attr = suitCfgData.Suit[i]
  66. local itemLua = parent["cardBlessAttrItem"..i]
  67. itemLua:SetActive(attr ~= nil)
  68. if attr then
  69. local attrId = attr[1]
  70. local attrNum = attr[2]*0.0001
  71. attrNum = attrId > 21 and CommonUtil.GetPreciseDecimal(attrNum, 3) or math.floor(attrNum)
  72. itemLua.text.text.text = I18N.T("Attr_" .. attrId)
  73. itemLua.number.text.text = CommonUtil.HeroAttrFormatValue(attrId, attrNum, true)
  74. CommonUtil.SetTextColor(itemLua.text.text, color)
  75. CommonUtil.SetTextColor(itemLua.number.text, color)
  76. end
  77. end
  78. end
  79. local nextQuality = curQuality + 1
  80. self.nextLv:SetActive(curQuality > 0 and nextQuality <= 5)
  81. if curQuality > 0 and nextQuality <= 5 then
  82. local nextSuitCount = stampSuit[3]
  83. self.nextLv.unactivatedState:SetActive(nextSuitCount < 6)
  84. self.nextLv.activedState:SetActive(nextSuitCount == 6)
  85. local curLv = nextQuality <= 1 and 2 or nextQuality
  86. self.nextLv.lv.text.text = I18N.SetLanguageValue("Stamp"..(curLv + 4), nextSuitCount)
  87. local colorTb = tolua.getpeer(self.nextLv.color)
  88. CommonUtil.LoadIcon(self, Constant.Pet_Stamp_Bless_Active_Icons[1], function (sprite)
  89. self.nextLv.color.image.sprite = sprite
  90. end, colorTb, 'BlessIcon2')
  91. local suitCfgData = ManagerContainer.CfgMgr:GetPetEquipSuitCfgDataByQuality(curLv)
  92. if suitCfgData then
  93. local state = nextSuitCount == 6
  94. local color = state and Constant.GreenColorText or Constant.GrayColorText
  95. local parent = self.nextLv
  96. for i = 1, 5 do
  97. local attr = suitCfgData.Suit[i]
  98. local itemLua = parent["cardBlessAttrItem"..i]
  99. itemLua:SetActive(attr ~= nil)
  100. if attr then
  101. local attrId = attr[1]
  102. local attrNum = attr[2]*0.0001
  103. attrNum = attrId > 21 and CommonUtil.GetPreciseDecimal(attrNum, 3) or math.floor(attrNum)
  104. itemLua.text.text.text = I18N.T("Attr_" .. attrId)
  105. itemLua.number.text.text = CommonUtil.HeroAttrFormatValue(attrId, attrNum, true)
  106. CommonUtil.SetTextColor(itemLua.text.text, color)
  107. CommonUtil.SetTextColor(itemLua.number.text, color)
  108. end
  109. end
  110. end
  111. end
  112. end
  113. function UIPetStampBlessTipsView:RemoveEventListener()
  114. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  115. end
  116. function UIPetStampBlessTipsView:AddUIEventListener()
  117. self.uiBase:AddButtonEventListener(self.AnyBtn.button, self, self.OnCloseClick)
  118. self.uiBase:AddButtonEventListener(self.btnClose.button, self, self.OnCloseClick)
  119. end
  120. function UIPetStampBlessTipsView:OnCloseClick()
  121. self:UIClose()
  122. end
  123. function UIPetStampBlessTipsView:OnHide()
  124. end
  125. function UIPetStampBlessTipsView:OnShow(data)
  126. self.controller:SetData(data)
  127. end
  128. function UIPetStampBlessTipsView:OnClose()
  129. end
  130. function UIPetStampBlessTipsView:OnDispose()
  131. self.controller:OnDispose()
  132. end
  133. return UIPetStampBlessTipsView