KLDisplayPanel.lua 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. ---@class KLDisplayPanel:UIKmlLuaPanelBase
  2. ---@field view KLDisplayPanelView
  3. local KLDisplayPanel = class(UIKmlLuaPanelBase)
  4. local this =KLDisplayPanel
  5. local hideTypeStr = {
  6. [1] = "不隐藏",
  7. [2] = "全部玩家",
  8. [3] = "同盟玩家",
  9. [4] = "敌对玩家",
  10. [5] = "中立玩家",
  11. }
  12. local EHideModeType = {
  13. None = enum(0),
  14. EHidePlayerModel = enum(1),
  15. EHidePlayerSkillEffect = enum(),
  16. EHidePlayerWing = enum(),
  17. EHideMeWing = enum(),
  18. EHidePlayerFootprint = enum(),
  19. }
  20. ---创建时调用一次
  21. function this:Init()
  22. self.curHideType = EHideModeType.None
  23. end
  24. ---创建或者刷新界面数据时调用
  25. function this:Refresh()
  26. local hidePlayerModel = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_PLAYER_MODEL_TYPE)
  27. local hidePlayerSkillEffect = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_PLAYER_SKILL_EFFECT_TYPE)
  28. local hidePlayerWing = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_PLAYER_WING_TYPE)
  29. local hideMeWing = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_ME_WING_TYPE)
  30. local hidePlayerFootprint = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_PLAYER_FOOTPRINT_TYPE)
  31. local isHideCalMonster = SL:GetMetaValue(EMetaVarGetKey.GET_IS_HIDE_CALL_MONSTER)
  32. local isHideMonsterModel = SL:GetMetaValue(EMetaVarGetKey.GET_IS_HID_MONSTER_MODEL)
  33. local isHideMonsterSkillEffect = SL:GetMetaValue(EMetaVarGetKey.GET_IS_HID_MONSTER_SKILL_EFFECT)
  34. local isLimitShowCount = SL:GetMetaValue(EMetaVarGetKey.GET_IS_LIMIT_PLAYER_SHOW_COUNT)
  35. local limitShowCount = SL:GetMetaValue(EMetaVarGetKey.GET_LIMIT_PLAYER_SHOW_COUNT)
  36. local powerSaveMode = SL:GetMetaValue(EMetaVarGetKey.GET_POWER_SAVING_MODE)
  37. GUI:Text_setString(self.view.hidePlayerModelTxt,hideTypeStr[hidePlayerModel])
  38. GUI:Text_setString(self.view.hidePlayerSkillEffectTxt,hideTypeStr[hidePlayerSkillEffect])
  39. GUI:Text_setString(self.view.hidePlayerWingTxt,hideTypeStr[hidePlayerWing])
  40. GUI:Text_setString(self.view.hideMeWingTxt,hideTypeStr[hideMeWing])
  41. GUI:Text_setString(self.view.hidePlayerFootprintTxt,hideTypeStr[hidePlayerFootprint])
  42. GUI:SetIsOnWithoutNotify(self.view.hidePetModel,isHideCalMonster)
  43. GUI:SetIsOnWithoutNotify(self.view.hideMonsterModel,isHideMonsterModel)
  44. GUI:SetIsOnWithoutNotify(self.view.hideMonsterSkillEffect,isHideMonsterSkillEffect)
  45. GUI:SetIsOnWithoutNotify(self.view.IsPlayerNum,isLimitShowCount)
  46. GUI:Text_setString(self.view.playerCount,tostring(limitShowCount))
  47. GUI:Slider_setPercent(self.view.SliderShowPlayer,limitShowCount)
  48. GUI:SetIsOnWithoutNotify(self.view["powerSaving"..powerSaveMode],true)
  49. end
  50. ---注册UI事件和服务器消息
  51. function this:RegistEvents()
  52. GUI:SetToggleOnValueChange(self.view.hidePlayerModelToggle,self,self.HidePlayerModelToggleOnValueChange)
  53. GUI:SetToggleOnValueChange(self.view.hidePlayerSkillEffectToggle,self,self.HidePlayerSkillEffectToggleOnValueChange)
  54. GUI:SetToggleOnValueChange(self.view.hidePlayerWingToggle,self,self.HidePlayerWingToggleOnValueChange)
  55. GUI:SetToggleOnValueChange(self.view.hideMeWingToggle,self,self.HideMeWingToggleOnValueChange)
  56. GUI:SetToggleOnValueChange(self.view.hidePlayerFootprintToggle,self,self.HidePlayerFootprintToggleOnValueChange)
  57. GUI:SetToggleOnValueChange(self.view.hidePetModel,self,self.HidePetModelOnValueChange)
  58. GUI:SetToggleOnValueChange(self.view.hideMonsterModel,self,self.HideMonsterModelOnValueChange)
  59. GUI:SetToggleOnValueChange(self.view.hideMonsterSkillEffect,self,self.HideMonsterSkillEffectOnValueChange)
  60. GUI:SetToggleOnValueChange(self.view.IsPlayerNum,self,self.IsPlayerNumOnValueChange)
  61. GUI:Slider_addOnEvent(self.view.SliderShowPlayer,self,self.SliderShowPlayerOnValueChange)
  62. GUI:SetToggleOnValueChange(self.view.powerSaving1,self,self.SelectPowerMode,EGameQualityType.PowerSave)
  63. GUI:SetToggleOnValueChange(self.view.powerSaving2,self,self.SelectPowerMode,EGameQualityType.Balance)
  64. GUI:SetToggleOnValueChange(self.view.powerSaving3,self,self.SelectPowerMode,EGameQualityType.Strongest)
  65. GUI:AddOnClickEvent(self.view.noHideBtn,self,self.HideModeSelectOnClick,EHideType.ENoHide)
  66. GUI:AddOnClickEvent(self.view.hideAllBtn,self,self.HideModeSelectOnClick,EHideType.EAllHide)
  67. GUI:AddOnClickEvent(self.view.hideUnioBtn,self,self.HideModeSelectOnClick,EHideType.ELeaguePlayerHide)
  68. GUI:AddOnClickEvent(self.view.hideEnemyBtn,self,self.HideModeSelectOnClick,EHideType.ERivalryPlayerHide)
  69. GUI:AddOnClickEvent(self.view.BtnReDefaultDispaly,self,self.ReDefaultDispalyBtnOnClick)
  70. end
  71. function this:HidePlayerModelToggleOnValueChange(control,_,data)
  72. local isToggle = data[1]
  73. if isToggle then
  74. self.curHideType = EHideModeType.EHidePlayerModel
  75. GUI:setPositionY(self.view.selectMenu,252)
  76. self:ResetToggle(false,82)
  77. end
  78. GUI:setVisible(self.view.selectMenu,isToggle)
  79. end
  80. function this:HidePlayerSkillEffectToggleOnValueChange(control,_,data)
  81. local isToggle = data[1]
  82. if isToggle then
  83. self.curHideType = EHideModeType.EHidePlayerSkillEffect
  84. GUI:setPositionY(self.view.selectMenu,218)
  85. self:ResetToggle(false,82)
  86. end
  87. GUI:setVisible(self.view.selectMenu,isToggle)
  88. end
  89. function this:HidePlayerWingToggleOnValueChange(control,_,data)
  90. local isToggle = data[1]
  91. if isToggle then
  92. self.curHideType = EHideModeType.EHidePlayerWing
  93. GUI:setPositionY(self.view.selectMenu,184)
  94. self:ResetToggle(false,82)
  95. end
  96. GUI:setVisible(self.view.selectMenu,isToggle)
  97. end
  98. function this:HideMeWingToggleOnValueChange(control,_,data)
  99. local isToggle = data[1]
  100. if isToggle then
  101. self.curHideType = EHideModeType.EHideMeWing
  102. GUI:setPositionY(self.view.selectMenu,152)
  103. self:ResetToggle(true,42)
  104. end
  105. GUI:setVisible(self.view.selectMenu,isToggle)
  106. end
  107. function this:HidePlayerFootprintToggleOnValueChange(control,_,data)
  108. local isToggle = data[1]
  109. if isToggle then
  110. self.curHideType = EHideModeType.EHidePlayerFootprint
  111. GUI:setPositionY(self.view.selectMenu,117)
  112. self:ResetToggle(false,82)
  113. end
  114. GUI:setVisible(self.view.selectMenu,isToggle)
  115. end
  116. function this:HidePetModelOnValueChange(control,_,data)
  117. local isToggle = data[1]
  118. SL:SetMetaValue(EMetaVarSetKey.SET_IS_HIDE_CALL_MONSTER,isToggle)
  119. end
  120. function this:HideMonsterModelOnValueChange(control,_,data)
  121. local isToggle = data[1]
  122. SL:SetMetaValue(EMetaVarSetKey.SET_IS_HID_MONSTER_MODEL,isToggle)
  123. end
  124. function this:HideMonsterSkillEffectOnValueChange(control,_,data)
  125. local isToggle = data[1]
  126. SL:SetMetaValue(EMetaVarSetKey.SET_IS_HID_MONSTER_SKILL_EFFECT,isToggle)
  127. end
  128. function this:IsPlayerNumOnValueChange(control,_,data)
  129. local isToggle = data[1]
  130. SL:SetMetaValue(EMetaVarSetKey.SET_IS_LIMIT_PLAYER_SHOW_COUNT,isToggle)
  131. end
  132. function this:SliderShowPlayerOnValueChange(control,_,data)
  133. local value = math.ceil(data[1])
  134. SL:SetMetaValue(EMetaVarSetKey.SET_LIMIT_PLAYER_SHOW_COUNT,value)
  135. GUI:Text_setString(self.view.playerCount,tostring(value))
  136. end
  137. function this:SelectPowerMode(control,data,_)
  138. SL:SetMetaValue(EMetaVarSetKey.SET_POWER_SAVING_MODE,data)
  139. self:Refresh()
  140. end
  141. function this:HideModeSelectOnClick(control,data,_)
  142. GUI:setVisible(self.view.selectMenu,false)
  143. if self.curHideType == EHideModeType.EHidePlayerModel then
  144. SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_PLAYER_MODEL_TYPE,data)
  145. GUI:Text_setString(self.view.hidePlayerModelTxt,hideTypeStr[data])
  146. GUI:SetIsOnWithoutNotify(self.view.hidePlayerModelToggle,false)
  147. elseif self.curHideType == EHideModeType.EHidePlayerSkillEffect then
  148. SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_PLAYER_SKILL_EFFECT_TYPE,data)
  149. GUI:Text_setString(self.view.hidePlayerSkillEffectTxt,hideTypeStr[data])
  150. GUI:SetIsOnWithoutNotify(self.view.hidePlayerSkillEffectToggle,false)
  151. elseif self.curHideType == EHideModeType.EHidePlayerWing then
  152. SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_PLAYER_WING_TYPE,data)
  153. GUI:Text_setString(self.view.hidePlayerWingTxt,hideTypeStr[data])
  154. GUI:SetIsOnWithoutNotify(self.view.hidePlayerWingToggle,false)
  155. elseif self.curHideType == EHideModeType.EHideMeWing then
  156. SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_ME_WING_TYPE,data)
  157. GUI:Text_setString(self.view.hideMeWingTxt,hideTypeStr[data])
  158. GUI:SetIsOnWithoutNotify(self.view.hideMeWingToggle,false)
  159. elseif self.curHideType == EHideModeType.EHidePlayerFootprint then
  160. SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_PLAYER_FOOTPRINT_TYPE,data)
  161. GUI:Text_setString(self.view.hidePlayerFootprintTxt,hideTypeStr[data])
  162. GUI:SetIsOnWithoutNotify(self.view.hidePlayerFootprintToggle,false)
  163. end
  164. end
  165. function this:ResetToggle(isSpecial,height)
  166. GUI:SetIsOnWithoutNotify(self.view.hidePlayerModelToggle,self.curHideType == EHideModeType.EHidePlayerModel)
  167. GUI:SetIsOnWithoutNotify(self.view.hidePlayerSkillEffectToggle,self.curHideType == EHideModeType.EHidePlayerSkillEffect)
  168. GUI:SetIsOnWithoutNotify(self.view.hidePlayerWingToggle,self.curHideType == EHideModeType.EHidePlayerWing)
  169. GUI:SetIsOnWithoutNotify(self.view.hideMeWingToggle,self.curHideType == EHideModeType.EHideMeWing)
  170. GUI:SetIsOnWithoutNotify(self.view.hidePlayerFootprintToggle,self.curHideType == EHideModeType.EHidePlayerFootprint)
  171. GUI:setContentSize(self.view.selectMenu,94,height)
  172. GUI:setVisible(self.view.hideUnioBtn,not isSpecial)
  173. GUI:setVisible(self.view.hideEnemyBtn,not isSpecial)
  174. end
  175. function this:ReDefaultDispalyBtnOnClick()
  176. SL:ReplyDefaultShowSetting()
  177. self:Refresh()
  178. end
  179. function this:Close()
  180. end
  181. return this