KLOpenServiceWingTaskPanel.lua 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. ---@class KLOpenServiceWingTaskPanel:UIKmlLuaPanelBase
  2. ---@field view KLOpenServiceWingTaskPanelView
  3. local KLOpenServiceWingTaskPanel = class(UIKmlLuaPanelBase)
  4. local this = KLOpenServiceWingTaskPanel
  5. function this:AsyncLoadUI()
  6. end
  7. ---创建时调用一次
  8. function this:Init()
  9. self.allTaskItem = {}
  10. self.curSelectTaskMap = {}
  11. GUI:DataListInitData(self.view.taskDataList, function()
  12. return self:TaskDataListItemCountFunc()
  13. end, function(realIndex)
  14. return self:TaskDataListItemGetFunc(realIndex)
  15. end, function(realIndex, kmlcontrol)
  16. return self:TaskDataListItemInitFunc(realIndex, kmlcontrol)
  17. end, function(realIndex, kmlcontrol)
  18. return self:TaskDataListItemUpdateFunc(realIndex, kmlcontrol)
  19. end)
  20. self.allChapterItem = {}
  21. self.allChapterCfg = {}
  22. GUI:DataListInitData(self.view.chapterDataList, function()
  23. return self:ChapterDataListItemCountFunc()
  24. end, function(realIndex)
  25. return self:ChapterDataListItemGetFunc(realIndex)
  26. end, function(realIndex, kmlcontrol)
  27. end, function(realIndex, kmlcontrol)
  28. return self:ChapterDataListItemUpdateFunc(realIndex, kmlcontrol)
  29. end)
  30. self:InitCfg()
  31. end
  32. function this:InitCfg()
  33. self.allChapterCfg = SL:GetConfigTable("cfg_wings")
  34. end
  35. ---注册UI事件和服务器消息
  36. function this:RegistEvents()
  37. GUI:AddOnClickEvent(self.view.btn_Get, self, self.GetOnClick)
  38. SL:RegisterLUAEvent(LUA_EVENT_WING_TASK_CHANGE, self.RefreshMain, self)
  39. SL:RegisterLUAEvent(LUA_EVENT_WING_CHAPTER_CHANGE, self.Refresh, self)
  40. end
  41. function this:GetOnClick()
  42. local cfg = SL:GetConfig("cfg_wings", self.selectChapter)
  43. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECEIVE_WINGS_CHAPTER_AWARD, cfg.groupID)
  44. end
  45. ---界面显示时调用一次
  46. function this:Show()
  47. end
  48. ---创建或者刷新界面数据时调用
  49. function this:Refresh()
  50. if InfoManager.wingTaskInfo.curChapter==-1 then --任务都完成了
  51. self.selectChapter = self.selectChapter or 1
  52. else
  53. self.selectChapter = InfoManager.wingTaskInfo.curChapter
  54. end
  55. GUI:DataListUpdateData(self.view.chapterDataList)
  56. self:RefreshMain()
  57. end
  58. function this:RefreshMain()
  59. local state = InfoManager.wingTaskInfo.wingChapterState[self.selectChapter]
  60. if state then
  61. self.selectUnlockChapter = self.selectChapter
  62. end
  63. if self.selectUnlockChapter then
  64. self.curSelectTaskMap = {}
  65. local accept = {}
  66. local finish = {}
  67. local isGet = {}
  68. for key, value in pairs(InfoManager.wingTaskInfo.wingTaskMap[self.selectUnlockChapter]) do
  69. if value.state == E_ChapterState.FINISH then
  70. table.insert(finish, value)
  71. elseif value.state == E_ChapterState.ACCPT then
  72. table.insert(accept, value)
  73. else
  74. table.insert(isGet, value)
  75. end
  76. end
  77. table.AddRanage(self.curSelectTaskMap, finish)
  78. table.AddRanage(self.curSelectTaskMap, accept)
  79. table.AddRanage(self.curSelectTaskMap, isGet)
  80. GUI:DataListUpdateData(self.view.taskDataList)
  81. end
  82. GUI:setVisible(self.view.btn_Get, state and state == E_ChapterState.FINISH)
  83. GUI:setVisible(self.view.chapter, not state or state == E_ChapterState.ACCPT)
  84. GUI:setVisible(self.view.img_Get, state and state == E_ChapterState.REWARD)
  85. GUI:Text_setString(self.view.txt_chapter, tostring(self.selectChapter))
  86. self:RefreshModel()
  87. end
  88. function this:RefreshModel()
  89. local cfg = SL:GetConfig("cfg_wings", self.selectChapter)
  90. GUI:Item_setItemId(self.view.EquipItem, cfg.rewardItem[1])
  91. GUI:Item_Scale(self.view.EquipItem, 150)
  92. GUI:AddOnClickEvent(self.view.EquipItem, self, function()
  93. SL:OpenTips(nil, cfg.rewardItem[1])
  94. end)
  95. end
  96. function this:Close()
  97. end
  98. function this:TaskDataListItemCountFunc()
  99. return #self.curSelectTaskMap
  100. end
  101. function this:TaskDataListItemGetFunc(realIndex)
  102. local item = GUI:UIPanel_Open("dev/outui/WingTask/Item/KLOpenServiceWingTask/KLOpenServiceWingTaskItem",
  103. self.view.taskDataList, self, {}, true)
  104. self.allTaskItem[item.view.root] = item
  105. return item.view.root
  106. end
  107. function this:TaskDataListItemInitFunc(realIndex, kmlcontrol)
  108. end
  109. function this:TaskDataListItemUpdateFunc(realIndex, kmlcontrol)
  110. local data = self.curSelectTaskMap[realIndex + 1]
  111. self.allTaskItem[kmlcontrol]:RefreshItem(data)
  112. end
  113. local PosArry = {
  114. { -159, 50 },
  115. { -14, -11 },
  116. { 136, 50 },
  117. }
  118. function this:ChapterDataListItemCountFunc()
  119. return table.count(PosArry)
  120. end
  121. function this:ChapterDataListItemGetFunc(realIndex)
  122. local item = GUI:UIPanel_Open(
  123. "dev/outui/WingTask/Item/KLOpenServiceWingTaskChapter/KLOpenServiceWingTaskChapterItem",
  124. self.view.chapterDataList, self, {}, true)
  125. GUI:setPosition(item.view.root, PosArry[realIndex + 1][1], PosArry[realIndex + 1][2])
  126. self.allChapterItem[item.view.root] = item
  127. return item.view.root
  128. end
  129. function this:ChapterDataListItemUpdateFunc(realIndex, kmlcontrol)
  130. -- local data = self.allChapterCfg[realIndex + 1]
  131. self.allChapterItem[kmlcontrol]:RefreshItem(realIndex + 1, self.ChapterOnClick, self)
  132. end
  133. function this:ChapterOnClick(index)
  134. self.selectChapter = index
  135. for key, ctr in pairs(self.allChapterItem) do
  136. ctr:RefreshSelectState()
  137. end
  138. self:RefreshMain()
  139. end
  140. return this