KLUnionToggleListPanel.lua 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. ---@class KLUnionToggleListPanel:UIKmlLuaPanelBase
  2. ---@field view KLUnionToggleListPanelView
  3. local KLUnionToggleListPanel = class(UIKmlLuaPanelBase)
  4. local this =KLUnionToggleListPanel
  5. ---创建时调用一次
  6. function this:Init()
  7. SL.HideMainPanel()
  8. end
  9. ---创建或者刷新界面数据时调用
  10. function this:Refresh()
  11. self.isFrist = true
  12. GUI:setVisible(self.view.electionToggle, false)
  13. GUI:Toggle_setIsOn(self.view.electionToggle, false)
  14. GUI:setVisible(self.view.replaceToggle, false)
  15. GUI:Toggle_setIsOn(self.view.replaceToggle, false)
  16. GUI:setVisible(self.view.campaignToggle, false)
  17. GUI:Toggle_setIsOn(self.view.campaignToggle, false)
  18. local unionId = self.args and self.args.unionId or SL:MeData_GetUnionId()
  19. if unionId == 0 then
  20. GUI:setVisible(self.view.ToggleUnionIcon, true)
  21. GUI:setVisible(self.view.ToggleUnionInIcon, false)
  22. self:joinToggle(nil,nil,{[1]=true})
  23. else
  24. GUI:setVisible(self.view.ToggleUnionIcon, false)
  25. GUI:setVisible(self.view.ToggleUnionInIcon, true)
  26. GUI:SetTogDefaultThis(self.view.infoToggle)
  27. --self:infoToggle()
  28. SL:ScheduleOnce(Time.deltaTime,function()
  29. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_GET_UNION_INFO)
  30. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_UNION_RUN_FOR_LEADER_DATA)
  31. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_GET_UNION_IMPEACH_INFO)
  32. end)
  33. end
  34. SL.HideMainPanel()
  35. end
  36. ---注册UI事件和服务器消息
  37. function this:RegistEvents()
  38. GUI:SetToggleOnValueChange(self.view.joinToggle, self, self.joinToggle)
  39. GUI:SetToggleOnValueChange(self.view.createToggle, self, self.createToggle)
  40. GUI:SetToggleOnValueChange(self.view.infoToggle, self, self.infoToggle)
  41. GUI:SetToggleOnValueChange(self.view.armbandToggle, self, self.armbandToggle)
  42. GUI:SetToggleOnValueChange(self.view.activityToggle, self, self.ActivityToggleChange)
  43. GUI:SetToggleOnValueChange(self.view.electionToggle, self, self.ElectionToggleChange)
  44. GUI:SetToggleOnValueChange(self.view.replaceToggle, self, self.ReplaceToggleChange)
  45. GUI:SetToggleOnValueChange(self.view.campaignToggle, self, self.CampaignToggleChange)
  46. GUI:SetToggleOnValueChange(self.view.taskToggle, self, self.taskToggleChange)
  47. SL:RegisterLUAEvent(LUA_EVENT_ELECTION_DATA_CHANGE, self.On_ElectionDataChange, self)
  48. SL:RegisterLUAEvent(LUA_EVENT_CHANGE_UNION_FUNCTION, self.On_ChangeToggle, self)
  49. SL:RegisterLUAEvent(LUA_EVENT_UNION_CAMPAIGN_DATA, self.On_CampaignDataChange, self)
  50. end
  51. function this:On_ChangeToggle(id, toggle)
  52. if self.view[toggle] then
  53. GUI:SetTogDefaultThis(self.view[toggle])
  54. --[[ GUI:Toggle_setIsOn(self.view[toggle], true)
  55. GUI:Tog]]
  56. end
  57. end
  58. function this:infoToggle(control,eventData,value)
  59. if value[1] then
  60. GUI:UIPanel_Open("dev/ui/Union/Panel/KLUnionMemberList/KLUnionMemberListPanel")
  61. GUI:UIPanel_Open("dev/ui/Union/Panel/KLUnionInfo/KLUnionInfoPanel")
  62. GUI:UIPanel_Close("dev/outui/Union/Panel/KLUnionActivity/KLUnionActivityPanel")
  63. self.isFrist = false
  64. self:OnClickBlock()
  65. else
  66. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionMemberList/KLUnionMemberListPanel")
  67. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionInfo/KLUnionInfoPanel")
  68. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionMemberInfo/KLUnionMemberInfoPanel")
  69. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionModifyFlag/KLUnionModifyFlagPanel")
  70. end
  71. end
  72. function this:joinToggle(control,eventData,value)
  73. if value[1] then
  74. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionCreate/KLUnionCreatePanel")
  75. GUI:UIPanel_Open("dev/ui/Union/Panel/KLUnionJoin/KLUnionJoinPanel")
  76. self:OnClickBlock()
  77. GUI:Button_setBright(self.view.joinToggle,false)
  78. else
  79. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionJoin/KLUnionJoinPanel")
  80. GUI:Button_setBright(self.view.joinToggle,true)
  81. end
  82. end
  83. function this:createToggle(control,eventData,value)
  84. if value[1] then
  85. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionSummaryInfo/KLUnionSummaryInfoPanel")
  86. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionJoin/KLUnionJoinPanel")
  87. GUI:UIPanel_Open("dev/ui/Union/Panel/KLUnionCreate/KLUnionCreatePanel")
  88. self:OnClickBlock()
  89. GUI:Button_setBright(self.view.createToggle,false)
  90. else
  91. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionCreate/KLUnionCreatePanel")
  92. GUI:Button_setBright(self.view.createToggle,true)
  93. end
  94. end
  95. ---臂章
  96. function this:armbandToggle(control,eventData,value)
  97. if value[1] and self.isFrist == false then
  98. GUI:UIPanel_Open("dev/outui/Union/Panel/KLArmbandUpgrade/KLArmbandUpgradePanel")
  99. self:OnClickBlock()
  100. GUI:Button_setBright(self.view.armbandToggle,false)
  101. else
  102. GUI:UIPanel_Close("dev/outui/Union/Panel/KLArmbandUpgrade/KLArmbandUpgradePanel")
  103. GUI:Button_setBright(self.view.armbandToggle,true)
  104. end
  105. end
  106. function this:ActivityToggleChange(control,eventData,value)
  107. if value[1] and self.isFrist == false then
  108. GUI:UIPanel_Open("dev/outui/Union/Panel/KLUnionActivity/KLUnionActivityPanel")
  109. self:OnClickBlock()
  110. GUI:Button_setBright(self.view.activityToggle,false)
  111. else
  112. GUI:UIPanel_Close("dev/outui/Union/Panel/KLUnionActivity/KLUnionActivityPanel")
  113. GUI:Button_setBright(self.view.activityToggle,true)
  114. end
  115. end
  116. function this:ElectionToggleChange(control,eventData,value)
  117. if value[1] and self.isFrist == false then
  118. GUI:UIPanel_Open("dev/outui/Union/Panel/KLUnionElectionAndReplace/KLUnionElectionAndReplacePanel",
  119. _, _, {type = EUnionLeaderOperateType.Election})
  120. self:OnClickBlock()
  121. GUI:Button_setBright(self.view.electionToggle,false)
  122. else
  123. GUI:UIPanel_Close("dev/outui/Union/Panel/KLUnionElectionAndReplace/KLUnionElectionAndReplacePanel")
  124. GUI:Button_setBright(self.view.electionToggle,true)
  125. end
  126. end
  127. function this:ReplaceToggleChange(control,eventData,value)
  128. if value[1] and self.isFrist == false then
  129. GUI:UIPanel_Open("dev/outui/Union/Panel/KLUnionElectionAndReplace/KLUnionElectionAndReplacePanel",
  130. _, _, {type = EUnionLeaderOperateType.Replace})
  131. self:OnClickBlock()
  132. GUI:Button_setBright(self.view.replaceToggle,false)
  133. else
  134. GUI:UIPanel_Close("dev/outui/Union/Panel/KLUnionElectionAndReplace/KLUnionElectionAndReplacePanel")
  135. GUI:Button_setBright(self.view.replaceToggle,true)
  136. end
  137. end
  138. function this:CampaignToggleChange(control,eventData,value)
  139. if value[1] and self.isFrist == false then
  140. GUI:UIPanel_Open("dev/outui/Union/Panel/KLUnionCampaign/KLUnionCampaignPanel",
  141. _, _, {type = EUnionLeaderOperateType.Campaign})
  142. self:OnClickBlock()
  143. GUI:Button_setBright(self.view.campaignToggle,false)
  144. else
  145. GUI:UIPanel_Close("dev/outui/Union/Panel/KLUnionCampaign/KLUnionCampaignPanel")
  146. GUI:Button_setBright(self.view.campaignToggle,true)
  147. end
  148. end
  149. function this:taskToggleChange(control,eventData,value)
  150. if value[1] and self.isFrist == false then
  151. GUI:UIPanel_Open("dev/outui/Union/Panel/KLUnionTask/KLUnionTaskPanel")
  152. self:OnClickBlock()
  153. GUI:Button_setBright(self.view.taskToggle,false)
  154. else
  155. GUI:UIPanel_Close("dev/outui/Union/Panel/KLUnionTask/KLUnionTaskPanel")
  156. GUI:Button_setBright(self.view.taskToggle,true)
  157. end
  158. end
  159. function this:On_ElectionDataChange(id, isReplace)
  160. if isReplace then
  161. GUI:setVisible(self.view.replaceToggle, false)
  162. if self.electionTimer then
  163. SL:UnSchedule(self.electionTimer)
  164. end
  165. if table.count(InfoManager.unionElectionInfo:GetReplaceDataList()) > 0 then
  166. local endTime = InfoManager.unionElectionInfo:GetReplaceEndTime()
  167. if endTime then
  168. endTime = tonumber(endTime)
  169. local nowTime = SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)
  170. local deltaTime = endTime - tonumber(nowTime)
  171. if deltaTime > 0 then
  172. GUI:setVisible(self.view.replaceToggle, true)
  173. self.electionTimer = SL:Schedule(self.electionTimer,0, 1, deltaTime // 1000 + 1, function()
  174. local nowTime_ = SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)
  175. local deltaTime_ = endTime - tonumber(nowTime_)
  176. if deltaTime_ <= 0 then
  177. GUI:setVisible(self.view.replaceToggle, false)
  178. SL:UnSchedule(self.electionTimer)
  179. self.electionTimer = nil
  180. end
  181. end)
  182. end
  183. end
  184. end
  185. else
  186. GUI:setVisible(self.view.electionToggle, false)
  187. if self.electionTimer then
  188. SL:UnSchedule(self.electionTimer)
  189. end
  190. if table.count(InfoManager.unionElectionInfo:GetElectionDataList()) > 0 then
  191. local endTime = InfoManager.unionElectionInfo:GetElectionEndTime()
  192. if endTime then
  193. local nowTime = SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)
  194. local deltaTime = endTime - nowTime
  195. if deltaTime > 0 then
  196. GUI:setVisible(self.view.electionToggle, true)
  197. self.electionTimer = SL:Schedule(self.electionTimer,0, 1, deltaTime // 1000 + 1, function()
  198. local nowTime_ = SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)
  199. local deltaTime_ = endTime - nowTime_
  200. if deltaTime_ <= 0 then
  201. GUI:setVisible(self.view.electionToggle, false)
  202. SL:UnSchedule(self.electionTimer)
  203. self.electionTimer = nil
  204. end
  205. end)
  206. end
  207. end
  208. end
  209. end
  210. end
  211. function this:On_CampaignDataChange()
  212. GUI:setVisible(self.view.campaignToggle, false)
  213. if self.electionTimer then
  214. SL:UnSchedule(self.electionTimer)
  215. end
  216. local endTime = InfoManager.unionElectionInfo:GetCampaignEndTime()
  217. if endTime then
  218. endTime = tonumber(endTime)
  219. local nowTime = SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)
  220. local deltaTime = endTime - tonumber(nowTime)
  221. if deltaTime > 0 then
  222. GUI:setVisible(self.view.campaignToggle, true)
  223. self.electionTimer = SL:Schedule(self.electionTimer,0, 1, deltaTime // 1000 + 1, function()
  224. local nowTime_ = SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)
  225. local deltaTime_ = endTime - tonumber(nowTime_)
  226. if deltaTime_ <= 0 then
  227. GUI:setVisible(self.view.campaignToggle, false)
  228. SL:UnSchedule(self.electionTimer)
  229. self.electionTimer = nil
  230. end
  231. end)
  232. end
  233. end
  234. end
  235. function this:Close()
  236. if self.electionTimer then
  237. SL:UnSchedule(self.electionTimer)
  238. end
  239. if self.blockTimer then
  240. SL:UnSchedule(self.blockTimer)
  241. self.blockTimer = nil
  242. end
  243. self.electionTimer = nil
  244. end
  245. function this:OnClickBlock()
  246. GUI:setVisible(self.view.img_block, true)
  247. if self.blockTimer then
  248. SL:UnSchedule(self.blockTimer)
  249. self.blockTimer = nil
  250. end
  251. self.blockTimer = SL:ScheduleOnce(0.5, function()
  252. GUI:setVisible(self.view.img_block, false)
  253. end)
  254. end
  255. return this