KLArchangelGroupPanel.lua 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. ---@class KLArchangelGroupPanel:UIKmlLuaPanelBase
  2. ---@field view KLArchangelGroupPanelView
  3. local KLArchangelGroupPanel = class(UIKmlLuaPanelBase)
  4. local this = KLArchangelGroupPanel
  5. function this:AsyncLoadUI()
  6. end
  7. ---创建时调用一次
  8. function this:Init()
  9. SL.HideMainPanel()
  10. self.masterRed = {}
  11. InfoManager.archangeEquipInfo:CheckEquipRed()
  12. end
  13. ---创建或者刷新界面数据时调用
  14. function this:Refresh()
  15. self.archangelGroupType = E_ArchangelGroupType.Breakthrough
  16. self.equipSlot = nil
  17. if self.args and self.args.archangelGroupType then
  18. self.archangelGroupType = tonumber(self.args.archangelGroupType)
  19. self.equipSlot = self.args.equipSlot
  20. end
  21. if self.archangelGroupType == E_ArchangelGroupType.Breakthrough then
  22. GUI:Toggle_setIsOn(self.view.breakthroughToggle,true)
  23. elseif self.archangelGroupType == E_ArchangelGroupType.Grail then
  24. GUI:Toggle_setIsOn(self.view.grailToggle,true)
  25. elseif self.archangelGroupType == E_ArchangelGroupType.Decompose then
  26. GUI:Toggle_setIsOn(self.view.decomposeToggle,true)
  27. end
  28. --打开界面的时候刷新下红点
  29. --SL:RefreshPanelALLRedPoint("KLArchangelGroupPanel")
  30. --红点系统无法刷新该界面,暂不明原因
  31. self:RefreshRed()
  32. end
  33. ---注册UI事件和服务器消息
  34. function this:RegistEvents()
  35. GUI:SetToggleOnValueChange(self.view.breakthroughToggle, self, self.BreakthroughToggle)
  36. --GUI:AddOnClickEvent(self.view.MaskCloseButton, self, self.OnClickCloseButton)
  37. GUI:SetToggleOnValueChange(self.view.grailToggle, self, self.GrailToggle)
  38. GUI:SetToggleOnValueChange(self.view.decomposeToggle,self,self.DecomposeToggle)
  39. end
  40. ---点击空白处关闭锻造界面以及打开的界面
  41. function this:OnClickCloseButton()
  42. end
  43. function this:BreakthroughToggle(control, customData, eventData)
  44. if eventData then
  45. if eventData[1] then
  46. GUI:UIPanel_Open("dev/outui/Archangel/Panel/KLArchangelBreakthrough/KLArchangelBreakthroughPanel", nil, nil, self.args)
  47. SL.HideMainPanel()
  48. return
  49. end
  50. GUI:UIPanel_Close("dev/outui/Archangel/Panel/KLArchangelBreakthrough/KLArchangelBreakthroughPanel")
  51. end
  52. end
  53. function this:GrailToggle(control, customData, eventData)
  54. if eventData then
  55. if eventData[1] then
  56. if not GUI:GetUI("dev/outui/Archangel/Panel/KLArchangelGrail/KLArchangelGrailPanel") then
  57. GUI:UIPanel_Open("dev/outui/Archangel/Panel/KLArchangelGrail/KLArchangelGrailPanel")
  58. SL.HideMainPanel()
  59. end
  60. return
  61. end
  62. GUI:UIPanel_Close("dev/outui/Archangel/Panel/KLArchangelGrail/KLArchangelGrailPanel")
  63. end
  64. end
  65. function this:DecomposeToggle(control, customData, eventData)
  66. if eventData then
  67. if eventData[1] then
  68. if not GUI:GetUI("dev/outui/Archangel/Panel/KLArchangelDecompose/KLArchangelDecomposePanel") then
  69. GUI:UIPanel_Open("dev/outui/Archangel/Panel/KLArchangelDecompose/KLArchangelDecomposePanel")
  70. SL.HideMainPanel()
  71. end
  72. return
  73. end
  74. GUI:UIPanel_Close("dev/outui/Archangel/Panel/KLArchangelDecompose/KLArchangelDecomposePanel")
  75. end
  76. end
  77. function this:RefreshRed()
  78. if table.count(InfoManager.archangeEquipInfo.canBreakthrough) > 0 then
  79. if not self.masterRed[E_ArchangelGroupType.Breakthrough] then
  80. self.masterRed[E_ArchangelGroupType.Breakthrough] = GUI:Image_Create(self.view.breakthroughToggle, {
  81. atlas = "Atlas/Common.spriteatlas",
  82. src = "bg_gemred",
  83. width = "20",
  84. height = "20",
  85. a = "21",
  86. x = "0",
  87. y = "8",
  88. z = "-500",
  89. })
  90. else
  91. GUI:setVisible(self.masterRed[E_ArchangelGroupType.Breakthrough], true)
  92. end
  93. elseif self.masterRed[E_ArchangelGroupType.Breakthrough] then
  94. GUI:setVisible(self.masterRed[E_ArchangelGroupType.Breakthrough], false)
  95. end
  96. local isStrength = true
  97. if table.count(InfoManager.archangeEquipInfo.canGrailStrength) > 0 then
  98. if not self.masterRed[E_ArchangelGroupType.Grail] then
  99. self.masterRed[E_ArchangelGroupType.Grail] = GUI:Image_Create(self.view.grailToggle, {
  100. atlas = "Atlas/Common.spriteatlas",
  101. src = "bg_gemred",
  102. width = "20",
  103. height = "20",
  104. a = "21",
  105. x = "0",
  106. y = "8",
  107. z = "-500",
  108. })
  109. else
  110. GUI:setVisible(self.masterRed[E_ArchangelGroupType.Grail], true)
  111. end
  112. else
  113. isStrength = false
  114. end
  115. if table.count(InfoManager.archangeEquipInfo.equipRed) > 0 then
  116. if not self.masterRed[E_ArchangelGroupType.Grail] then
  117. self.masterRed[E_ArchangelGroupType.Grail] = GUI:Image_Create(self.view.grailToggle, {
  118. atlas = "Atlas/Common.spriteatlas",
  119. src = "bg_gemred",
  120. width = "20",
  121. height = "20",
  122. a = "21",
  123. x = "0",
  124. y = "8",
  125. z = "-500",
  126. })
  127. else
  128. GUI:setVisible(self.masterRed[E_ArchangelGroupType.Grail], true)
  129. end
  130. elseif not isStrength and self.masterRed[E_ArchangelGroupType.Grail] then
  131. GUI:setVisible(self.masterRed[E_ArchangelGroupType.Grail], false)
  132. end
  133. end
  134. function this:Close()
  135. SL.ShowMainPanel()
  136. end
  137. return this