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