234 lines
No EOL
6.9 KiB
Lua
234 lines
No EOL
6.9 KiB
Lua
local XUiTrial = XLuaUiManager.Register(XLuaUi, "UiTrial")
|
||
local XUiPanelTrialMain = require("XUi/XUiTrial/XUiPanelTrialMain")
|
||
local XUiPanelTrialSelect = require("XUi/XUiTrial/XUiPanelTrialSelect")
|
||
local XUiPanelTrialTips = require("XUi/XUiTrial/XUiPanelTrialTips")
|
||
local XUiPanelTrialGet = require("XUi/XUiTrial/XUiPanelTrialGet")
|
||
|
||
local ViewTypeCfg = {
|
||
TrialMain = 1,
|
||
TrialSelect = 2
|
||
}
|
||
|
||
local ViewTipsTypeCfg = {
|
||
TrialFor = 1,
|
||
TrialBackEnd = 2,
|
||
TrialTypeReward = 3
|
||
}
|
||
|
||
function XUiTrial:OnAwake()
|
||
XTool.InitUiObject(self)
|
||
self:AddListener()
|
||
self:InitUiAfterAuto()
|
||
end
|
||
|
||
function XUiTrial:InitUiAfterAuto()
|
||
self.AssetPanel = XUiPanelAsset.New(
|
||
self,
|
||
self.PanelAsset,
|
||
XDataCenter.ItemManager.ItemId.FreeGem,
|
||
XDataCenter.ItemManager.ItemId.ActionPoint,
|
||
XDataCenter.ItemManager.ItemId.Coin
|
||
)
|
||
self.TrialMain = XUiPanelTrialMain.New(self.PanelTrialMain, self)
|
||
self.TrialSelect = XUiPanelTrialSelect.New(self.PanelTrialSelect, self)
|
||
self.TrialTips = XUiPanelTrialTips.New(self.PanelTrialTips, self)
|
||
self.TrialGet = XUiPanelTrialGet.New(self.PanelTrialGet, self)
|
||
end
|
||
|
||
function XUiTrial:OnStart()
|
||
|
||
end
|
||
|
||
-- 刚好通关前段
|
||
function XUiTrial:OnSettleTrial()
|
||
self.TrialTips.GameObject:SetActive(true)
|
||
self:HandleForFinishTips()
|
||
end
|
||
|
||
-- 处理前段终结
|
||
function XUiTrial:HandleForFinishTips()
|
||
self.TrialTips:SetTrialType(ViewTipsTypeCfg.TrialFor)
|
||
self:PlayAnimation("AniTrialTips", function()
|
||
self.AniTrialTips.gameObject:SetActiveEx(false)
|
||
self:HandleBackStartTips()
|
||
end)
|
||
end
|
||
|
||
-- 处理后段开启
|
||
function XUiTrial:HandleBackStartTips()
|
||
self:PlayAnimation("AniTrialTips2", function()
|
||
if self.TrialTips and not XTool.UObjIsNil(self.TrialTips.GameObject) then
|
||
self.TrialTips.GameObject:SetActive(false)
|
||
end
|
||
end)
|
||
local trialtype = XDataCenter.TrialManager.TrialTypeCfg.TrialBackEnd
|
||
self.TrialMain:SetForTrialFinish(trialtype)
|
||
self.TrialMain:SetTypeTrialPro()
|
||
self.TrialTips:SetTrialType(ViewTipsTypeCfg.TrialBackEnd)
|
||
end
|
||
|
||
-- 处理后段终结
|
||
function XUiTrial:HandleBackFinishTips()
|
||
self:PlayAnimation("AniTrialGet")
|
||
local cfg = XTrialConfigs.GetTrialTypeCfg(XDataCenter.TrialManager.TrialTypeCfg.TrialBackEnd)
|
||
if cfg then
|
||
self.TrialGet:SetBg(cfg.BigIcon)
|
||
local rewardIdcfg = XRewardManager.GetRewardList(cfg.RewardId)[1]
|
||
if rewardIdcfg then
|
||
local name = XGoodsCommonManager.GetGoodsName(rewardIdcfg.TemplateId)
|
||
self.TrialGet:SetName(name)
|
||
end
|
||
end
|
||
self.TrialGet.GameObject:SetActive(true)
|
||
self.TrialGet:SetAnimationFx()
|
||
local btncb = function()
|
||
self.TrialGet.GameObject:SetActive(false)
|
||
XDataCenter.TrialManager.OnTrialTypeRewardRequest(
|
||
XDataCenter.TrialManager.TrialTypeCfg.TrialBackEnd,
|
||
function(rewardGoodsList)
|
||
XUiManager.OpenUiObtain(rewardGoodsList, nil, function()
|
||
local trialtype = XDataCenter.TrialManager.TrialTypeCfg.TrialTypeReward
|
||
self.TrialTips.GameObject:SetActive(true)
|
||
self.TrialTips:SetTrialType(trialtype)
|
||
self:PlayAnimation("AniTrialTips3", function()
|
||
XLuaUiManager.Close("UiTrial")
|
||
XLuaUiManager.Open("UiMain")
|
||
end)
|
||
end)
|
||
end
|
||
)
|
||
end
|
||
self.TrialGet:SetBtnCB(btncb)
|
||
end
|
||
|
||
-- 处理前段完成的Tips弹出
|
||
function XUiTrial:HandleForTrialFinish()
|
||
self:PlayAnimation("AniTrialGet")
|
||
local cfg = XTrialConfigs.GetTrialTypeCfg(XDataCenter.TrialManager.TrialTypeCfg.TrialFor)
|
||
if cfg then
|
||
self.TrialGet:SetBg(cfg.BigIcon)
|
||
local rewardIdcfg = XRewardManager.GetRewardList(cfg.RewardId)[1]
|
||
if rewardIdcfg then
|
||
local name = XGoodsCommonManager.GetGoodsName(rewardIdcfg.TemplateId)
|
||
self.TrialGet:SetName(name)
|
||
end
|
||
end
|
||
self.TrialGet.GameObject:SetActive(true)
|
||
self.TrialGet:SetAnimationFx()
|
||
|
||
local btncb = function()
|
||
self.TrialGet.GameObject:SetActive(false)
|
||
XDataCenter.TrialManager.OnTrialTypeRewardRequest(
|
||
XDataCenter.TrialManager.TrialTypeCfg.TrialFor,
|
||
function(rewardGoodsList)
|
||
XUiManager.OpenUiObtain(rewardGoodsList, nil, function()
|
||
self:OnSettleTrial()
|
||
end)
|
||
end
|
||
)
|
||
end
|
||
self.TrialGet:SetBtnCB(btncb)
|
||
end
|
||
|
||
-- 关闭list的item的特效,防止特效透ui。
|
||
function XUiTrial:SetListItemFx()
|
||
self.TrialMain:SetListItemFx()
|
||
end
|
||
|
||
-- 重新设置list的item的状态,让特效出现。
|
||
function XUiTrial:ClostMainListItemFx()
|
||
self.TrialMain:ClostListItemFx()
|
||
end
|
||
|
||
function XUiTrial:OnEnable()
|
||
self:OpenMainView()
|
||
end
|
||
|
||
function XUiTrial:OnDisable()
|
||
self.TrialMain:CloseView()
|
||
end
|
||
|
||
function XUiTrial:OnDestroy()
|
||
end
|
||
|
||
function XUiTrial:OnGetEvents()
|
||
return { XEventId.EVENT_FUBEN_CLOSE_FUBENSTAGEDETAIL, XEventId.EVENT_FUBEN_ENTERFIGHT }
|
||
end
|
||
|
||
-- 打开主界面
|
||
function XUiTrial:OpenMainView()
|
||
if self.CurTrialView == ViewTypeCfg.TrialSelect then
|
||
return
|
||
end
|
||
self.CurTrialView = ViewTypeCfg.TrialMain
|
||
self.TrialMain.GameObject:SetActive(true)
|
||
self.TrialMain:OpenView()
|
||
end
|
||
|
||
-- 奖励界面还在打开中不?
|
||
function XUiTrial:OpenRewardViewNow(flag)
|
||
self.RewardUIOpen = flag
|
||
end
|
||
|
||
|
||
-- 关闭主界面
|
||
function XUiTrial:CloseMainView()
|
||
self.TrialMain:CloseView()
|
||
self.TrialMain.GameObject:SetActive(false)
|
||
end
|
||
|
||
-- 关闭二级界面
|
||
function XUiTrial:CloseSelectView()
|
||
self.CurTrialView = ViewTypeCfg.TrialMain
|
||
self.TrialSelect:CloseView()
|
||
end
|
||
|
||
-- 打开二级界面
|
||
function XUiTrial:OpenSelectView(data)
|
||
self.CurSeleData = data
|
||
self.CurTrialView = ViewTypeCfg.TrialSelect
|
||
self.TrialSelect:OpenView(data)
|
||
end
|
||
|
||
function XUiTrial:OnNotify(evt, ...)
|
||
self.TrialSelect:OnNotify(evt, ...)
|
||
end
|
||
|
||
-- 设置背景
|
||
function XUiTrial:SetTrialBg(trialtype)
|
||
if trialtype == XDataCenter.TrialManager.TrialTypeCfg.TrialFor then
|
||
self.RImgForePartBg.gameObject:SetActive(true)
|
||
self.RImgBackEndBg.gameObject:SetActive(false)
|
||
else
|
||
self.RImgForePartBg.gameObject:SetActive(false)
|
||
self.RImgBackEndBg.gameObject:SetActive(true)
|
||
end
|
||
self.PreTrialBg = trialtype
|
||
end
|
||
|
||
-- 设置背景(二级界面关闭后设置回原来界面)
|
||
function XUiTrial:ReturnPreTrialBg()
|
||
if self.PreTrialBg then
|
||
self:SetTrialBg(self.PreTrialBg)
|
||
end
|
||
end
|
||
|
||
function XUiTrial:AddListener()
|
||
self.BtnMainUI.CallBack = function()self:OnBtnMainUIClick()end
|
||
self.BtnReturn.CallBack = function()self:OnBtnReturnClick()end
|
||
self:BindHelpBtn(self.BtnHelp, "Trial")
|
||
end
|
||
-- auto
|
||
function XUiTrial:OnBtnMainUIClick()
|
||
XLuaUiManager.RunMain()
|
||
end
|
||
|
||
function XUiTrial:OnBtnReturnClick()
|
||
if self.CurTrialView == ViewTypeCfg.TrialMain then
|
||
XLuaUiManager.Close("UiTrial")
|
||
else
|
||
self.Dark.gameObject:SetActiveEx(true)
|
||
self:PlayAnimation("AnimStartEnable")
|
||
self:CloseSelectView()
|
||
end
|
||
end |