KLBigSecretCopyPanel.lua 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. ---@class KLBigSecretCopyPanel:UIKmlLuaPanelBase
  2. ---@field view KLBigSecretCopyPanelView
  3. local KLBigSecretCopyPanel = class(UIKmlLuaPanelBase)
  4. local this = KLBigSecretCopyPanel
  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.AllRwward = {}
  18. self.reward_all_item = {}
  19. local saodang_str = SL:GetConfig("cfg_rule_text",19001).location
  20. GUI:Text_setString(self.view.pingfen_no,saodang_str)
  21. end
  22. ---创建或者刷新界面数据时调用
  23. function this:Refresh()
  24. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BIG_SECRET_REALM_PANEL_INFO, {})
  25. end
  26. ---注册UI事件和服务器消息
  27. function this:RegistEvents()
  28. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_BIG_SECRET_REALM_PANEL_INFO,self.RES_BIG_SECRET_REALM_PANEL_INFO,self)
  29. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_BIG_SECRET_REALM_RECEIVE_STATUS,self.RES_BIG_SECRET_REALM_RECEIVE_STATUS,self)
  30. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_BIG_SECRET_REALM_CLEARANCE_PANEL_INFO,self.RES_BIG_SECRET_REALM_CLEARANCE_PANEL_INFO,self)
  31. GUI:AddOnClickEvent(self.view.btn_close,self,self.CloseOnclick)
  32. GUI:AddOnClickEvent(self.view.btn_join,self,self.JoinCopy)
  33. GUI:AddOnClickEvent(self.view.btn_sao_dang,self,self.SaoDangOnclick)
  34. GUI:SetToggleOnValueChange(self.view.reward_toggle, self, self.reward_toggle_OnClick)
  35. GUI:AddOnClickEvent(self.view.men_piao_item,self,self.men_piao_item_OnClick)
  36. end
  37. function this:Close()
  38. self:UnRegistEvents()
  39. end
  40. function this:UnRegistEvents()
  41. SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_BIG_SECRET_REALM_PANEL_INFO,self.RES_BIG_SECRET_REALM_PANEL_INFO,self)
  42. SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_BIG_SECRET_REALM_RECEIVE_STATUS,self.RES_BIG_SECRET_REALM_RECEIVE_STATUS,self)
  43. SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_BIG_SECRET_REALM_CLEARANCE_PANEL_INFO,self.RES_BIG_SECRET_REALM_CLEARANCE_PANEL_INFO,self)
  44. end
  45. function this:CloseOnclick()
  46. GUI:UIPanel_Close("dev/outui/BigSecretCopy/Panel/KLBigSecretCopy/KLBigSecretCopyPanel")
  47. --GUI:UIPanel_Open("dev/outui/BigSecretCopy/Panel/KLBigSecretCopy/KLBigSecretCopyPanel")
  48. SL.ShowMainPanel()
  49. end
  50. function this:SecretRewardDataListItemCountFunc()
  51. return #self.AllRwward
  52. end
  53. function this:SecretRewardDataListItemGetFunc(realIndex)
  54. local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem",self.view.reward_data_list,self,{},true)
  55. self.reward_all_item[item.view.root] = item
  56. return item.view.root
  57. end
  58. function this:SecretRewardDataListItemInitFunc(realIndex, kmlcontrol)
  59. end
  60. function this:SecretRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
  61. local data = self.AllRwward[realIndex + 1]
  62. self.reward_all_item[kmlcontrol]:RefreshItem(data,self.select_Secret_level,self)
  63. end
  64. function this:SaoDangOnclick()
  65. --GUI:UIPanel_Open("dev/outui/BigSecretCopy/Panel/KLBigSecretCopyReward/KLBigSecretCopyRewardPanel")
  66. if self.data.rewardCount <= 0 then
  67. SL:TipMessage(SL:GetConfig('cfg_string',19004).text, 1, NoticeType.NoticeMid)
  68. return
  69. end
  70. self:TipSaoDang()
  71. end
  72. function this:TipSaoDang()
  73. SL:CommonTipsMessage({ stringTblID = 19003, showTips = "", ui = self, sureBtnText = "确定", cancelBtnText = "取消",
  74. callback = self.SendSaoDang })
  75. end
  76. function this:SendSaoDang( ... )
  77. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BIG_SECRET_REALM_SWEEP, this.rep_id)
  78. end
  79. --[[
  80. {
  81. score:
  82. isReceiveReward:false
  83. bonusId:2
  84. keyLevel:0
  85. rewardCount:2
  86. }
  87. --]]
  88. function this:RES_BIG_SECRET_REALM_PANEL_INFO(_id,message)
  89. --SL:LogTable(message,true)
  90. self.data = message
  91. if self.data.keyLevel == 0 then
  92. self.data.keyLevel = 1
  93. end
  94. GUI:Text_setString(self.view.level,tostring(self.data.keyLevel))
  95. GUI:Text_setString(self.view.last_num,tostring(self.data.rewardCount))
  96. GUI:Text_setString(self.view.jia_cheng_text,self.data.bonusInfo)
  97. self.rep_data = SL:GetConfigMultiKeys('cfg_rep', 19001, self.data.keyLevel, 'type', 'repLevel')
  98. this.rep_id = self.rep_data.id
  99. local recommend = self.rep_data.recommend
  100. local my_num = SL:MeData_GetSpecialAttrValue(recommend[1])
  101. if my_num >= recommend[2] then
  102. GUI:Text_setString(self.view.fangyu,tostring(recommend[2]))
  103. GUI:Text_setTextColor(self.view.fangyu,"#1add1f")
  104. else
  105. local str = recommend[2] .. "(您的防御值低于推荐值)"
  106. GUI:Text_setString(self.view.fangyu,str)
  107. GUI:Text_setTextColor(self.view.fangyu,"#ff2323")
  108. end
  109. if not self.data.score or string.isNullOrEmpty(self.data.score) then
  110. GUI:Image_loadTexture(self.view.pingfen,"icon_wei", "Atlas/UIBigSecretCopy.spriteatlas")
  111. GUI:setPositionX(self.view.pingfen,20)
  112. else
  113. GUI:setPositionX(self.view.pingfen,0)
  114. if self.data.score == "B" then
  115. GUI:Image_loadTexture(self.view.pingfen,"icon_b", "Atlas/UIBigSecretCopy.spriteatlas")
  116. elseif self.data.score == "S" then
  117. GUI:Image_loadTexture(self.view.pingfen,"icon_s", "Atlas/UIBigSecretCopy.spriteatlas")
  118. elseif self.data.score == "SS" then
  119. GUI:Image_loadTexture(self.view.pingfen,"icon_ss", "Atlas/UIBigSecretCopy.spriteatlas")
  120. elseif self.data.score == "SSS" then
  121. GUI:Image_loadTexture(self.view.pingfen,"icon_sss", "Atlas/UIBigSecretCopy.spriteatlas")
  122. end
  123. end
  124. local saodang_level = SL:GetConfig("cfg_repGlobal",19001006).value
  125. local target_level = self:GetDaoDangLevel(saodang_level)
  126. local cur_level = self:GetDaoDangLevel(self.data.score)
  127. if cur_level >= target_level then
  128. GUI:setVisible(self.view.pingfen_no,false)
  129. GUI:setVisible(self.view.btn_sao_dang,true)
  130. GUI:setPositionX(self.view.btn_join,630)
  131. else
  132. GUI:setVisible(self.view.pingfen_no,true)
  133. GUI:setVisible(self.view.btn_sao_dang,false)
  134. GUI:setPositionX(self.view.btn_join,770)
  135. end
  136. GUI:setVisible(self.view.btn_join,true)
  137. local baseCareer = SL:GetMetaValue(EMetaVarGetKey.JOB)
  138. self.AllRwward = {}
  139. for i, one_reward in ipairs(self.rep_data.UIJobReward) do
  140. if one_reward[1] == baseCareer then
  141. local _count = nil
  142. if self.rep_data.reward then
  143. for ii, one_list in ipairs(self.rep_data.UIreward) do
  144. if one_list[1] == one_reward[2] then
  145. _count = one_list[2]
  146. break
  147. end
  148. end
  149. end
  150. table.insert(self.AllRwward,{cfgId = one_reward[2],count=_count})
  151. end
  152. end
  153. GUI:DataListUpdateData(self.view.reward_data_list)
  154. local menpiao_id = SL:GetConfig("cfg_repGlobal",19001001).value
  155. local item_data = SL:GetConfig("cfg_item",tonumber(menpiao_id))
  156. local bagCount = SL:GetBagItemCount(item_data.id)
  157. local count_str = bagCount.."/1"
  158. local dengji = "钥匙等级:".. self.data.keyLevel .."级"
  159. GUI:Text_setString(self.view.piao_num,dengji)
  160. self.item_cfg_id = item_data.id
  161. GUI:Item_setItemId(self.view.men_piao_item,item_data.id)
  162. self.can_join = false
  163. if bagCount > 0 then
  164. GUI:Text_setTextColor(self.view.piao_num,"#1add1f")
  165. self.can_join = true
  166. else
  167. GUI:Text_setTextColor(self.view.piao_num,"#ff2323")
  168. end
  169. if self.data.isReceiveReward then
  170. GUI:Toggle_setIsOn(self.view.reward_toggle,true)
  171. else
  172. GUI:Toggle_setIsOn(self.view.reward_toggle,false)
  173. end
  174. end
  175. function this:GetDaoDangLevel(level_str)
  176. if level_str == "B" then
  177. return 1
  178. elseif level_str == "S" then
  179. return 2
  180. elseif level_str == "SS" then
  181. return 3
  182. elseif level_str == "SSS" then
  183. return 4
  184. end
  185. return 0
  186. end
  187. function this:reward_toggle_OnClick(kmlCtrl, eventData, args)
  188. if not self.data then
  189. return
  190. end
  191. if args[1] then
  192. if self.data.isReceiveReward then
  193. return
  194. end
  195. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BIG_SECRET_REALM_CHANGE_RECEIVE_STATUS)
  196. else
  197. if not self.data.isReceiveReward then
  198. return
  199. end
  200. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BIG_SECRET_REALM_CHANGE_RECEIVE_STATUS)
  201. end
  202. end
  203. function this:RES_BIG_SECRET_REALM_RECEIVE_STATUS(_id,message)
  204. if not self.data then
  205. return
  206. end
  207. self.data.isReceiveReward = message
  208. if message then
  209. GUI:Toggle_setIsOn(self.view.reward_toggle,true)
  210. else
  211. GUI:Toggle_setIsOn(self.view.reward_toggle,false)
  212. end
  213. end
  214. --进入大秘境副本
  215. function this:JoinCopy()
  216. if not self.rep_data then
  217. return
  218. end
  219. local playerLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
  220. local level = self.rep_data.level
  221. if playerLevel < level[1] or playerLevel > level[2] then
  222. SL:TipMessage(SL:GetConfig('cfg_string',118).text, 1, NoticeType.NoticeMid)
  223. return
  224. end
  225. if not self.can_join then
  226. SL:TipMessage(SL:GetConfig('cfg_string',495).text, 1, NoticeType.NoticeMid)
  227. return
  228. end
  229. if self.data.rewardCount <= 0 then
  230. self:TipJoin()
  231. return
  232. end
  233. self:SendJoin()
  234. end
  235. function this:RES_BIG_SECRET_REALM_CLEARANCE_PANEL_INFO(_id,message)
  236. --SL:LogTable(message,true)
  237. GUI:UIPanel_Open("dev/outui/BigSecretCopy/Panel/KLBigSecretCopyReward/KLBigSecretCopyRewardPanel",nil,nil,message)
  238. end
  239. function this:TipJoin()
  240. SL:CommonTipsMessage({ stringTblID = 19002, showTips = "", ui = self, sureBtnText = "确定", cancelBtnText = "取消",
  241. callback = self.SendJoin })
  242. end
  243. function this:SendJoin( )
  244. this:CloseOnclick()
  245. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_ENTER_DUPLICATE, this.rep_id)
  246. end
  247. function this:men_piao_item_OnClick()
  248. SL:OpenTips("",self.item_cfg_id)
  249. end
  250. return this