KLActivityComboProgressPanel.lua 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. ---@class KLActivityComboProgressPanel:UIKmlLuaPanelBase
  2. ---@field view KLActivityComboProgressPanelView
  3. local KLActivityComboProgressPanel = class(UIKmlLuaPanelBase)
  4. local this =KLActivityComboProgressPanel
  5. function this:AsyncLoadUI()
  6. end
  7. ---创建时调用一次
  8. function this:Init()
  9. SL:KeepOpenPanel("KLActivityComboProgressPanel",true)
  10. self.trialsType = 24001
  11. ---@type cfg_rep_column
  12. self.trialsTbl = SL:GetConfig("cfg_rep", self.args["3"])
  13. self.trialsState = self.args["1"]
  14. GUI:DataListInitData( self.view.rewardItem_List,function()
  15. return self:ListItemCountFunc()
  16. end, function(realIndex)
  17. return self:ListItemGetFunc(realIndex)
  18. end, function(realIndex, kmlcontrol)
  19. return self:ListItemInitFunc(realIndex, kmlcontrol)
  20. end, function(realIndex, kmlcontrol)
  21. return self:ListItemUpdateFunc(realIndex, kmlcontrol)
  22. end)
  23. GUI:DataListInitData( self.view.rewardItem_finish_List,function()
  24. return self:ListItemCountFunc()
  25. end, function(realIndex)
  26. return self:ListItemGetFunc(realIndex)
  27. end, function(realIndex, kmlcontrol)
  28. return self:ListItemInitFunc(realIndex, kmlcontrol)
  29. end, function(realIndex, kmlcontrol)
  30. return self:FinishListItemUpdateFunc(realIndex, kmlcontrol)
  31. end)
  32. end
  33. function this:ListItemCountFunc()
  34. return #self.trialsTbl.reward
  35. end
  36. function this:ListItemGetFunc(realIndex)
  37. end
  38. function this:ListItemInitFunc(realIndex, kmlcontrol)
  39. end
  40. function this:ListItemUpdateFunc(realIndex, kmlcontrol)
  41. local item = GUI:GetChildControl(self.view.rewardItem_List, realIndex, "control_item")
  42. local count = GUI:GetChildControl(self.view.rewardItem_List, realIndex, "countTxt")
  43. local info = self.trialsTbl.reward[realIndex + 1]
  44. GUI:Item_setItemId(item, info[1])
  45. GUI:Text_setString(count, tostring(info[2]))
  46. GUI:AddOnClickEvent(item, self, self.ShowItemTips, info[1])
  47. end
  48. function this:FinishListItemUpdateFunc(realIndex, kmlcontrol)
  49. local item = GUI:GetChildControl(self.view.rewardItem_finish_List, realIndex, "control_finish_item")
  50. local count = GUI:GetChildControl(self.view.rewardItem_finish_List, realIndex, "countFinishTxt")
  51. local info = self.trialsTbl.reward[realIndex + 1]
  52. GUI:Item_setItemId(item, info[1])
  53. GUI:Text_setString(count, tostring(info[2]))
  54. GUI:AddOnClickEvent(item, self, self.ShowItemTips, info[1])
  55. end
  56. function this:ShowItemTips(_, id)
  57. SL:OpenTips(nil, id)
  58. end
  59. ---注册UI事件和服务器消息
  60. function this:RegistEvents()
  61. GUI:AddOnClickEvent(self.view.btn_reward, self, self.RewardOnClick)
  62. GUI:AddOnClickEvent(self.view.exitBtn_task, self, self.ExitBtnOnClick)
  63. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_QUIT_DUPLICATE, self.RES_QUIT_DUPLICATE, self)
  64. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_COMBO_TES_TASK_UPDATE, self.RES_COMBO_TES_TASK_UPDATE, self)
  65. end
  66. ---界面显示时调用一次
  67. function this:Show()
  68. end
  69. ---创建或者刷新界面数据时调用
  70. function this:Refresh()
  71. GUI:setVisible(self.view.exitBtn_task, true)
  72. GUI:Text_setString(self.view.title_task, self.trialsTbl.name[1])
  73. ---@type cfg_repTask_column
  74. local task = SL:GetConfig("cfg_repTask", tonumber(self.trialsTbl.repTarget))
  75. GUI:Text_setString(self.view.taskName_task, task.UItext)
  76. GUI:setVisible(self.view.panel_finish, false)
  77. GUI:setVisible(self.view.countDown_in_copy, false)
  78. --self.taskNum = task.param[2]
  79. GUI:Text_setString(self.view.taskProgress_task, "0/" .. task.param[1])
  80. --GUI:setPosition(self.view.rewardItem_layout, -27, -60)
  81. GUI:setVisible(self.view.rewardItem_layout, true)
  82. GUI:setVisible(self.view.rewardItem_finish_layout, false)
  83. GUI:DataListUpdateData(self.view.rewardItem_List)
  84. GUI:setVisible(self.view.panel_start, true)
  85. self:RefreshComboState(self.args)
  86. end
  87. function this:RefreshComboState(message)
  88. self.trialsState = message["1"]
  89. self.trialsNextStateTime = message["2"]
  90. if self.trialsState == 1 then
  91. ---准备阶段
  92. GUI:Text_setString(self.view.text_countdown_tips, "副本开始倒计时:")
  93. GUI:SetControl_time(self.view.countdown_out_copy, self.trialsTbl.prepareTime)
  94. GUI:setVisible(self.view.text_countdown_tips, true)
  95. elseif self.trialsState == 2 then
  96. ---战斗阶段
  97. GUI:setVisible(self.view.text_countdown_tips, false)
  98. local time = (self.trialsNextStateTime - Time.GetServerTime()) / 1000
  99. GUI:SetControl_time(self.view.countDown_in_copy, math.floor(time))
  100. GUI:setVisible(self.view.countDown_in_copy, true)
  101. elseif self.trialsState == 3 then
  102. ---完成阶段
  103. if message["4"] then
  104. self:RefreshFinishPanel()
  105. else
  106. self:ExitBtnOnClick()
  107. end
  108. end
  109. end
  110. function this:RefreshFinishPanel()
  111. GUI:setVisible(self.view.exitBtn_task, false)
  112. GUI:setVisible(self.view.panel_start, false)
  113. GUI:setVisible(self.view.text_countdown_tips, true)
  114. GUI:setVisible(self.view.countDown_in_copy, false)
  115. GUI:Text_setString(self.view.text_countdown_tips, "副本结束倒计时:")
  116. GUI:SetControl_time(self.view.countdown_out_copy, self.trialsTbl.save)
  117. GUI:setVisible(self.view.rewardItem_layout, false)
  118. GUI:setVisible(self.view.rewardItem_finish_layout, true)
  119. GUI:DataListUpdateData(self.view.rewardItem_finish_List)
  120. GUI:setVisible(self.view.panel_finish, true)
  121. end
  122. function this:RewardOnClick()
  123. SL:SendLuaNetMsg(LuaMessageIdToSever.COMBO_TEST_REWARD, self.trialsTbl.id)
  124. end
  125. function this:ExitBtnOnClick()
  126. if self.trialsState == 3 then
  127. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_QUIT_DUPLICATE, self.trialsTbl.id)
  128. else
  129. SL:CommonTipsMessage({ stringTblID = 210, callback = function()
  130. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_QUIT_DUPLICATE, self.trialsTbl.id)
  131. end })
  132. end
  133. end
  134. function this:RES_COMBO_TES_TASK_UPDATE(_, message)
  135. if tonumber(message.phase) == tonumber(self.trialsTbl.repTarget) then
  136. GUI:Text_setString(self.view.taskProgress_task, message.nowCount .. "/" .. message.totalCount)
  137. end
  138. end
  139. function this:RES_QUIT_DUPLICATE()
  140. GUI:UIPanel_Close("dev/outui/Activity/Panel/KLActivityComboProgress/KLActivityComboProgressPanel")
  141. end
  142. function this:SetVisible(isVisible)
  143. GUI:setVisible(self.view.root,isVisible)
  144. end
  145. function this:Hide()
  146. end
  147. function this:Close()
  148. InfoManager.copActivityInfo.hideTask = false
  149. end
  150. return this