--[[ * @ClassName OperatingPanel * @Description 特权描述二级弹窗 * @Date 2019/5/27 11:14 * @Author MagicianJoker, fengliudianshao@outlook.com * @Copyright Copyright (c) 2019, MagicianJoker --]] ---@class VipTipPopup local VipTipPopup = quick_class("VipPanel", BasePanel) function VipTipPopup:InitComponent() self.spLoader = SpriteLoader.New() self.backBtn = self.transform:Find("bg/btnBack").gameObject self.vipLv = self.transform:Find("bg/title/Text"):GetComponent("Text") self.privilegeContent = self.transform:Find("bg/privilegeList/viewPort/content") self.privilegeItem = self.privilegeContent:Find("itemPro").gameObject self.privilegeItem:SetActive(false) self.privilegeList = {} self.leftBtn = self.transform:Find("bg/leftBtn").gameObject self.rightBtn = self.transform:Find("bg/rightBtn").gameObject end function VipTipPopup:BindEvent() Util.AddClick(self.backBtn, function() self:ClosePanel() end) Util.AddClick(self.leftBtn, function() self:OnLeftBtnClicked() end) Util.AddClick(self.rightBtn, function() self:OnRightBtnClicked() end) end function VipTipPopup:OnOpen(notShowArrow) self.notShowArrow = false self.previewLv = VipManager.GetVipLevel() self:SetPanelStatus() if notShowArrow then self.notShowArrow = notShowArrow self:SetInitShow() end end function VipTipPopup:SetInitShow() self.leftBtn:SetActive(not self.notShowArrow) self.rightBtn:SetActive(not self.notShowArrow) end function VipTipPopup:OnClose() end function VipTipPopup:SetPrivilegeList() self:HideAllPrivileges() self.vipLv.text = self.previewLv local vipConfig = ConfigManager.GetConfigData(ConfigName.VipLevelConfig, self.previewLv) local tempNumber = 0 for _, privilegeInfo in ipairs(vipConfig.Privileges) do if privilegeInfo[2] > 0 then local PrivilegeConfig = ConfigManager.GetConfigData(ConfigName.PrivilegeTypeConfig, privilegeInfo[1]) if PrivilegeConfig.isShowName ~= 0 then if PrivilegeConfig.Type == 0 then tempNumber = tempNumber + 1 local item = self:GetPrivilegeItem(tempNumber) item.gameObject:SetActive(true) local privilegeType = PrivilegeConfig.IfFloat local str = " " if PrivilegeConfig.IfFloat == 2 then str = string.format("%s", GetPropertyFormatStr(privilegeType, privilegeInfo[2])) else str = string.format("+%s", GetPropertyFormatStr(privilegeType, privilegeInfo[2])) end Util.GetGameObject(item, "title"):GetComponent("Text").text = GetLanguageStrById(PrivilegeConfig.Name) .. str else local state = PrivilegeManager.IsPrivilegeOpenedCurrentLevel(privilegeInfo[1],self.previewLv) if state then tempNumber = tempNumber + 1 local item = self:GetPrivilegeItem(tempNumber) item.gameObject:SetActive(true) local str = " " Util.GetGameObject(item, "title"):GetComponent("Text").text = GetLanguageStrById(PrivilegeConfig.Name) .. str end end end end end self:SetExtraPrivilege(tempNumber + 1, vipConfig) end function VipTipPopup:SetExtraPrivilege(index, configData) local item = self:GetPrivilegeItem(index) item.gameObject:SetActive(true) local str = Language[10105] for _, rewardInfo in ipairs(configData.VipBoxDailyReward) do local itemConfig = ConfigManager.GetConfigData(ConfigName.ItemConfig, rewardInfo[1]) --assert(itemConfig, string.format("ConfigName.ItemConfig not find Id:%s", rewardInfo[1])) str = str .. string.format("%s%s", GetLanguageStrById(itemConfig.Name), rewardInfo[2]) end Util.GetGameObject(self.privilegeList[index], "title"):GetComponent("Text").text = str end function VipTipPopup:GetPrivilegeItem(index) if self.privilegeList[index] then return self.privilegeList[index] else local newItem = newObjToParent(self.privilegeItem, self.privilegeContent) table.insert(self.privilegeList, newItem) return newItem end end function VipTipPopup:HideAllPrivileges() table.walk(self.privilegeList, function(privilegeItem) privilegeItem.gameObject:SetActive(false) end) end function VipTipPopup:OnLeftBtnClicked() self.previewLv = self.previewLv - 1 self:SetPanelStatus() end function VipTipPopup:OnRightBtnClicked() self.previewLv = self.previewLv + 1 self:SetPanelStatus() end function VipTipPopup:SetTurnBtnStatus() self.leftBtn.gameObject:SetActive(self.previewLv > 0) self.rightBtn.gameObject:SetActive(self.previewLv < VipManager.GetMaxVipLevel()) end function VipTipPopup:SetPanelStatus() self:SetTurnBtnStatus() self:SetPrivilegeList() end return VipTipPopup