KLSiegeMainPanel.lua 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. ---@class KLSiegeMainPanel:UIKmlLuaPanelBase
  2. ---@field view KLSiegeMainPanelView
  3. local KLSiegeMainPanel = class(UIKmlLuaPanelBase)
  4. local this =KLSiegeMainPanel
  5. function this:AsyncLoadUI()
  6. end
  7. ---创建时调用一次
  8. function this:Init()
  9. self.isOnClickGo = false
  10. ---前三名模型列表
  11. self.roleList =
  12. {
  13. [1] = self.view.role_mid,
  14. [2] = self.view.role_left,
  15. [3] = self.view.role_right,
  16. }
  17. ---前三名剪影列表
  18. self.roleSilhouetteList =
  19. {
  20. [1] = self.view.noPlayerBG1,
  21. [2] = self.view.noPlayerBG2,
  22. [3] = self.view.noPlayerBG3,
  23. }
  24. ---前三名名字列表
  25. self.roleNameList =
  26. {
  27. [1] = self.view.roleTitle1_Name,
  28. [2] = self.view.roleTitle2_Name,
  29. [3] = self.view.roleTitle3_Name,
  30. }
  31. ---前三名标题列表
  32. self.roleTitleList =
  33. {
  34. [1] = self.view.roleTitle1,
  35. [2] = self.view.roleTitle2,
  36. [3] = self.view.roleTitle3,
  37. }
  38. end
  39. ---注册UI事件和服务器消息
  40. function this:RegistEvents()
  41. GUI:AddOnClickEvent(self.view.btn_close,self,self.BtnCloseClick)
  42. GUI:AddOnClickEvent(self.view.btn_go,self,self.BtnGoClick)
  43. GUI:AddOnClickEvent(self.view.btn_reward,self,self.BtnRewardClick)
  44. GUI:AddOnClickEvent(self.view.HelpButton,self,self.BtnRewardClick)
  45. SL:RegisterLUAEvent(LUA_EVENT_REQ_SIEGE_UNION_PLAYER_END, self.LUA_EVENT_REQ_SIEGE_UNION_PLAYER_END, self)
  46. SL:RegisterLUAEvent(LUA_EVENT_ROLAND_SIEGE_MAIN_PANEL_CHANGE, self.LUA_EVENT_ROLAND_SIEGE_MAIN_PANEL_CHANGE, self)
  47. SL:RegisterLUAEvent(LUA_EVENT_ROLAND_SIEGE_STATE_INFO_CHANGE, self.LUA_EVENT_ROLAND_SIEGE_STATE_INFO_CHANGE , self)
  48. end
  49. ---请求战盟:盟主副盟主玩家数据完成
  50. function this:LUA_EVENT_REQ_SIEGE_UNION_PLAYER_END()
  51. for i = 1, 3 do
  52. if i == 1 then
  53. GUI:setVisible(self.roleTitleList[i],true)
  54. ---人物数据
  55. local data = InfoManager.loranSiegeInfo:GetTheFirstThreeRankData(i)
  56. GUI:setVisible(self.roleList[i],data)
  57. GUI:setVisible(self.roleSilhouetteList[i],not data)
  58. GUI:Text_setString(self.roleNameList[i],(data and data.role and data.role.name) and data.role.name or "" )
  59. if data then
  60. local model_list, equip_list = InfoManager.loranSiegeInfo:GetPlayerRoleInfo(data.role)
  61. GUI:SetPlayerRoleInfo(self.roleList[i], model_list, equip_list)
  62. end
  63. else
  64. --不显示副盟主
  65. GUI:setVisible(self.roleTitleList[i],false)
  66. GUI:setVisible(self.roleSilhouetteList[i],false)
  67. GUI:setVisible(self.roleList[i],false)
  68. end
  69. end
  70. end
  71. ---攻城战面板信息变动
  72. function this:LUA_EVENT_ROLAND_SIEGE_MAIN_PANEL_CHANGE()
  73. local unionName = InfoManager.loranSiegeInfo:GetOccupyUnionName()
  74. local isOpen = InfoManager.loranSiegeInfo:GetIsOpen()
  75. local nextOpenTime = InfoManager.loranSiegeInfo:GetNextOpenTime()
  76. if unionName and unionName ~= "" then
  77. unionName = "占领战盟:<color=#1add1f>"..unionName.."</color>"
  78. end
  79. GUI:Text_setString(self.view.unionName,unionName)
  80. GUI:setVisible(self.view.OpenText,isOpen)
  81. GUI:setVisible(self.view.TimeText,not isOpen)
  82. GUI:setVisible(self.view.TimeTitle,not isOpen)
  83. if not isOpen then
  84. GUI:Text_setString(self.view.TimeText,Time.FormatTimeYMDHMS(nextOpenTime))
  85. end
  86. end
  87. function this:LUA_EVENT_ROLAND_SIEGE_STATE_INFO_CHANGE()
  88. if self.isOnClickGo then
  89. self:BtnCloseClick()
  90. end
  91. end
  92. ---关闭界面
  93. function this:BtnCloseClick()
  94. GUI:UIPanel_Close("dev/outui/LoranSiege/Panel/KLSiegeMain/KLSiegeMainPanel")
  95. end
  96. ---打开奖励界面
  97. function this:BtnRewardClick()
  98. self:BtnCloseClick()
  99. GUI:UIPanel_Open("dev/outui/LoranSiege/Panel/KLSiegeReward/KLSiegeRewardPanel")
  100. end
  101. ---前往攻城
  102. function this:BtnGoClick()
  103. local isOpen = InfoManager.loranSiegeInfo:GetIsOpen()
  104. if SL:MeData_GetUnionId() == 0 then
  105. SL:TipMessage(SL:GetConfig("cfg_string",16002).text ,1, NoticeType.NoticeMid)
  106. return
  107. end
  108. if not isOpen then
  109. SL:TipMessage(SL:GetConfig("cfg_string",16001).text ,1, NoticeType.NoticeMid)
  110. return
  111. end
  112. self.isOnClickGo = true
  113. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_ENTER_DUPLICATE, EActivityType.LoranSiege)
  114. --self:BtnCloseClick()
  115. end
  116. ---界面显示时调用一次
  117. function this:Show()
  118. end
  119. ---创建或者刷新界面数据时调用
  120. function this:Refresh()
  121. SL.HideMainPanel()
  122. self:LUA_EVENT_REQ_SIEGE_UNION_PLAYER_END()
  123. self:LUA_EVENT_ROLAND_SIEGE_MAIN_PANEL_CHANGE()
  124. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_ROLAND_SEIGE_GET_MAIN_PANEL)
  125. end
  126. function this:Close()
  127. end
  128. return this