ro-webgl/Assets/Lua/UI/UIWorldBoss/UIWorldBossRewardCtr.lua
2021-12-21 09:40:39 +08:00

113 lines
3.0 KiB
Lua

local UIWorldBossRewardCtr = class("UIWorldBossRewardCtr", require("UICtrBase"))
function UIWorldBossRewardCtr:Init(view)
self.view = view
end
function UIWorldBossRewardCtr:SetData(data)
self.asyncIdx = 0
if data == nil then return end
self.data = data
end
function UIWorldBossRewardCtr:GetAsyncIdx()
self.asyncIdx = self.asyncIdx + 1
return self.asyncIdx
end
function UIWorldBossRewardCtr:GetData()
return self.data
end
function UIWorldBossRewardCtr:OnDispose()
self.data = nil
self.view = nil
self.worldBossCfgId = nil
self.rewardList = nil
self.rewardDatas = nil
self.rewardOpenIdx = nil
end
function UIWorldBossRewardCtr:InitData()
local pointInfo = ManagerContainer.DataMgr.WorldBossData:GetWorldBossPointInfo()
self.worldBossCfgId = pointInfo and pointInfo.bossId or 1
self.rewardList = pointInfo and pointInfo.rewardList or {3}
local worldBossCfgData = ManagerContainer.DataMgr.WorldBossData:GetWorldBossDataById(self:GetWorldBossCfgId(),0)
if nil == worldBossCfgData then
worldBossCfgData = ManagerContainer.DataMgr.WorldBossData:GetWorldBossDataById(self:GetWorldBossCfgId(),1)
end
local rewardDatas = {}
if worldBossCfgData then
rewardDatas[1] = self:FormatRewardData(worldBossCfgData.FirstReward)
rewardDatas[2] = self:FormatRewardData(worldBossCfgData.SecondReward)
rewardDatas[3] = self:FormatRewardData(worldBossCfgData.ThreeReward)
end
self.rewardDatas = rewardDatas
self.rewardOpenIdx = 1
local vipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
self.vipCfg = ManagerContainer.CfgMgr:GetVipCfgById(vipLv)
self.hasSSR = false
end
function UIWorldBossRewardCtr:GetWorldBossCfgId()
return self.worldBossCfgId
end
function UIWorldBossRewardCtr:GetCurVaildRewardType()
return self:GetWorldBossRewardTypeById(self.rewardOpenIdx)
end
function UIWorldBossRewardCtr:OffsetNextVaildRewardType()
self.rewardOpenIdx = self.rewardOpenIdx + 1
local rewardType = self:GetWorldBossRewardTypeById(self.rewardOpenIdx)
if rewardType then
return true
end
return false
end
function UIWorldBossRewardCtr:GetWorldBossRemainNum()
return #self.rewardList - self.rewardOpenIdx + 1
end
function UIWorldBossRewardCtr:GetWorldBossRewardTypeById(idx)
return self.rewardList and self.rewardList[idx] or nil
end
function UIWorldBossRewardCtr:GetWorldBossRewardList()
return self.rewardList
end
function UIWorldBossRewardCtr:GetWorldBossRewardsByType(rewardType)
if rewardType then
local rewardData = self.rewardDatas[rewardType]
if rewardData then
return rewardData
end
end
return {cfgId = 1, num = 0}
end
function UIWorldBossRewardCtr:FormatRewardData(rewards)
if rewards then
if type(rewards[1]) == 'number' then
rewards = {rewards}
end
local reward = {}
for i = 1, #rewards do
reward[#reward + 1] = {cfgId = rewards[i][1], num = rewards[i][2]}
end
return reward
end
return nil
end
function UIWorldBossRewardCtr:GetVipCfg()
return self.vipCfg
end
return UIWorldBossRewardCtr