KLBigSecretCopyRewardPanel.lua 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. ---@class KLBigSecretCopyRewardPanel:UIKmlLuaPanelBase
  2. ---@field view KLBigSecretCopyRewardPanelView
  3. local KLBigSecretCopyRewardPanel = class(UIKmlLuaPanelBase)
  4. local this = KLBigSecretCopyRewardPanel
  5. ---创建时调用一次
  6. function this:Init()
  7. SL.HideMainPanel()
  8. GUI:DataListInitData(self.view.reward_data_list,function()
  9. return self:SecretRewardDataListItemCountFunc()
  10. end,function(realIndex)
  11. return self:SecretRewardDataListItemGetFunc(realIndex)
  12. end,function(realIndex, kmlcontrol)
  13. return self:SecretRewardDataListItemInitFunc(realIndex, kmlcontrol)
  14. end, function(realIndex, kmlcontrol)
  15. return self:SecretRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
  16. end)
  17. self.reward_all_item = {}
  18. self.data = self.args
  19. GUI:Text_setString(self.view.level,tostring(self.data.keyLevel))
  20. self.rep_data = SL:GetConfigMultiKeys('cfg_rep', 19001, self.data.keyLevel, 'type', 'repLevel')
  21. local passedTime = math.floor( self.data.passedTime/1000 )
  22. local time_tab = SL:SecondToHMS(passedTime)
  23. local time_str = ""
  24. if time_tab.d and time_tab.d >0 then
  25. time_str = time_str ..time_tab.d .. "天"
  26. end
  27. if time_tab.h and time_tab.h >0 then
  28. time_str = time_str ..time_tab.h .. "小时"
  29. end
  30. if time_tab.m and time_tab.m >0 then
  31. time_str = time_str..time_tab.m .. "分"
  32. end
  33. time_str = time_str ..time_tab.s .. "秒"
  34. GUI:Text_setString(self.view.shichang,time_str)
  35. GUI:Text_setTextColor(self.view.shichang,"#ff2323")
  36. if not self.data.score or string.isNullOrEmpty(self.data.score) then
  37. GUI:Image_loadTexture(self.view.pingfen,"icon_wei", "Atlas/UIBigSecretCopy.spriteatlas")
  38. --GUI:setPositionX(self.view.pingfen,20)
  39. else
  40. --GUI:setPositionX(self.view.pingfen,0)
  41. if self.data.score == "B" then
  42. GUI:Image_loadTexture(self.view.pingfen,"icon_b", "Atlas/UIBigSecretCopy.spriteatlas")
  43. elseif self.data.score == "S" then
  44. GUI:Image_loadTexture(self.view.pingfen,"icon_s", "Atlas/UIBigSecretCopy.spriteatlas")
  45. elseif self.data.score == "SS" then
  46. GUI:Image_loadTexture(self.view.pingfen,"icon_ss", "Atlas/UIBigSecretCopy.spriteatlas")
  47. elseif self.data.score == "SSS" then
  48. GUI:Image_loadTexture(self.view.pingfen,"icon_sss", "Atlas/UIBigSecretCopy.spriteatlas")
  49. end
  50. end
  51. local reward_count_str = "剩余奖励次数:" .. self.data.rewardCount
  52. GUI:Text_setString(self.view.jiangli_count,reward_count_str)
  53. self.AllRwward = {}
  54. if self.data.rewardItems then
  55. for _cfg_id, _count in pairs(self.data.rewardItems) do
  56. table.insert(self.AllRwward ,{cfgId = tonumber(_cfg_id),count=tonumber(_count)})
  57. end
  58. end
  59. GUI:DataListUpdateData(self.view.reward_data_list)
  60. --提示钥匙等级
  61. if tonumber(self.data.resLevelUp) >= 0 then
  62. GUI:setVisible(self.view.reward_panel,false)
  63. GUI:setVisible(self.view.level_up_panel,true)
  64. self:TipLevelUp()
  65. else
  66. GUI:setVisible(self.view.reward_panel,true)
  67. GUI:setVisible(self.view.level_up_panel,false)
  68. self:beginRewardCountDown()
  69. end
  70. end
  71. ---创建或者刷新界面数据时调用
  72. function this:Refresh()
  73. end
  74. ---注册UI事件和服务器消息
  75. function this:RegistEvents()
  76. GUI:AddOnClickEvent(self.view.btn_yes,self,self.YesOnclick)
  77. GUI:AddOnClickEvent(self.view.btn_no,self,self.CloseOnclick)
  78. GUI:AddOnClickEvent(self.view.btn_sure,self,self.btn_sure_Onclick)
  79. GUI:AddOnClickEvent(self.view.btn_cancel,self,self.btn_cancel_Onclick)
  80. GUI:AddOnClickEvent(self.view.tips_closeBtn,self,self.btn_cancel_Onclick)
  81. end
  82. function this:UnRegistEvents()
  83. end
  84. function this:CloseOnclick()
  85. self:StopTime1()
  86. GUI:UIPanel_Close("dev/outui/BigSecretCopy/Panel/KLBigSecretCopyReward/KLBigSecretCopyRewardPanel")
  87. --GUI:UIPanel_Open("dev/outui/BigSecretCopy/Panel/KLBigSecretCopy/KLBigSecretCopyRewardPanel")
  88. SL.ShowMainPanel()
  89. local task_ui = GUI:GetUI("dev/outui/BigSecretCopy/Panel/KLBigSecretCopyTask/KLBigSecretCopyTaskPanel")
  90. if task_ui then
  91. task_ui:DelayExitSure()
  92. end
  93. end
  94. function this:SecretRewardDataListItemCountFunc()
  95. return #self.AllRwward
  96. end
  97. function this:SecretRewardDataListItemGetFunc(realIndex)
  98. local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem",self.view.reward_data_list,self,{},true)
  99. self.reward_all_item[item.view.root] = item
  100. return item.view.root
  101. end
  102. function this:SecretRewardDataListItemInitFunc(realIndex, kmlcontrol)
  103. end
  104. function this:SecretRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
  105. local data = self.AllRwward[realIndex + 1]
  106. self.reward_all_item[kmlcontrol]:RefreshItem(data,self.select_Secret_level,self)
  107. end
  108. function this:Close()
  109. self.is_timer_open = false
  110. self.is_timer_open2 = false
  111. self:UnRegistEvents()
  112. if self.timer then
  113. SL:UnSchedule(self.timer)
  114. self.timer = nil
  115. end
  116. if self.timer2 then
  117. SL:UnSchedule(self.timer2)
  118. self.timer2 = nil
  119. end
  120. end
  121. function this:ShowRewardPanel()
  122. GUI:setVisible(self.view.reward_panel,true)
  123. GUI:setVisible(self.view.level_up_panel,false)
  124. self:beginRewardCountDown()
  125. end
  126. function this:beginRewardCountDown()
  127. local last_time = SL:GetConfig("cfg_repGlobal",19001004).value
  128. self.last_time = tonumber(last_time)
  129. self.all_time = tonumber(last_time)
  130. self.is_timer_open = true
  131. if self.data.rewardCount > 0 then
  132. GUI:setVisible(self.view.btn_no,true)
  133. GUI:Text_setString(self.view.tishi,"是否进行奖励领取")
  134. GUI:setPositionX(self.view.btn_yes,100)
  135. else
  136. GUI:setVisible(self.view.btn_no,false)
  137. GUI:Text_setString(self.view.tishi,"奖励次数不足,无法领取奖励")
  138. GUI:setPositionX(self.view.btn_yes,0)
  139. end
  140. GUI:setVisible(self.view.btn_yes,true)
  141. self.timer = SL:Schedule(self.timer,0,1,self.all_time,function()
  142. if not self.is_timer_open then
  143. return
  144. end
  145. if self.data.rewardCount <= 0 then
  146. local time_str = "确定(".. self.last_time ..")"
  147. GUI:Text_setString(self.view.btn_yes_countdown,time_str)
  148. elseif self.data.isReceiveReward then
  149. local time_str = "使用(".. self.last_time ..")"
  150. GUI:Text_setString(self.view.btn_yes_countdown,time_str)
  151. else
  152. local time_str = "否(".. self.last_time ..")"
  153. GUI:Text_setString(self.view.btn_no_countdown,time_str)
  154. end
  155. if self.last_time <= 0 then
  156. self.is_timer_open = false
  157. if self.data.rewardCount <= 0 then
  158. self:CloseOnclick()
  159. elseif self.data.isReceiveReward then
  160. self:YesOnclick()
  161. else
  162. self:CloseOnclick()
  163. end
  164. end
  165. self.last_time = self.last_time - 1
  166. end)
  167. end
  168. function this:YesOnclick()
  169. self:StopTime1()
  170. local task_ui = GUI:GetUI("dev/outui/BigSecretCopy/Panel/KLBigSecretCopyTask/KLBigSecretCopyTaskPanel")
  171. local configId = task_ui.configId
  172. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BIG_SECRET_REALM_RECEIVE_REWARD,configId)
  173. self:CloseOnclick()
  174. end
  175. --tonumber(self.data.resLevelUp) > self.data.keyLevel
  176. function this:TipLevelUp()
  177. local string1 = SL:GetConfig("cfg_string",19001).text
  178. local tip_str = string.format(string1,self:AddColor(self.data.keyLevel),self:AddColor(self.data.score),self:AddColor(self.data.resLevelUp))
  179. GUI:Text_setString(self.view.tipsContent,tip_str)
  180. local l_time = SL:GetConfig("cfg_repGlobal",19001002).value
  181. self.last_time2 = tonumber(l_time)
  182. self.all_time2 = tonumber(l_time)
  183. self.is_timer_open2 = true
  184. self.timer2 = SL:Schedule(self.timer2,0,1,self.all_time2,function()
  185. if not self.is_timer_open2 then
  186. return
  187. end
  188. local time_str = "是(".. self.last_time2 ..")"
  189. GUI:Text_setString(self.view.btn_sure_countdown,time_str)
  190. if self.last_time2 <= 0 then
  191. self.is_timer_open2 = false
  192. self:btn_sure_Onclick()
  193. end
  194. self.last_time2 = self.last_time2 - 1
  195. end)
  196. end
  197. function this:StopTime1()
  198. if self.timer then
  199. SL:UnSchedule(self.timer)
  200. self.timer = nil
  201. end
  202. end
  203. function this:StopTime2()
  204. if self.timer2 then
  205. SL:UnSchedule(self.timer2)
  206. self.timer2 = nil
  207. end
  208. end
  209. function this:AddColor(aaa)
  210. return "<color=#1add1f>" .. aaa .. "</color>"
  211. end
  212. function this:btn_sure_Onclick()
  213. self:StopTime2()
  214. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BIG_SECRET_REALM_KEY_LEVEL_UP, tonumber(self.data.resLevelUp))
  215. self:ShowRewardPanel()
  216. end
  217. function this:btn_cancel_Onclick()
  218. self:StopTime2()
  219. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BIG_SECRET_REALM_KEY_LEVEL_UP, 0)
  220. self:ShowRewardPanel()
  221. end
  222. return this