UIAttrAddTipsView.lua 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. local UIAttrAddTipsView = require("UIAttrAddTips/UIAttrAddTipsView_Generate")
  2. local specialAttrKey = {
  3. [1] = "DscCardBlessTips2",
  4. }
  5. local interTime = 500
  6. local durationTime = 2
  7. local upVal = 300
  8. local itemList = {}
  9. local itemluaList = {}
  10. local itemName = "AttrTipItem"
  11. local timerId
  12. function UIAttrAddTipsView:OnAwake(data)
  13. self.controller = require("UIAttrAddTips/UIAttrAddTipsCtr"):new()
  14. self.controller:Init(self)
  15. self.controller:SetData(data)
  16. end
  17. function UIAttrAddTipsView:AddEventListener()
  18. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ADD_ATTR_DISPLAY, function(data)
  19. local result = self:AddNewAttrInfo(data)
  20. if not result then return end
  21. --ManagerContainer.LuaTimerMgr:ResumeTimer(timerId)
  22. self:ShowAddTimer()
  23. --self.uiBase:Show()
  24. end)
  25. end
  26. function UIAttrAddTipsView:FillContent(data, uiBase)
  27. self.uiBase = uiBase
  28. local gameObject = self.uiBase:GetRoot()
  29. if gameObject ~= nil then
  30. self.gameObject = gameObject
  31. self.transform = gameObject.transform
  32. end
  33. self:InitGenerate(self.transform, data)
  34. self:Init()
  35. end
  36. function UIAttrAddTipsView:Init()
  37. --timerId = ManagerContainer.LuaTimerMgr:AddTimer(interTime, -1, self, self.ShowAddTimer, nil)
  38. local result = self:AddNewAttrInfo(self.controller:GetData())
  39. if not result then return end
  40. self:ShowAddTimer()
  41. end
  42. function UIAttrAddTipsView:AddNewAttrInfo(data)
  43. local oldAttrs = data[1]
  44. local newAttrs = data[2]
  45. if not oldAttrs or not newAttrs then
  46. return false
  47. end
  48. local hasNewAttr = false
  49. for _,v in pairs(newAttrs) do
  50. v = SDataUtil.InvConvert(v)
  51. if v > 0 then
  52. hasNewAttr = true
  53. break
  54. end
  55. end
  56. if not hasNewAttr then
  57. return false
  58. end
  59. itemList[#itemList + 1] = data
  60. if #itemList > 3 then
  61. for i = #itemList, 1, - 1 do
  62. if i <= #itemList - 3 then
  63. table.remove(itemList, i)
  64. end
  65. end
  66. end
  67. return true
  68. end
  69. local function IncreaseOrReduceAttr(value)
  70. return CommonUtil.FormatNumber(value)
  71. end
  72. function UIAttrAddTipsView:ShowAddTimer()
  73. if #itemList > 0 then
  74. ManagerContainer.GoPoolMgr:SpawnGo(Enum.PrefabNames.AttrTipItem, function (itemLua)
  75. table.insert(itemluaList, itemLua)
  76. local data = itemList[1]
  77. local oldAttrs = data[1]
  78. local newAttrs = data[2]
  79. local specialAttrList = data[3]
  80. local list = {}
  81. for k,v in pairs(oldAttrs) do
  82. local num = SDataUtil.InvConvert(v)
  83. local num1 = SDataUtil.InvConvert(newAttrs[k])
  84. if SDataUtil.IsGreater(num1,num) then
  85. list[#list + 1] = {key = k, old = num, new = num1}
  86. end
  87. end
  88. if #list > 0 and specialAttrList and #specialAttrList > 0 then
  89. for i = 1, #specialAttrList do
  90. table.insert(list,i,{key = specialAttrKey[i], old = specialAttrList[i][1], new = specialAttrList[i][2]});
  91. end
  92. end
  93. if #list > 0 then
  94. itemLua.transform:SetParent(self.transform)
  95. itemLua.transform.localPosition = Vector3.zero + Vector3.up * 100
  96. itemLua.transform.localScale = Vector3.one
  97. CommonUtil.LoopGridViewEleCreate(self, itemLua.loopVerticalScrollRect, itemLua.content.gridLayoutGroup, list, 0, function (itemLua1, idx)
  98. local data = list[idx + 1]
  99. if data and type(data.key) == "string" then
  100. itemLua1.type.uILocalizeScript:SetContent(data.key)
  101. itemLua1.number1.text.text = Mathf.Abs(Mathf.Floor(SDataUtil.InvConvert(data.old)))
  102. itemLua1.number2.text.text = Mathf.Abs(Mathf.Floor(SDataUtil.InvConvert(data.new)))
  103. else
  104. itemLua1.type.uILocalizeScript:SetContent("Attr_"..data.key)
  105. itemLua1.number1.text.text = CommonUtil.HeroAttrFormatValueNoSign(data.key, data.old, true)
  106. itemLua1.number2.text.text = CommonUtil.HeroAttrFormatValueNoSign(data.key, data.new, true)
  107. end
  108. --itemLua1.type.uILocalizeScript:SetContent("Attr_"..data.key)
  109. end)
  110. --itemLua.transform:DOLocalMoveY(itemLua.transform.localPosition.y + upVal, durationTime):OnComplete(function ()
  111. --
  112. -- CommonUtil.DestroyGO(itemLua.gameObject)
  113. -- itemLua = nil
  114. --end)
  115. itemLua.transform:DOScale(1, durationTime):OnComplete(function ()
  116. for i = 1, #itemluaList do
  117. if itemluaList[i] == itemLua then
  118. table.remove(itemluaList, i)
  119. break
  120. end
  121. end
  122. itemLua.loopVerticalScrollRect:ClearCells();
  123. ManagerContainer.GoPoolMgr:RecycleGo(itemLua)
  124. if #itemList == 0 then
  125. --self:UIHide()
  126. end
  127. end)
  128. else
  129. for i = 1, #itemluaList do
  130. if itemluaList[i] == itemLua then
  131. table.remove(itemluaList, i)
  132. break
  133. end
  134. end
  135. itemLua.loopVerticalScrollRect:ClearCells();
  136. ManagerContainer.GoPoolMgr:RecycleGo(itemLua)
  137. end
  138. table.remove(itemList, 1)
  139. end , itemName)
  140. end
  141. end
  142. function UIAttrAddTipsView:RemoveEventListener()
  143. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  144. end
  145. function UIAttrAddTipsView:AddUIEventListener()
  146. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  147. end
  148. function UIAttrAddTipsView:OnHide()
  149. end
  150. function UIAttrAddTipsView:OnShow(data)
  151. self.controller:SetData(data)
  152. self:Init()
  153. end
  154. function UIAttrAddTipsView:OnClose()
  155. --ManagerContainer.LuaTimerMgr:RemoveTimer(timerId)
  156. for i = 1,#itemluaList do
  157. local itemlua = itemluaList[i]
  158. itemlua.loopVerticalScrollRect:ClearCells();
  159. ManagerContainer.GoPoolMgr:RecycleGo(itemlua)
  160. end
  161. itemList = {}
  162. end
  163. function UIAttrAddTipsView:OnDispose()
  164. end
  165. return UIAttrAddTipsView