KLLevelRewardPanel.lua 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. ---@class KLLevelRewardPanel:UIKmlLuaPanelBase
  2. ---@field view KLLevelRewardPanelView
  3. local KLLevelRewardPanel = class(UIKmlLuaPanelBase)
  4. local this =KLLevelRewardPanel
  5. --等级奖励面板
  6. ---创建时调用一次
  7. function this:Init()
  8. --上方等级奖励列表
  9. GUI:DataListInitData(self.view.RewardDatalist, function()
  10. return self:RewardListCountFunc()
  11. end, function(realIndex)
  12. return self:RewardListGetFunc(realIndex)
  13. end, function(realIndex, kmlcontrol)
  14. return self:RewardListInitFunc(realIndex, kmlcontrol)
  15. end, function(realIndex, kmlcontrol)
  16. return self:RewardListUpdateFunc(realIndex, kmlcontrol)
  17. end)
  18. self.Reward_List_all_item = {}
  19. end
  20. --region 上方等级奖励列表
  21. function this:RewardListCountFunc()
  22. return #self.allLevelData
  23. end
  24. function this:RewardListGetFunc(realIndex)
  25. local cfgData = self.allLevelData[realIndex + 1]
  26. local item = GUI:UIPanel_Open("dev/outui/LevelReward/Item/KLLevelReward/KLLevelRewardItem",self.view.RewardDatalist,self,cfgData,true)
  27. self.Reward_List_all_item[realIndex + 1] = item
  28. return item.view.root
  29. end
  30. function this:RewardListInitFunc(realIndex, kmlcontrol)
  31. end
  32. function this:RewardListUpdateFunc(realIndex, kmlcontrol)
  33. local cfgData = self.allLevelData[realIndex + 1]
  34. self.Reward_List_all_item[realIndex + 1]:RefreshItem(cfgData)
  35. end
  36. --endregion 上方等级奖励列表
  37. ---注册UI事件和服务器消息
  38. function this:RegistEvents()
  39. SL:RegisterLUAEvent(LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE, self.LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE, self)
  40. end
  41. function this:LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE()
  42. for index,item in pairs(self.Reward_List_all_item) do
  43. local id = item.args.id
  44. if InfoManager.openServiceLevelRewardInfo.ShowTypeInfo[id] then
  45. item:RefreshShowType(InfoManager.openServiceLevelRewardInfo.ShowTypeInfo[id])
  46. else
  47. item:RefreshShowType(OpenServiceLevelReward_ShowType.LevelNotEnough)
  48. end
  49. end
  50. local lastId = self.bottomRewardData.id
  51. if InfoManager.openServiceLevelRewardInfo.ShowTypeInfo[lastId] then
  52. self.bottom_Reward_item:RefreshShowType(InfoManager.openServiceLevelRewardInfo.ShowTypeInfo[lastId])
  53. else
  54. self.bottom_Reward_item:RefreshShowType(OpenServiceLevelReward_ShowType.LevelNotEnough)
  55. end
  56. end
  57. ---界面显示时调用一次
  58. function this:Show()
  59. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_PERSONAL_LEVEL_REWARD_INFO)
  60. self:RefreshTimeText()
  61. end
  62. ---创建或者刷新界面数据时调用
  63. function this:Refresh()
  64. if not self.allLevelData then
  65. self.allLevelData = {}
  66. local cfgs = SL:GetConfigTable("cfg_activity_levelUp")
  67. for k,v in ipairs(cfgs) do
  68. if k < #cfgs then
  69. table.insert(self.allLevelData,v)
  70. else
  71. self.bottomRewardData = v
  72. end
  73. end
  74. GUI:DataListUpdateData(self.view.RewardDatalist,_,function()
  75. self:LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE()
  76. end)
  77. self.bottom_Reward_item = GUI:UIPanel_Open("dev/outui/LevelReward/Item/KLLevelReward/KLLevelRewardItem",self.view.LastRewardItem,self,self.bottomRewardData,true)
  78. GUI:Image_loadTexture(self.bottom_Reward_item.view.bg,"bg_openreward","Atlas/QJ5_LevelRewardPanel.spriteatlas")
  79. else
  80. GUI:DataListUpdateData(self.view.RewardDatalist,_,function()
  81. self:LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE()
  82. end)
  83. self.bottom_Reward_item:RefreshItem(self.bottomRewardData)
  84. end
  85. end
  86. function this:RefreshTimeText()
  87. if not self.timerTime then
  88. local isbeforerefresh, differenceTime = self:GetServerOpendifferenceTime()
  89. local tabRankingConfig = SL:GetConfig("sub_mainActivity", 7)
  90. local serverTime = Time.GetServerTime()
  91. local outTimeTbl = ConditionManager.GetConditionParams(tabRankingConfig.showCondition)
  92. local enterRoleRes = SL:GetEnterRoleRes()
  93. local endTime = (tonumber(outTimeTbl[2])) * 86400000 + enterRoleRes.openServerTime
  94. local diff = endTime - serverTime - differenceTime * 1000
  95. if isbeforerefresh then
  96. diff = endTime - serverTime + differenceTime * 1000
  97. end
  98. self.timerTime = diff / 1000
  99. if self.timerTime <= 0 then
  100. GUI:setVisible(self.view.timeTitle,false)
  101. else
  102. GUI:setVisible(self.view.timeTitle,true)
  103. GUI:SetControl_time(self.view.timerText, self.timerTime)
  104. end
  105. end
  106. end
  107. function this:GetServerOpendifferenceTime()
  108. if SL:GetEnterRoleRes() == nil then
  109. return -1
  110. end
  111. local openTime = Time.FormatTimeYMDHMS(SL:GetEnterRoleRes().openServerTime / 1000)
  112. local hour = tonumber(string.sub(openTime, 12, 13))
  113. local minute = tonumber(string.sub(openTime, 15, 16))
  114. local second = tonumber(string.sub(openTime, 18, 19))
  115. local differenceTime = 0 --刷新差值
  116. local refreshTime = 5 --刷新时间5点改为0点
  117. local isbeforerefresh = hour < refreshTime
  118. differenceTime = hour * 3600 + minute * 60 + second
  119. return isbeforerefresh, differenceTime
  120. end
  121. function this:Close()
  122. SL:UnRegisterLUAEvent(LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE, self.LUA_EVENT_OPENSERVICE_LEVEL_REWARD_CHANGE, self)
  123. end
  124. return this