forked from endernon/PGRData
235 lines
No EOL
8.3 KiB
Lua
235 lines
No EOL
8.3 KiB
Lua
local XUiPanelTrialMain = XClass(nil, "XUiPanelTrialMain")
|
||
local XUiPanelTrialTaskList = require("XUi/XUiTrial/XUiPanelTrialTaskList")
|
||
local XUiPanelTrialType = require("XUi/XUiTrial/XUiPanelTrialType")
|
||
|
||
function XUiPanelTrialMain:Ctor(ui, uiRoot)
|
||
self.GameObject = ui.gameObject
|
||
self.Transform = ui.transform
|
||
self.UiRoot = uiRoot
|
||
XTool.InitUiObject(self)
|
||
self:AddListener()
|
||
self:InitUiAfterAuto()
|
||
end
|
||
|
||
function XUiPanelTrialMain:InitUiAfterAuto()
|
||
self.TrialTaskList = XUiPanelTrialTaskList.New(self.PanelTrialTaskList, self.UiRoot, self)
|
||
self.TrialTypeList = XUiPanelTrialType.New(self.PanelTrialType, self.UiRoot, self)
|
||
self.TxtName.text = CS.XTextManager.GetText("TrialName")
|
||
self.ProForImg = {}
|
||
self.ProForImg[1] = self.ImgPro1.gameObject
|
||
self.ProForImg[2] = self.ImgPro2.gameObject
|
||
self.ProForImg[3] = self.ImgPro3.gameObject
|
||
self.ProForImg[4] = self.ImgPro4.gameObject
|
||
self.ProForImg[5] = self.ImgPro5.gameObject
|
||
|
||
self.ProBackEndImg = {}
|
||
self.ProBackEndImg[1] = self.ImgPro1A.gameObject
|
||
self.ProBackEndImg[2] = self.ImgPro2A.gameObject
|
||
self.ProBackEndImg[3] = self.ImgPro3A.gameObject
|
||
self.ProBackEndImg[4] = self.ImgPro4A.gameObject
|
||
self.ProBackEndImg[5] = self.ImgPro5A.gameObject
|
||
|
||
self.ProBackEndAnimation = {}
|
||
self.ProForAnimation = {}
|
||
self.ProForAnimation[1] = "AniTrialImgPro1"
|
||
self.ProForAnimation[2] = "AniTrialImgPro2"
|
||
self.ProForAnimation[3] = "AniTrialImgPro3"
|
||
self.ProForAnimation[4] = "AniTrialImgPro4"
|
||
self.ProForAnimation[5] = "AniTrialImgPro5"
|
||
|
||
self.ProBackEndAnimation[1] = "AniTrialImgPro6"
|
||
self.ProBackEndAnimation[2] = "AniTrialImgPro7"
|
||
self.ProBackEndAnimation[3] = "AniTrialImgPro8"
|
||
self.ProBackEndAnimation[4] = "AniTrialImgPro9"
|
||
self.ProBackEndAnimation[5] = "AniTrialImgPro10"
|
||
|
||
self.ProBackEndFx = {}
|
||
self.ProForFx = {}
|
||
self.ProForFx[1] = self.PanelFx1
|
||
self.ProForFx[2] = self.PanelFx2
|
||
self.ProForFx[3] = self.PanelFx3
|
||
self.ProForFx[4] = self.PanelFx4
|
||
self.ProForFx[5] = self.PanelFx5
|
||
|
||
self.ProBackEndFx[1] = self.PanelFx1A
|
||
self.ProBackEndFx[2] = self.PanelFx2A
|
||
self.ProBackEndFx[3] = self.PanelFx3A
|
||
self.ProBackEndFx[4] = self.PanelFx4A
|
||
self.ProBackEndFx[5] = self.PanelFx5A
|
||
end
|
||
|
||
-- 重新设置list的item的状态,让特效出现。
|
||
function XUiPanelTrialMain:SetListItemFx()
|
||
self.TrialTaskList:SetListItemFx()
|
||
end
|
||
|
||
-- 关闭list的item的特效,防止特效透ui。
|
||
function XUiPanelTrialMain:ClostListItemFx()
|
||
self.TrialTaskList:ClostListItemFx()
|
||
end
|
||
|
||
-- trialtype,1:前段 2:后段
|
||
function XUiPanelTrialMain:SeleTrialType(trialtype)
|
||
self.CurTrialType = trialtype
|
||
self.TrialTaskList:UpdateTaskList(trialtype)
|
||
end
|
||
|
||
-- 特效播放完
|
||
function XUiPanelTrialMain:FxFisish()
|
||
self.TrialTaskList:OpenFxFinish(true)
|
||
self.TrialTaskList:SetListItemFx()
|
||
end
|
||
|
||
-- 打开
|
||
function XUiPanelTrialMain:OpenView()
|
||
XDataCenter.TrialManager.UnLockRed = true
|
||
self.TrialTaskList:OpenFxFinish(false)
|
||
self.UiRoot:PlayAnimation("AnimStartEnable", function()
|
||
self.Dark.gameObject:SetActive(false)
|
||
self:FxFisish()
|
||
end)
|
||
|
||
self:RewardGetHandle()
|
||
end
|
||
|
||
-- 关闭
|
||
function XUiPanelTrialMain:CloseView()
|
||
for _, v in pairs(self.ProForFx) do
|
||
v.gameObject:SetActive(false)
|
||
end
|
||
|
||
for _, v in pairs(self.ProBackEndFx) do
|
||
v.gameObject:SetActive(false)
|
||
end
|
||
end
|
||
|
||
-- 必须保证奖励能正确领取到
|
||
function XUiPanelTrialMain:RewardGetHandle()
|
||
local curTrialType = XDataCenter.TrialManager.FinishTrialType()
|
||
if curTrialType == XDataCenter.TrialManager.TrialTypeCfg.TrialFor then
|
||
self.CurTrialType = curTrialType
|
||
else
|
||
if self.UiRoot.RewardUIOpen then--奖励界面还在,不需要判断。
|
||
return
|
||
end
|
||
if XDataCenter.TrialManager.TrialRewardGetedFinish() and not XDataCenter.TrialManager.TypeRewardByTrialtype(XDataCenter.TrialManager.TrialTypeCfg.TrialFor) then
|
||
self.CurTrialType = XDataCenter.TrialManager.TrialTypeCfg.TrialFor
|
||
self.UiRoot:HandleForTrialFinish()
|
||
elseif not XDataCenter.TrialManager.TrialRewardGetedFinish() then
|
||
self.CurTrialType = XDataCenter.TrialManager.TrialTypeCfg.TrialFor
|
||
else
|
||
self.CurTrialType = curTrialType
|
||
if XDataCenter.TrialManager.TrialRewardGetedBackEndFinish() and not XDataCenter.TrialManager.TypeRewardByTrialtype(XDataCenter.TrialManager.TrialTypeCfg.TrialBackEnd) then
|
||
self.UiRoot:HandleBackFinishTips()
|
||
end
|
||
end
|
||
end
|
||
|
||
self:SeleTrialType(self.CurTrialType)
|
||
self:SetTrialTypeNameByType(self.CurTrialType)
|
||
self:SetTypeTrialPro()
|
||
self:SetTrialBg(self.CurTrialType)
|
||
end
|
||
|
||
--结算后重新更新数据
|
||
function XUiPanelTrialMain:UpdateViewOnFinish()
|
||
self:SeleTrialType(self.CurTrialType)
|
||
self.TrialTypeList:SetTrialTypeNameByType(self.CurTrialType)
|
||
self:SetTypeTrialPro()
|
||
end
|
||
|
||
-- 通过类型设置名字
|
||
function XUiPanelTrialMain:SetTrialTypeNameByType(trialtype)
|
||
self.TrialTypeList:SetTrialTypeNameByType(trialtype)
|
||
self.TrialTypeList:InitScrollState(trialtype)
|
||
end
|
||
|
||
-- 设置背景
|
||
function XUiPanelTrialMain:SetTrialBg(trialtype)
|
||
self.UiRoot:SetTrialBg(trialtype)
|
||
end
|
||
|
||
-- 设置类型关卡进度
|
||
function XUiPanelTrialMain:SetTypeTrialPro()
|
||
if self.CurTrialType == XDataCenter.TrialManager.TrialTypeCfg.TrialFor then
|
||
local cfg = XTrialConfigs.GetForTotalData()
|
||
self.PanelForPro.gameObject:SetActive(true)
|
||
self.PanelBackEndPro.gameObject:SetActive(false)
|
||
self.ImgForPartPro.gameObject:SetActive(true)
|
||
self.ImgBackEndPartPro.gameObject:SetActive(false)
|
||
|
||
for k, v in pairs(cfg) do
|
||
if XDataCenter.TrialManager.TrialLevelFinished(v.Id) and XDataCenter.TrialManager.TrialRewardGeted(v.Id) then
|
||
self.ProForImg[k]:SetActive(false)
|
||
else
|
||
self.ProForImg[k]:SetActive(true)
|
||
end
|
||
end
|
||
else
|
||
local cfg = XTrialConfigs.GetBackEndTotalData()
|
||
self.PanelForPro.gameObject:SetActive(false)
|
||
self.PanelBackEndPro.gameObject:SetActive(true)
|
||
self.ImgForPartPro.gameObject:SetActive(false)
|
||
self.ImgBackEndPartPro.gameObject:SetActive(true)
|
||
|
||
for k, v in pairs(cfg) do
|
||
if XDataCenter.TrialManager.TrialLevelFinished(v.Id) and XDataCenter.TrialManager.TrialRewardGeted(v.Id) then
|
||
self.ProBackEndImg[k]:SetActive(false)
|
||
else
|
||
self.ProBackEndImg[k]:SetActive(true)
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
-- 前段打完后处理
|
||
function XUiPanelTrialMain:SetForTrialFinish(trialtype)
|
||
self:SeleTrialType(trialtype)
|
||
self:SetTrialTypeNameByType(trialtype)
|
||
self:SetTrialBg(trialtype)
|
||
end
|
||
|
||
-- 设置单个进度
|
||
function XUiPanelTrialMain:SetTypeTrialSignlePro(index, cb)
|
||
if self.CurTrialType == XDataCenter.TrialManager.TrialTypeCfg.TrialFor then
|
||
self.UiRoot:PlayAnimation(self.ProForAnimation[index], cb)
|
||
self.ProForFx[index].gameObject:SetActive(true)
|
||
else
|
||
self.UiRoot:PlayAnimation(self.ProBackEndAnimation[index], cb)
|
||
self.ProBackEndFx[index].gameObject:SetActive(true)
|
||
end
|
||
end
|
||
|
||
function XUiPanelTrialMain:AddListener()
|
||
self.BtnHelp.CallBack = function() self:OnBtnHelpClick() end
|
||
self.BtnType.CallBack = function() self:OnBtnTypeClick() end
|
||
end
|
||
-- auto
|
||
function XUiPanelTrialMain:OnBtnHelpClick()
|
||
XUiManager.UiFubenDialogTip("", CS.XTextManager.GetText("TrialIllustration") or "")
|
||
end
|
||
|
||
function XUiPanelTrialMain:OnBtnTypeClick()
|
||
if self.CurTrialType == XDataCenter.TrialManager.TrialTypeCfg.TrialFor then
|
||
|
||
local cfg = XTrialConfigs.GetTrialTypeCfg(XDataCenter.TrialManager.TrialTypeCfg.TrialFor)
|
||
if not cfg then
|
||
return
|
||
end
|
||
|
||
local rewards = XRewardManager.GetRewardList(cfg.RewardId)
|
||
if rewards and rewards[1] then
|
||
XMVCA:GetAgency(ModuleId.XEquip):OpenUiEquipPreview(rewards[1].TemplateId)
|
||
end
|
||
else
|
||
local cfg = XTrialConfigs.GetTrialTypeCfg(XDataCenter.TrialManager.TrialTypeCfg.TrialBackEnd)
|
||
if not cfg then
|
||
return
|
||
end
|
||
local rewards = XRewardManager.GetRewardList(cfg.RewardId)
|
||
if rewards and rewards[1] then
|
||
XMVCA:GetAgency(ModuleId.XEquip):OpenUiEquipPreview(rewards[1].TemplateId)
|
||
end
|
||
end
|
||
end
|
||
return XUiPanelTrialMain |