594 lines
23 KiB
Lua
594 lines
23 KiB
Lua
--[[
|
||
* @ClassName OperatingPanel
|
||
* @Description 等级特权面板
|
||
* @Date 2019/5/27 11:14
|
||
* @Author MagicianJoker, fengliudianshao@outlook.com
|
||
* @Copyright Copyright (c) 2019, MagicianJoker
|
||
--]]
|
||
-- local VipTaskListItem = require("Modules/Vip/VipTaskListItem")
|
||
|
||
---@class VipPanelV2
|
||
local VipPanelV2 = quick_class("VipPanelV2", BasePanel)
|
||
local this = VipPanelV2
|
||
local kMaxGiftCount, kMaxTaskCount = 4, 5
|
||
local ReceiveTypeIconDef = {
|
||
"t_tequan_tequandengjilibao", --特权等级礼包
|
||
"t_tequan_meirijiangli", --每日礼包
|
||
}
|
||
local orginLayer
|
||
local GameSetting = ConfigManager.GetConfig(ConfigName.GameSetting)
|
||
|
||
local allRewardItemPres = {}
|
||
function VipPanelV2:InitComponent()
|
||
this.spLoader = SpriteLoader.New()
|
||
orginLayer = 0
|
||
self.bg = Util.GetGameObject(self.transform, "bg")
|
||
if Screen.width / Screen.height < 1080 / 1920 then
|
||
screenAdapte(self.bg)
|
||
end
|
||
|
||
if not this.playerInfoView then
|
||
this.playerInfoView = SubUIManager.Open(SubUIConfig.PlayerInfoView, this.transform)
|
||
this.playerInfoView:SetPrivilegeShow(true)
|
||
end
|
||
-- this.BtView = SubUIManager.Open(SubUIConfig.BtView, self.transform)
|
||
this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.transform)
|
||
self.BtnBack = Util.GetGameObject(self.transform, "btnBack")
|
||
-- this.helpBtn = Util.GetGameObject(self.gameObject, "helpBtn")
|
||
-- this.helpPosition=this.helpBtn:GetComponent("RectTransform").localPosition
|
||
--topPart
|
||
self.topPart = Util.GetGameObject(self.transform, "frame/topPart")
|
||
self.BtnLeft = Util.GetGameObject(self.transform, "leftBtn")
|
||
self.BtnRight = Util.GetGameObject(self.transform, "rightBtn")
|
||
self.BtnTip = Util.GetGameObject(self.transform, "btnTip")
|
||
self.curLevel = Util.GetGameObject(self.transform, "btnTip/bg/vip"):GetComponent("Image")
|
||
|
||
self.StateRoot = Util.GetGameObject(self.topPart, "stateRoot")
|
||
|
||
self.curStatePart = Util.GetGameObject(self.StateRoot, "curState")
|
||
self.currentLvNum=Util.GetGameObject(self.curStatePart,"title/num"):GetComponent("Text")
|
||
self.progressBar = Util.GetGameObject(self.curStatePart, "progressBar"):GetComponent("Slider")
|
||
self.progressText = Util.GetGameObject(self.curStatePart, "progressBar/Text"):GetComponent("Text")
|
||
|
||
|
||
--midPart
|
||
self.midPart = Util.GetGameObject(self.transform, "midPart")
|
||
self.giftRoot = Util.GetGameObject(self.midPart, "giftRoot")
|
||
self.giftTypeIcon = Util.GetGameObject(self.giftRoot, "title"):GetComponent("Image")
|
||
self.giftItemContent = Util.GetGameObject(self.giftRoot, "grid")
|
||
self.giftItemList = {}
|
||
for i = 1, kMaxGiftCount do
|
||
self.giftItemList[i] = Util.GetGameObject(self.giftRoot, "grid/prop_"..i)--SubUIManager.Open(SubUIConfig.ItemView, self.giftItemContent.transform)
|
||
end
|
||
|
||
self.effect = Util.GetGameObject(self.giftRoot, "UI_Effect_VipPanel")
|
||
effectAdapte(self.effect)
|
||
|
||
self.BtnReceive = Util.GetGameObject(self.topPart, "btnGet")
|
||
self.BtnReceiveText = Util.GetGameObject(self.BtnReceive, "Text"):GetComponent("Text")
|
||
self.receiveRedPoint = Util.GetGameObject(self.BtnReceive,"redPoint")
|
||
|
||
--privilege
|
||
self.privilegeTitle = Util.GetGameObject(self.transform, "frame/topPart/privilegeRoot/title"):GetComponent("Text")
|
||
self.privilegeContent = Util.GetGameObject(self.transform, "frame/topPart/privilegeRoot/privilegeList/viewPort/content")
|
||
self.privilegeItem = Util.GetGameObject(self.privilegeContent, "itemPro")
|
||
self.privilegeItem.gameObject:SetActive(false)
|
||
self.privilegeList = {}
|
||
--bottomPart
|
||
self.maxLv = Util.GetGameObject(self.transform, "bottomPart/maxLv")
|
||
self.btnLvUp = Util.GetGameObject(self.transform, "bottomPart/btnLvUp")
|
||
self.taskList = Util.GetGameObject(self.transform, "bottomPart/taskList")
|
||
|
||
self.taskItemList = {}
|
||
for i = 1, self.taskList.transform.childCount do
|
||
self.taskItemList[i] = self.taskList.transform:GetChild(i - 1)
|
||
end
|
||
self.allRewardItemParent = Util.GetGameObject(self.transform, "frame/topPart/stateRoot/rewardGird")
|
||
self.getReawardBtn = Util.GetGameObject(self.transform, "frame/topPart/stateRoot/getReawardBtn")
|
||
self.getReawardBtnRedPoint = Util.GetGameObject(self.transform, "frame/topPart/stateRoot/getReawardBtn/redPoint")
|
||
self.getReawardBtnText = Util.GetGameObject(self.transform, "frame/topPart/stateRoot/getReawardBtn/Text"):GetComponent("Text")
|
||
end
|
||
|
||
function VipPanelV2:BindEvent()
|
||
|
||
--帮助按钮
|
||
Util.AddClick(this.helpBtn, function()
|
||
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.VIP, this.helpPosition.x,this.helpPosition.y)
|
||
end)
|
||
|
||
Util.AddClick(self.BtnBack, function()
|
||
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
||
self:ClosePanel()
|
||
end)
|
||
|
||
Util.AddClick(self.BtnLeft, function()
|
||
self:OnTurnLeftBtnClicked()
|
||
end)
|
||
Util.AddClick(self.BtnRight, function()
|
||
self:OnTurnRightBtnClicked()
|
||
end)
|
||
|
||
Util.AddClick(self.BtnReceive, function()
|
||
self:OnReceiveBtnClicked()
|
||
end)
|
||
|
||
Util.AddClick(self.btnLvUp, function()
|
||
self:OnBtnLvUpClicked()
|
||
end)
|
||
Util.AddClick(self.getReawardBtn, function()
|
||
self:OnGetReawardBtnClicked(self.curShowLevel)
|
||
end)
|
||
|
||
end
|
||
|
||
function VipPanelV2:OnVipTaskStatusChanged(taskId)
|
||
self:OnTaskStatusChanged(taskId)
|
||
end
|
||
|
||
function VipPanelV2:OnVipDailyRewardStatusChanged(taskId)
|
||
self:OnShow()
|
||
end
|
||
|
||
function VipPanelV2:AddListener()
|
||
Game.GlobalEvent:AddEvent(GameEvent.Vip.OnVipTaskStatusChanged, self.OnVipTaskStatusChanged, self)
|
||
Game.GlobalEvent:AddEvent(GameEvent.Vip.OnVipDailyRewardStatusChanged, self.OnVipDailyRewardStatusChanged, self)
|
||
Game.GlobalEvent:AddEvent(GameEvent.CloseUI.OnClose,self.OnVipDailyRewardStatusChanged, self)
|
||
end
|
||
|
||
function VipPanelV2:RemoveListener()
|
||
Game.GlobalEvent:RemoveEvent(GameEvent.Vip.OnVipTaskStatusChanged, self.OnVipTaskStatusChanged, self)
|
||
Game.GlobalEvent:RemoveEvent(GameEvent.Vip.OnVipDailyRewardStatusChanged, self.OnVipDailyRewardStatusChanged, self)
|
||
Game.GlobalEvent:RemoveEvent(GameEvent.CloseUI.OnClose,self.OnVipDailyRewardStatusChanged, self)
|
||
end
|
||
|
||
--待功能扩展(试图打开某个状态)
|
||
function VipPanelV2:OnOpen()
|
||
this.UpView:OnOpen({ showType = UpViewOpenType.ShowRight, panelType = PanelType.Main })
|
||
-- this.BtView:OnOpen({ sortOrder = self.sortingOrder, panelType = PanelTypeView.TeQuan })
|
||
end
|
||
|
||
function VipPanelV2:OnSortingOrderChange()
|
||
Util.AddParticleSortLayer(self.effect, self.sortingOrder - orginLayer)
|
||
orginLayer = self.sortingOrder
|
||
-- 头像层级
|
||
-- if this.playerHead then
|
||
-- this.playerHead:SetLayer(self.sortingOrder)
|
||
-- end
|
||
if this.playerInfoView then
|
||
this.playerInfoView:SetLayer(self.sortingOrder)
|
||
end
|
||
end
|
||
|
||
function VipPanelV2:OnShow()
|
||
self:InitVipContext()
|
||
self:SetPanelStatus()
|
||
|
||
-- 刷新一次编队战斗力
|
||
FormationManager.RefreshMainFormationPower()
|
||
end
|
||
|
||
function VipPanelV2:OnClose()
|
||
if self.priThread then
|
||
coroutine.stop(self.priThread)
|
||
self.priThread = nil
|
||
end
|
||
|
||
if self.taskThread then
|
||
coroutine.stop(self.taskThread)
|
||
self.taskThread = nil
|
||
end
|
||
end
|
||
|
||
function VipPanelV2:OnDestroy()
|
||
this.spLoader:Destroy()
|
||
SubUIManager.Close(this.UpView)
|
||
-- SubUIManager.Close(this.BtView)
|
||
-- SubUIManager.Close(this.playerHead)
|
||
-- this.playerHead = nil
|
||
this.UpView = nil
|
||
-- this.BtView = nil
|
||
if this.playerInfoView then
|
||
SubUIManager.Close(this.playerInfoView)
|
||
this.playerInfoView = nil
|
||
end
|
||
allRewardItemPres = {}
|
||
end
|
||
|
||
function VipPanelV2:InitVipContext()
|
||
self.context = {}
|
||
self.context.UserMissionInfo = TaskManager.GetTypeTaskList(TaskTypeDef.VipTask)
|
||
self.context.vipLevel = VipManager.GetVipLevel()
|
||
end
|
||
|
||
function VipPanelV2:SetPanelStatus()
|
||
local maxLv = VipManager.GetMaxVipLevel()
|
||
self.curLevel.sprite = this.spLoader:LoadSprite("r_zjm_tequanpaizi_0" .. self.context.vipLevel.."_zh")
|
||
-- 显示的
|
||
self.curShowLevel = VipManager.GetCurMinCanGetRewardLevel()--math.min(self.context.vipLevel + 1, maxLv)
|
||
self:RefreshPanelStatus(self.curShowLevel)
|
||
self:CheckTaskShow()
|
||
self.BtnLeft:SetActive(self.curShowLevel > 1)
|
||
self.BtnRight:SetActive(self.curShowLevel ~= maxLv)
|
||
end
|
||
|
||
-- 检测任务显示
|
||
function VipPanelV2:CheckTaskShow()
|
||
if self.context.vipLevel == VipManager.GetMaxVipLevel() then
|
||
self.taskList:SetActive(false)
|
||
self.btnLvUp:SetActive(false)
|
||
self.maxLv:SetActive(true)
|
||
else
|
||
self.maxLv:SetActive(false)
|
||
local isfinish = true
|
||
local taskListInfo = self.context.UserMissionInfo
|
||
for i = 1, #taskListInfo do
|
||
if taskListInfo[i].state ~= VipTaskStatusDef.Received then
|
||
isfinish = false
|
||
end
|
||
end
|
||
self.taskList:SetActive(not isfinish)
|
||
self.btnLvUp:SetActive(isfinish)
|
||
if not isfinish then
|
||
self:SetVipTaskList(self.context.vipLevel)
|
||
end
|
||
end
|
||
end
|
||
|
||
|
||
function VipPanelV2:SetProgressShow(level)
|
||
local taskLevel = level - 1
|
||
if taskLevel < self.context.vipLevel then
|
||
self.progressBar.value = 1
|
||
self.progressText.text = "4/4"
|
||
elseif taskLevel > self.context.vipLevel then
|
||
self.progressBar.value = 0
|
||
self.progressText.text = "0/4"
|
||
else
|
||
local taskFinishNum = 0
|
||
local taskListInfo = self.context.UserMissionInfo
|
||
for i = 1, #taskListInfo do
|
||
if taskListInfo[i].state == VipTaskStatusDef.Received then
|
||
taskFinishNum = taskFinishNum + 1
|
||
end
|
||
end
|
||
self.progressBar.value = taskFinishNum / #taskListInfo
|
||
self.progressText.text = string.format("%d/%d", taskFinishNum, #taskListInfo)
|
||
end
|
||
end
|
||
|
||
function VipPanelV2:SetRewardList(level)
|
||
local VipLvConfig = ConfigManager.GetConfigData(ConfigName.VipLevelConfig, level)
|
||
local configData = VipLvConfig.Property
|
||
table.walk(self.giftItemList, function(giftItem)
|
||
giftItem:SetActive(false)
|
||
end)
|
||
for idx, dataInfo in ipairs(configData) do
|
||
local id = dataInfo[1]
|
||
local num = dataInfo[2]
|
||
if num ~= 0 then
|
||
self.giftItemList[idx]:SetActive(true)
|
||
local propInfo = ConfigManager.GetConfigData(ConfigName.PropertyConfig, id)
|
||
if propInfo.Style == 1 then
|
||
self.giftItemList[idx]:GetComponent("Text").text = string.format(Language[11955], GetLanguageStrById(propInfo.Info))
|
||
Util.GetGameObject(self.giftItemList[idx], "value"):GetComponent("Text").text = "+"..num
|
||
elseif propInfo.Style == 2 then
|
||
self.giftItemList[idx]:GetComponent("Text").text = GetLanguageStrById(propInfo.Info)
|
||
Util.GetGameObject(self.giftItemList[idx], "value"):GetComponent("Text").text = string.format("+%d%%", num/100)
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
|
||
--特权增益描述
|
||
function VipPanelV2:SetVipPrivileges(curVipLevel)
|
||
if self.priThread then
|
||
coroutine.stop(self.priThread)
|
||
self.priThread = nil
|
||
end
|
||
table.walk(self.privilegeList, function(privilegeItem)
|
||
privilegeItem:SetActive(false)
|
||
end)
|
||
local curVipData = PrivilegeManager.GetTipsByVipLv(curVipLevel)
|
||
local tempNumber = 0
|
||
self.priThread = coroutine.start(function()
|
||
for _, privilegeInfo in ipairs(curVipData) do
|
||
|
||
if privilegeInfo.value == ""
|
||
or (privilegeInfo.IfFloat == 1 and privilegeInfo.value > 0)
|
||
or (privilegeInfo.IfFloat == 2 and privilegeInfo.value > 1)
|
||
then
|
||
tempNumber = tempNumber + 1
|
||
local item = self:GetPrivilegeItem(tempNumber)
|
||
item:SetActive(false)
|
||
-- local str = "<size=45><color=#7bb15bFF> </color></size>"
|
||
-- str = string.format("<size=45><color=#7bb15bFF>%s</color></size>", privilegeInfo.value)
|
||
local colorStr = "<color=#7AB159><size=35>%s</size></color>"
|
||
local formatStr
|
||
if privilegeInfo.IfFloat == 2 then --特权关卡挂机加成百分比
|
||
formatStr = string.format(colorStr, (privilegeInfo.value*100-100).."%")
|
||
else
|
||
formatStr = string.format(colorStr, privilegeInfo.value)
|
||
end
|
||
local title = Util.GetGameObject(item, "content/title"):GetComponent("Text")
|
||
--
|
||
if privilegeInfo.id == PRIVILEGE_TYPE.HANG_ON_TIME then
|
||
-- 挂机时长特权特殊显示处理
|
||
title.text = string.format(privilegeInfo.content, string.format(colorStr, privilegeInfo.value + GameSetting[1].AdventureOffline), formatStr)
|
||
else
|
||
title.text = string.format(privilegeInfo.content, formatStr)
|
||
end
|
||
|
||
--PlayUIAnim(item)
|
||
coroutine.wait(0.03)
|
||
--加成为0就别丢人现眼了
|
||
if privilegeInfo.value == 0 then
|
||
-- if privilegeInfo.id==1 and (privilegeInfo.value*100-100)==0 then
|
||
item:SetActive(false)
|
||
else
|
||
item:SetActive(true)
|
||
end
|
||
end
|
||
|
||
end
|
||
end)
|
||
end
|
||
function VipPanelV2: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(item, "title"):GetComponent("Text").text = str
|
||
end
|
||
function VipPanelV2: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 VipPanelV2:SetVipTaskList(level)
|
||
local configData = ConfigManager.GetConfigData(ConfigName.VipLevelConfig, level)
|
||
table.walk(self.taskItemList, function(taskItem)
|
||
taskItem.gameObject:SetActive(false)
|
||
end)
|
||
|
||
-- if level < self.context.vipLevel then
|
||
-- for i, taskId in ipairs(configData.OpenRules) do
|
||
-- -- self.taskItemList[i]:Init(taskId)
|
||
-- -- local taskConfigInfo = ConfigManager.GetConfigData(ConfigName.TaskConfig, taskId)
|
||
-- -- self.taskItemList[i]:SetValue({state = VipTaskStatusDef.Received, progress = taskConfigInfo.TaskValue[2][1]})
|
||
-- end
|
||
-- self:SetTaskAnimation(#configData.OpenRules)
|
||
-- elseif level > self.context.vipLevel then
|
||
-- for i, taskId in ipairs(configData.OpenRules) do
|
||
-- -- self.taskItemList[i]:Init(taskId)
|
||
-- -- self.taskItemList[i]:SetValue({state = VipTaskStatusDef.NotFinished, progress = 0})
|
||
-- end
|
||
-- self:SetTaskAnimation(#configData.OpenRules)
|
||
-- else
|
||
if level == self.context.vipLevel then--好像一定走这里
|
||
if #self.context.UserMissionInfo == 0 then
|
||
return
|
||
end
|
||
for i, taskInfo in ipairs(self.context.UserMissionInfo) do
|
||
-- self.taskItemList[i]:Init(taskInfo.missionId)
|
||
-- self.taskItemList[i]:SetValue(taskInfo)
|
||
self:showSingleTask(self.taskItemList[i],taskInfo)
|
||
end
|
||
self:SetTaskAnimation(#self.context.UserMissionInfo)
|
||
end
|
||
end
|
||
|
||
--单个初始化任务
|
||
function VipPanelV2:showSingleTask(item,taskInfo)
|
||
--creat
|
||
local itemPos = Util.GetGameObject(item, "content/itemPos")
|
||
local giftInfo = SubUIManager.Open(SubUIConfig.ItemView, itemPos.transform)
|
||
local desc = Util.GetGameObject(item, "content/desc"):GetComponent("Text")
|
||
local progressBar = Util.GetGameObject(item, "content/progressBar"):GetComponent("Slider")
|
||
local progressValue = Util.GetGameObject(item, "content/dealBtn/value"):GetComponent("Text")
|
||
local dealBtn = Util.GetGameObject(item, "content/dealBtn")
|
||
|
||
local finishFlag = Util.GetGameObject(item, "content/finished")
|
||
local redPoint = Util.GetGameObject(item,"content/redPoint")
|
||
|
||
--init
|
||
local data = nil
|
||
local taskConfigInfo = ConfigManager.GetConfigData(ConfigName.TaskConfig, taskInfo.missionId)
|
||
giftInfo:OnOpen(false, taskConfigInfo.Reward[1], 0.8)
|
||
desc.text = GetLanguageStrById(taskConfigInfo.Desc)
|
||
progressBar.value = 0
|
||
progressValue.text = "0/" .. taskConfigInfo.TaskValue[2][1]
|
||
dealBtn:SetActive(false)
|
||
finishFlag:SetActive(false)
|
||
redPoint:SetActive(false)
|
||
|
||
--setvalue
|
||
data = taskInfo
|
||
progressBar.value = taskInfo.progress / taskConfigInfo.TaskValue[2][1]
|
||
progressValue.text = string.format("%s/%s", taskInfo.progress, taskConfigInfo.TaskValue[2][1])
|
||
dealBtn:SetActive(taskInfo.state == VipTaskStatusDef.NotFinished or taskInfo.state == VipTaskStatusDef.CanReceive)
|
||
if dealBtn.activeSelf then
|
||
dealBtn:GetComponent("Image").sprite = this.spLoader:LoadSprite(TaskGetBtnIconDef[taskInfo.state])
|
||
end
|
||
finishFlag:SetActive(taskInfo.state == VipTaskStatusDef.Received)
|
||
redPoint:SetActive(taskInfo.state == VipTaskStatusDef.CanReceive)
|
||
|
||
Util.AddOnceClick(dealBtn,function ()
|
||
if data.state == VipTaskStatusDef.NotFinished then
|
||
JumpManager.GoJump(taskConfigInfo.Jump[1])
|
||
else
|
||
NetManager.TakeMissionRewardRequest(TaskTypeDef.VipTask, taskConfigInfo.Id, function(respond)
|
||
UIManager.OpenPanel(UIName.RewardItemPopup, respond.drop, 1)
|
||
TaskManager.SetTypeTaskState(TaskTypeDef.VipTask, taskConfigInfo.Id, VipTaskStatusDef.Received)
|
||
Game.GlobalEvent:DispatchEvent(GameEvent.Vip.OnVipTaskStatusChanged, taskConfigInfo.Id)
|
||
self:SetPanelStatus()
|
||
end)
|
||
end
|
||
end)
|
||
end
|
||
|
||
|
||
function VipPanelV2:SetTaskAnimation(length)
|
||
if self.taskThread then
|
||
coroutine.stop(self.taskThread)
|
||
self.taskThread = nil
|
||
end
|
||
self.taskThread = coroutine.start(function()
|
||
for i = 1, length do
|
||
self.taskItemList[i].gameObject:SetActive(false)
|
||
PlayUIAnim(Util.GetGameObject(self.taskItemList[i], "content"))
|
||
coroutine.wait(0.05)
|
||
self.taskItemList[i].gameObject:SetActive(true)
|
||
-- coroutine.wait(0.05)
|
||
end
|
||
end)
|
||
end
|
||
|
||
|
||
function VipPanelV2:OnTurnLeftBtnClicked()
|
||
-- self:SwitchState(self:GetCurrentStatus(self.context.UserMissionInfo))
|
||
if self.curShowLevel <= 1 then
|
||
return
|
||
end
|
||
self.curShowLevel = self.curShowLevel - 1
|
||
self:RefreshPanelStatus(self.curShowLevel)
|
||
|
||
self.BtnLeft:SetActive(self.curShowLevel > 1)
|
||
self.BtnRight:SetActive(self.curShowLevel ~= VipManager.GetMaxVipLevel())
|
||
end
|
||
|
||
function VipPanelV2:OnTurnRightBtnClicked()
|
||
-- self:SwitchState(VipShowStatusDef.Preview)
|
||
if self.curShowLevel >= VipManager.GetMaxVipLevel() then
|
||
return
|
||
end
|
||
self.curShowLevel = self.curShowLevel + 1
|
||
self:RefreshPanelStatus(self.curShowLevel)
|
||
|
||
self.BtnLeft:SetActive(self.curShowLevel > 1)
|
||
self.BtnRight:SetActive(self.curShowLevel ~= VipManager.GetMaxVipLevel())
|
||
end
|
||
|
||
function VipPanelV2:OnBtnLvUpClicked()
|
||
local oldPowerNum = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
|
||
NetManager.RequestVipLevelUp(function(respond)
|
||
-- VipManager.SetLevleRewardDatas(self.curShowLevel,1)
|
||
self:OnShow()
|
||
SoundManager.PlaySound(SoundConfig.Sound_VipUpLevel)
|
||
--设置战斗力脏数据
|
||
HeroPropManager.SetFuncPropDirty(Func_Prop_Type.Vip)
|
||
end)
|
||
end
|
||
|
||
--刷新界面
|
||
function VipPanelV2:RefreshPanelStatus(level)
|
||
self:SetProgressShow(level)
|
||
self.currentLvNum.text = level
|
||
self:SetVipPrivileges(level)
|
||
self:SetRewardList(level)
|
||
self:ShowRewardInfo(level)
|
||
end
|
||
|
||
--特权任务发生变化
|
||
function VipPanelV2:OnTaskStatusChanged(taskId)
|
||
for i = 1, #self.context.UserMissionInfo do
|
||
local taskInfo = self.context.UserMissionInfo[i]
|
||
if taskInfo.missionId == taskId then
|
||
taskInfo.state = VipTaskStatusDef.Received
|
||
-- self.taskItemList[i]:SetValue(taskInfo)
|
||
break
|
||
end
|
||
end
|
||
|
||
if self.curShowLevel - 1 == self.context.vipLevel then
|
||
self:SetProgressShow(self.curShowLevel)
|
||
end
|
||
|
||
local isfinish = true
|
||
local taskListInfo = self.context.UserMissionInfo
|
||
for i = 1, #taskListInfo do
|
||
if taskListInfo[i].state ~= VipTaskStatusDef.Received then
|
||
isfinish = false
|
||
end
|
||
end
|
||
if isfinish then
|
||
self:CheckTaskShow()
|
||
end
|
||
end
|
||
|
||
--跳转显示新手提示圈
|
||
function this.ShowGuideGo()
|
||
JumpManager.ShowGuide(UIName.VipPanelV2, this.taskItemList[1].dealBtn)
|
||
end
|
||
|
||
--修正因VIP字体导致等级数篡位
|
||
function this.CheckVipLvPos(tarObj,lv)
|
||
if lv>9 then
|
||
tarObj.transform:DOAnchorPosX(10,0)
|
||
else
|
||
tarObj.transform:DOAnchorPosX(0,0)
|
||
end
|
||
end
|
||
--奖励
|
||
function VipPanelV2:ShowRewardInfo(level)
|
||
local state = VipManager.GetLevleRewardDatas(level)--0 未领取 1 已领取
|
||
local vipCurLevel = VipManager.GetVipLevel()
|
||
self.getReawardBtnRedPoint:SetActive(false)
|
||
if state == 0 then
|
||
self.getReawardBtnText.text = Language[10018]
|
||
Util.SetGray(self.getReawardBtn, true)
|
||
elseif state == 1 then
|
||
self.getReawardBtnText.text = Language[10018]
|
||
Util.SetGray(self.getReawardBtn, false)
|
||
self.getReawardBtnRedPoint:SetActive(true)
|
||
elseif state == 2 then
|
||
self.getReawardBtnText.text = Language[10101]
|
||
Util.SetGray(self.getReawardBtn, false)
|
||
end
|
||
local curConfig = ConfigManager.GetConfigData(ConfigName.VipLevelConfig, level)
|
||
local reward = curConfig.Reward
|
||
if reward then
|
||
for i = 1, math.max(#allRewardItemPres, #reward) do
|
||
local go = allRewardItemPres[i]
|
||
if not go then
|
||
go = SubUIManager.Open(SubUIConfig.ItemView, self.allRewardItemParent.transform)
|
||
go.gameObject.name = "frame"..i
|
||
allRewardItemPres[i] = go
|
||
end
|
||
go.gameObject:SetActive(false)
|
||
end
|
||
for i = 1, #reward do
|
||
allRewardItemPres[i].gameObject:SetActive(true)
|
||
allRewardItemPres[i]:OnOpen(false,reward[i],0.9)
|
||
end
|
||
end
|
||
end
|
||
function VipPanelV2:OnGetReawardBtnClicked(level)
|
||
local state = VipManager.GetLevleRewardDatas(level)--0 不可领取 1 可领取 2已领取
|
||
local vipCurLevel = VipManager.GetVipLevel()
|
||
LogYellow("state "..state)
|
||
if state == 0 then
|
||
PopupTipPanel.ShowTip(string.format( "特权%s级后可领取!",level))
|
||
elseif state == 1 then
|
||
NetManager.VipLevelStateRewardRequset(level,function(msg)
|
||
VipManager.SetLevleRewardDatas(level,2)
|
||
UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function()
|
||
VipPanelV2:ShowRewardInfo(level)
|
||
CheckRedPointStatus(RedPointType.VipPrivilege)
|
||
end)
|
||
end)
|
||
elseif state == 2 then
|
||
PopupTipPanel.ShowTip(Language[10101])
|
||
end
|
||
end
|
||
return VipPanelV2 |