miduo_client/Assets/ManagedResources/~Lua/Modules/Vip/VipTipPopup.lua

148 lines
5.2 KiB
Lua

--[[
* @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 = "<size=45><color=#7bb15bFF> </color></size>"
if PrivilegeConfig.IfFloat == 2 then
str = string.format("<size=45><color=#7bb15bFF>%s</color></size>", GetPropertyFormatStr(privilegeType, privilegeInfo[2]))
else
str = string.format("<size=45><color=#7bb15bFF>+%s</color></size>", 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 = "<size=45><color=#7bb15bFF> </color></size>"
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<size=45><color=#7bb15bFF>%s</color></size>", 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