---@class KLDisplayPanel:UIKmlLuaPanelBase ---@field view KLDisplayPanelView local KLDisplayPanel = class(UIKmlLuaPanelBase) local this =KLDisplayPanel local hideTypeStr = { [1] = "不隐藏", [2] = "全部玩家", [3] = "同盟玩家", [4] = "敌对玩家", [5] = "中立玩家", } local EHideModeType = { None = enum(0), EHidePlayerModel = enum(1), EHidePlayerSkillEffect = enum(), EHidePlayerWing = enum(), EHideMeWing = enum(), EHidePlayerFootprint = enum(), } ---创建时调用一次 function this:Init() self.curHideType = EHideModeType.None end ---创建或者刷新界面数据时调用 function this:Refresh() local hidePlayerModel = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_PLAYER_MODEL_TYPE) local hidePlayerSkillEffect = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_PLAYER_SKILL_EFFECT_TYPE) local hidePlayerWing = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_PLAYER_WING_TYPE) local hideMeWing = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_ME_WING_TYPE) local hidePlayerFootprint = SL:GetMetaValue(EMetaVarGetKey.GET_HIDE_PLAYER_FOOTPRINT_TYPE) local isHideCalMonster = SL:GetMetaValue(EMetaVarGetKey.GET_IS_HIDE_CALL_MONSTER) local isHideMonsterModel = SL:GetMetaValue(EMetaVarGetKey.GET_IS_HID_MONSTER_MODEL) local isHideMonsterSkillEffect = SL:GetMetaValue(EMetaVarGetKey.GET_IS_HID_MONSTER_SKILL_EFFECT) local isLimitShowCount = SL:GetMetaValue(EMetaVarGetKey.GET_IS_LIMIT_PLAYER_SHOW_COUNT) local limitShowCount = SL:GetMetaValue(EMetaVarGetKey.GET_LIMIT_PLAYER_SHOW_COUNT) local powerSaveMode = SL:GetMetaValue(EMetaVarGetKey.GET_POWER_SAVING_MODE) GUI:Text_setString(self.view.hidePlayerModelTxt,hideTypeStr[hidePlayerModel]) GUI:Text_setString(self.view.hidePlayerSkillEffectTxt,hideTypeStr[hidePlayerSkillEffect]) GUI:Text_setString(self.view.hidePlayerWingTxt,hideTypeStr[hidePlayerWing]) GUI:Text_setString(self.view.hideMeWingTxt,hideTypeStr[hideMeWing]) GUI:Text_setString(self.view.hidePlayerFootprintTxt,hideTypeStr[hidePlayerFootprint]) GUI:SetIsOnWithoutNotify(self.view.hidePetModel,isHideCalMonster) GUI:SetIsOnWithoutNotify(self.view.hideMonsterModel,isHideMonsterModel) GUI:SetIsOnWithoutNotify(self.view.hideMonsterSkillEffect,isHideMonsterSkillEffect) GUI:SetIsOnWithoutNotify(self.view.IsPlayerNum,isLimitShowCount) GUI:Text_setString(self.view.playerCount,tostring(limitShowCount)) GUI:Slider_setPercent(self.view.SliderShowPlayer,limitShowCount) GUI:SetIsOnWithoutNotify(self.view["powerSaving"..powerSaveMode],true) end ---注册UI事件和服务器消息 function this:RegistEvents() GUI:SetToggleOnValueChange(self.view.hidePlayerModelToggle,self,self.HidePlayerModelToggleOnValueChange) GUI:SetToggleOnValueChange(self.view.hidePlayerSkillEffectToggle,self,self.HidePlayerSkillEffectToggleOnValueChange) GUI:SetToggleOnValueChange(self.view.hidePlayerWingToggle,self,self.HidePlayerWingToggleOnValueChange) GUI:SetToggleOnValueChange(self.view.hideMeWingToggle,self,self.HideMeWingToggleOnValueChange) GUI:SetToggleOnValueChange(self.view.hidePlayerFootprintToggle,self,self.HidePlayerFootprintToggleOnValueChange) GUI:SetToggleOnValueChange(self.view.hidePetModel,self,self.HidePetModelOnValueChange) GUI:SetToggleOnValueChange(self.view.hideMonsterModel,self,self.HideMonsterModelOnValueChange) GUI:SetToggleOnValueChange(self.view.hideMonsterSkillEffect,self,self.HideMonsterSkillEffectOnValueChange) GUI:SetToggleOnValueChange(self.view.IsPlayerNum,self,self.IsPlayerNumOnValueChange) GUI:Slider_addOnEvent(self.view.SliderShowPlayer,self,self.SliderShowPlayerOnValueChange) GUI:SetToggleOnValueChange(self.view.powerSaving1,self,self.SelectPowerMode,EGameQualityType.PowerSave) GUI:SetToggleOnValueChange(self.view.powerSaving2,self,self.SelectPowerMode,EGameQualityType.Balance) GUI:SetToggleOnValueChange(self.view.powerSaving3,self,self.SelectPowerMode,EGameQualityType.Strongest) GUI:AddOnClickEvent(self.view.noHideBtn,self,self.HideModeSelectOnClick,EHideType.ENoHide) GUI:AddOnClickEvent(self.view.hideAllBtn,self,self.HideModeSelectOnClick,EHideType.EAllHide) GUI:AddOnClickEvent(self.view.hideUnioBtn,self,self.HideModeSelectOnClick,EHideType.ELeaguePlayerHide) GUI:AddOnClickEvent(self.view.hideEnemyBtn,self,self.HideModeSelectOnClick,EHideType.ERivalryPlayerHide) GUI:AddOnClickEvent(self.view.BtnReDefaultDispaly,self,self.ReDefaultDispalyBtnOnClick) end function this:HidePlayerModelToggleOnValueChange(control,_,data) local isToggle = data[1] if isToggle then self.curHideType = EHideModeType.EHidePlayerModel GUI:setPositionY(self.view.selectMenu,252) self:ResetToggle(false,82) end GUI:setVisible(self.view.selectMenu,isToggle) end function this:HidePlayerSkillEffectToggleOnValueChange(control,_,data) local isToggle = data[1] if isToggle then self.curHideType = EHideModeType.EHidePlayerSkillEffect GUI:setPositionY(self.view.selectMenu,218) self:ResetToggle(false,82) end GUI:setVisible(self.view.selectMenu,isToggle) end function this:HidePlayerWingToggleOnValueChange(control,_,data) local isToggle = data[1] if isToggle then self.curHideType = EHideModeType.EHidePlayerWing GUI:setPositionY(self.view.selectMenu,184) self:ResetToggle(false,82) end GUI:setVisible(self.view.selectMenu,isToggle) end function this:HideMeWingToggleOnValueChange(control,_,data) local isToggle = data[1] if isToggle then self.curHideType = EHideModeType.EHideMeWing GUI:setPositionY(self.view.selectMenu,152) self:ResetToggle(true,42) end GUI:setVisible(self.view.selectMenu,isToggle) end function this:HidePlayerFootprintToggleOnValueChange(control,_,data) local isToggle = data[1] if isToggle then self.curHideType = EHideModeType.EHidePlayerFootprint GUI:setPositionY(self.view.selectMenu,117) self:ResetToggle(false,82) end GUI:setVisible(self.view.selectMenu,isToggle) end function this:HidePetModelOnValueChange(control,_,data) local isToggle = data[1] SL:SetMetaValue(EMetaVarSetKey.SET_IS_HIDE_CALL_MONSTER,isToggle) end function this:HideMonsterModelOnValueChange(control,_,data) local isToggle = data[1] SL:SetMetaValue(EMetaVarSetKey.SET_IS_HID_MONSTER_MODEL,isToggle) end function this:HideMonsterSkillEffectOnValueChange(control,_,data) local isToggle = data[1] SL:SetMetaValue(EMetaVarSetKey.SET_IS_HID_MONSTER_SKILL_EFFECT,isToggle) end function this:IsPlayerNumOnValueChange(control,_,data) local isToggle = data[1] SL:SetMetaValue(EMetaVarSetKey.SET_IS_LIMIT_PLAYER_SHOW_COUNT,isToggle) end function this:SliderShowPlayerOnValueChange(control,_,data) local value = math.ceil(data[1]) SL:SetMetaValue(EMetaVarSetKey.SET_LIMIT_PLAYER_SHOW_COUNT,value) GUI:Text_setString(self.view.playerCount,tostring(value)) end function this:SelectPowerMode(control,data,_) SL:SetMetaValue(EMetaVarSetKey.SET_POWER_SAVING_MODE,data) self:Refresh() end function this:HideModeSelectOnClick(control,data,_) GUI:setVisible(self.view.selectMenu,false) if self.curHideType == EHideModeType.EHidePlayerModel then SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_PLAYER_MODEL_TYPE,data) GUI:Text_setString(self.view.hidePlayerModelTxt,hideTypeStr[data]) GUI:SetIsOnWithoutNotify(self.view.hidePlayerModelToggle,false) elseif self.curHideType == EHideModeType.EHidePlayerSkillEffect then SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_PLAYER_SKILL_EFFECT_TYPE,data) GUI:Text_setString(self.view.hidePlayerSkillEffectTxt,hideTypeStr[data]) GUI:SetIsOnWithoutNotify(self.view.hidePlayerSkillEffectToggle,false) elseif self.curHideType == EHideModeType.EHidePlayerWing then SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_PLAYER_WING_TYPE,data) GUI:Text_setString(self.view.hidePlayerWingTxt,hideTypeStr[data]) GUI:SetIsOnWithoutNotify(self.view.hidePlayerWingToggle,false) elseif self.curHideType == EHideModeType.EHideMeWing then SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_ME_WING_TYPE,data) GUI:Text_setString(self.view.hideMeWingTxt,hideTypeStr[data]) GUI:SetIsOnWithoutNotify(self.view.hideMeWingToggle,false) elseif self.curHideType == EHideModeType.EHidePlayerFootprint then SL:SetMetaValue(EMetaVarSetKey.SET_HIDE_PLAYER_FOOTPRINT_TYPE,data) GUI:Text_setString(self.view.hidePlayerFootprintTxt,hideTypeStr[data]) GUI:SetIsOnWithoutNotify(self.view.hidePlayerFootprintToggle,false) end end function this:ResetToggle(isSpecial,height) GUI:SetIsOnWithoutNotify(self.view.hidePlayerModelToggle,self.curHideType == EHideModeType.EHidePlayerModel) GUI:SetIsOnWithoutNotify(self.view.hidePlayerSkillEffectToggle,self.curHideType == EHideModeType.EHidePlayerSkillEffect) GUI:SetIsOnWithoutNotify(self.view.hidePlayerWingToggle,self.curHideType == EHideModeType.EHidePlayerWing) GUI:SetIsOnWithoutNotify(self.view.hideMeWingToggle,self.curHideType == EHideModeType.EHideMeWing) GUI:SetIsOnWithoutNotify(self.view.hidePlayerFootprintToggle,self.curHideType == EHideModeType.EHidePlayerFootprint) GUI:setContentSize(self.view.selectMenu,94,height) GUI:setVisible(self.view.hideUnioBtn,not isSpecial) GUI:setVisible(self.view.hideEnemyBtn,not isSpecial) end function this:ReDefaultDispalyBtnOnClick() SL:ReplyDefaultShowSetting() self:Refresh() end function this:Close() end return this