KLSiegeRewardPanel.lua 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. ---@class KLSiegeRewardPanel:UIKmlLuaPanelBase
  2. ---@field view KLSiegeRewardPanelView
  3. ---@field Reward1DataList table<number,{id:number,count:number}>
  4. ---@field Reward2DataList table<number,{id:number,count:number}>
  5. ---@field Reward3DataList table<number,{id:number,count:number}>
  6. ---@field Reward4DataList table<number,{rank:number,rewardList:table<number,{id:number,count:number}>}>
  7. local KLSiegeRewardPanel = class(UIKmlLuaPanelBase)
  8. local this =KLSiegeRewardPanel
  9. function this:AsyncLoadUI()
  10. end
  11. ---创建时调用一次
  12. function this:Init()
  13. self:InitText()
  14. GUI:DataListInitData(self.view.Reward1DataList,function()
  15. return self:GetReward1DataListItemCountFunc()
  16. end,function(realIndex)
  17. return self:GetReward1DataListItemGetFunc(realIndex)
  18. end,function(realIndex, kmlcontrol)
  19. return self:GetReward1DataListItemInitFunc(realIndex, kmlcontrol)
  20. end, function(realIndex, kmlcontrol)
  21. return self:GetReward1DataListItemUpdateFunc(realIndex, kmlcontrol)
  22. end)
  23. GUI:DataListInitData(self.view.Reward2DataList,function()
  24. return self:GetReward2DataListItemCountFunc()
  25. end,function(realIndex)
  26. return self:GetReward2DataListItemGetFunc(realIndex)
  27. end,function(realIndex, kmlcontrol)
  28. return self:GetReward2DataListItemInitFunc(realIndex, kmlcontrol)
  29. end, function(realIndex, kmlcontrol)
  30. return self:GetReward2DataListItemUpdateFunc(realIndex, kmlcontrol)
  31. end)
  32. GUI:DataListInitData(self.view.Reward3DataList,function()
  33. return self:GetReward3DataListItemCountFunc()
  34. end,function(realIndex)
  35. return self:GetReward3DataListItemGetFunc(realIndex)
  36. end,function(realIndex, kmlcontrol)
  37. return self:GetReward3DataListItemInitFunc(realIndex, kmlcontrol)
  38. end, function(realIndex, kmlcontrol)
  39. return self:GetReward3DataListItemUpdateFunc(realIndex, kmlcontrol)
  40. end)
  41. GUI:DataListInitData(self.view.Reward4DataList,function()
  42. return self:GetReward4DataListItemCountFunc()
  43. end,function(realIndex)
  44. return self:GetReward4DataListItemGetFunc(realIndex)
  45. end,function(realIndex, kmlcontrol)
  46. return self:GetReward4DataListItemInitFunc(realIndex, kmlcontrol)
  47. end, function(realIndex, kmlcontrol)
  48. return self:GetReward4DataListItemUpdateFunc(realIndex, kmlcontrol)
  49. end)
  50. self:GetAllRewardData()
  51. self:GetPersonalRewardData()
  52. end
  53. ---注册UI事件和服务器消息
  54. function this:RegistEvents()
  55. GUI:AddOnClickEvent(self.view.btn_close,self,self.BtnCloseClick)
  56. end
  57. function this:BtnCloseClick()
  58. GUI:UIPanel_Close("dev/outui/LoranSiege/Panel/KLSiegeReward/KLSiegeRewardPanel")
  59. GUI:UIPanel_Open("dev/outui/LoranSiege/Panel/KLSiegeMain/KLSiegeMainPanel")
  60. end
  61. ---界面显示时调用一次
  62. function this:Show()
  63. end
  64. ---创建或者刷新界面数据时调用
  65. function this:Refresh()
  66. SL.HideMainPanel()
  67. end
  68. function this:Close()
  69. for i, v in pairs(self.Reward4ItemsList) do
  70. if v then
  71. GUI:UIPanel_Close(nil,v)
  72. end
  73. end
  74. self.Reward4ItemsList = {}
  75. end
  76. ---初始化文本信息
  77. function this:InitText()
  78. GUI:Text_setString(self.view.LeftInfoText1,SL:GetConfig("cfg_rule_text",16001).location)
  79. GUI:Text_setString(self.view.LeftInfoText2,SL:GetConfig("cfg_rule_text",16002).location)
  80. GUI:Text_setString(self.view.LeftInfoText3,SL:GetConfig("cfg_rule_text",16003).location)
  81. GUI:Text_setString(self.view.LeftInfoText4,SL:GetConfig("cfg_rule_text",16004).location)
  82. end
  83. ---获取所有奖励数据
  84. function this:GetAllRewardData()
  85. self.Reward1DataList = {}
  86. self:GetRewardData(16001015,self.Reward1DataList)
  87. self.Reward2DataList = {}
  88. self:GetRewardData(16001016,self.Reward2DataList)
  89. self.Reward3DataList = {}
  90. self:GetRewardData(16001017,self.Reward3DataList)
  91. GUI:DataListUpdateData(self.view.Reward1DataList,true)
  92. GUI:DataListUpdateData(self.view.Reward2DataList,true)
  93. GUI:DataListUpdateData(self.view.Reward3DataList,true)
  94. end
  95. ---获取单个奖励信息
  96. ---@param id number @cfg_repGlobal表id
  97. ---@param list table @存储的列表
  98. function this:GetRewardData(id,list)
  99. ---@type cfg_repGlobal_column
  100. local cfg1 = SL:GetConfig("cfg_repGlobal",id)
  101. local strList = string.split(cfg1.value,"|")
  102. for i, v in ipairs(strList) do
  103. local data = string.split(v,"#")
  104. local itemID = tonumber(data[1])
  105. local itemCount = tonumber(data[2])
  106. table.insert(list,{id = itemID,count = itemCount})
  107. end
  108. end
  109. ---获取个人奖励信息
  110. function this:GetPersonalRewardData()
  111. self.Reward4DataList = {}
  112. ---@type cfg_repGlobal_column
  113. local cfg1 = SL:GetConfig("cfg_repGlobal",16001014)
  114. local strList = string.split(cfg1.value,"|")
  115. for i, v in ipairs(strList) do
  116. local str2List = string.split(v,"&")
  117. local rank = ""
  118. local rewardList = {}
  119. for z, a in ipairs(str2List) do
  120. local str3List = string.split(a,"#")
  121. if z == 1 then
  122. --名次相同显示一个
  123. if str3List[1] == str3List[2] then
  124. rank = "第"..str3List[1].."名"
  125. else
  126. rank = "第"..str3List[1].."名~".."第"..str3List[2].."名"
  127. end
  128. else
  129. table.insert(rewardList,{id = tonumber(str3List[1]),count = tonumber(str3List[2])})
  130. end
  131. end
  132. table.insert(self.Reward4DataList,{rank = rank,rewardList = rewardList})
  133. end
  134. GUI:DataListUpdateData(self.view.Reward4DataList,true)
  135. end
  136. -------------------胜利方战盟盟主奖励---------------------------
  137. function this:GetReward1DataListItemCountFunc()
  138. return #self.Reward1DataList
  139. end
  140. function this:GetReward1DataListItemGetFunc(realIndex)
  141. end
  142. function this:GetReward1DataListItemInitFunc(realIndex, kmlcontrol)
  143. end
  144. function this:GetReward1DataListItemUpdateFunc(realIndex, kmlcontrol)
  145. local data = self.Reward1DataList[realIndex + 1]
  146. local item = GUI:GetChildControl(self.view.Reward1DataList,realIndex,'Reward1_Item')
  147. GUI:Item_UpdataData(item, {
  148. itemid = data.id,
  149. itemcustomcount = data.count,
  150. })
  151. GUI:AddOnClickEvent(item, self, function()
  152. SL:OpenTips(nil, data.id)
  153. end)
  154. end
  155. --------------------------------------------
  156. -------------------胜利方战盟成员奖励---------------------------
  157. function this:GetReward2DataListItemCountFunc()
  158. return #self.Reward2DataList
  159. end
  160. function this:GetReward2DataListItemGetFunc(realIndex)
  161. end
  162. function this:GetReward2DataListItemInitFunc(realIndex, kmlcontrol)
  163. end
  164. function this:GetReward2DataListItemUpdateFunc(realIndex, kmlcontrol)
  165. local data = self.Reward2DataList[realIndex + 1]
  166. local item = GUI:GetChildControl(self.view.Reward2DataList,realIndex,'Reward2_Item')
  167. GUI:Item_UpdataData(item, {
  168. itemid = data.id,
  169. itemcustomcount = data.count,
  170. })
  171. GUI:AddOnClickEvent(item, self, function()
  172. SL:OpenTips(nil, data.id)
  173. end)
  174. end
  175. --------------------------------------------
  176. -------------------失败方战盟成员奖励---------------------------
  177. function this:GetReward3DataListItemCountFunc()
  178. return #self.Reward3DataList
  179. end
  180. function this:GetReward3DataListItemGetFunc(realIndex)
  181. end
  182. function this:GetReward3DataListItemInitFunc(realIndex, kmlcontrol)
  183. end
  184. function this:GetReward3DataListItemUpdateFunc(realIndex, kmlcontrol)
  185. local data = self.Reward3DataList[realIndex + 1]
  186. local item = GUI:GetChildControl(self.view.Reward3DataList,realIndex,'Reward3_Item')
  187. GUI:Item_UpdataData(item, {
  188. itemid = data.id,
  189. itemcustomcount = data.count,
  190. })
  191. GUI:AddOnClickEvent(item, self, function()
  192. SL:OpenTips(nil, data.id)
  193. end)
  194. end
  195. --------------------------------------------
  196. -------------------个人奖励预览---------------------------
  197. function this:GetReward4DataListItemCountFunc()
  198. return #self.Reward4DataList
  199. end
  200. function this:GetReward4DataListItemGetFunc(realIndex)
  201. ---@type KLPersonalRewardItem
  202. local item = GUI:UIPanel_Open("dev/outui/LoranSiege/Item/KLPersonalReward/KLPersonalRewardItem", self.view.Reward4DataList, self, nil, true)
  203. if not self.Reward4ItemsList then
  204. ---@type table<KingML.KmlControl,KLPersonalRewardItem>
  205. self.Reward4ItemsList = {}
  206. end
  207. local kmlCtrl = item.view.root
  208. self.Reward4ItemsList[kmlCtrl] = item
  209. return kmlCtrl
  210. end
  211. function this:GetReward4DataListItemInitFunc(realIndex, kmlcontrol)
  212. end
  213. function this:GetReward4DataListItemUpdateFunc(realIndex, kmlcontrol)
  214. local data = self.Reward4DataList[realIndex + 1]
  215. local item = self.Reward4ItemsList[kmlcontrol]
  216. item:SetRankTextAndReward(data)
  217. end
  218. --------------------------------------------
  219. return this