PGRData/Script/matrix/xui/xuiplanet/XUiPlanetMain.lua

137 lines
4.9 KiB
Lua
Raw Normal View History

2024-09-01 20:49:41 +00:00
local XUiPlanetMain = XLuaUiManager.Register(XLuaUi, "UiPlanetMain")
function XUiPlanetMain:OnAwake()
self:AddBtnClickListener()
end
function XUiPlanetMain:OnStart()
XDataCenter.PlanetManager.CloseLoading()
if not XDataCenter.PlanetManager.CheckMainIsExit() then
XDataCenter.PlanetManager.ResumeMainScene(function()
XDataCenter.PlanetManager.GetPlanetMainScene():UpdateCameraInMain()
end)
end
self.ViewModel = XDataCenter.PlanetManager.GetViewModel()
XDataCenter.PlanetManager.SceneOpen(XPlanetConfigs.SceneOpenReason.UiPlanetMain)
self:BindViewModelPropertiesToObj(XDataCenter.PlanetManager.GetStageData(), function()
self:RefreshGameBtn()
end, "_StageId")
end
function XUiPlanetMain:OnEnable()
self:PlayAnimationWithMask("Enable", function()
self:PlayAnimation("Loop",nil,nil,CS.UnityEngine.Playables.DirectorWrapMode.Loop)
end)
self.PlanetMainScene = XDataCenter.PlanetManager.GetPlanetMainScene()
self.PlanetMainScene:UpdateCameraInMain()
self.PlanetMainScene:ResetTeam()
self.TimeRefreshTimer = XScheduleManager.ScheduleForever(handler(self, self.RefreshTime), XScheduleManager.SECOND, 0)
self:RefreshTime()
self:RefreshGameBtn()
self:RefreshTalentBtn()
self:RefreshBtnRedpoint()
end
function XUiPlanetMain:OnDisable()
self:StopRefreshTime()
end
function XUiPlanetMain:OnRelease()
self.Super.OnRelease(self)
XDataCenter.PlanetManager.OnRelease()
end
function XUiPlanetMain:OnDestroy()
XDataCenter.PlanetManager.SceneRelease(XPlanetConfigs.SceneOpenReason.UiPlanetMain)
end
--region UI刷新
function XUiPlanetMain:RefreshGameBtn()
if not self.ViewModel then
self.BtnEnter1.gameObject:SetActiveEx(true)
self.BtnEnter2.gameObject:SetActiveEx(false)
return
end
self.BtnEnter1.gameObject:SetActiveEx(not XDataCenter.PlanetManager.IsInGame())
self.BtnEnter2.gameObject:SetActiveEx(XDataCenter.PlanetManager.IsInGame())
end
function XUiPlanetMain:RefreshTalentBtn()
self.BtnHome:SetDisable(not self.ViewModel:CheckStageIsPass(XPlanetConfigs.GetTalentUnLockStage()))
end
function XUiPlanetMain:RefreshBtnRedpoint()
-- 必须要先请求商店信息 才能检测红点。请求前先判断能否获取信息
XDataCenter.PlanetManager.RefreshShopInfo(function ()
self.BtnShop:ShowReddot(XDataCenter.PlanetManager.CheckShopRedPoint())
end, true)
self.BtnTask:ShowReddot(XDataCenter.PlanetManager.CheckTaskRedPoint())
self.BtnHome:ShowReddot(XDataCenter.PlanetManager.CheckTalentRedPoint())
self.BtnEnter1:ShowReddot(XDataCenter.PlanetManager.CheckChapterOpenRedPoint())
self.BtnEnter2:ShowReddot(XDataCenter.PlanetManager.CheckChapterOpenRedPoint())
end
function XUiPlanetMain:RefreshTime()
local endTime = self.ViewModel:GetEndTime()
local nowTime = XTime.GetServerNowTimestamp()
self.TxtTime.text = XUiHelper.GetTime(endTime - nowTime, XUiHelper.TimeFormatType.PLANET_RUNNING)
end
function XUiPlanetMain:StopRefreshTime()
if self.TimeRefreshTimer then
XScheduleManager.UnSchedule(self.TimeRefreshTimer)
end
self.TimeRefreshTimer = nil
end
--endregion
--region 按钮绑定
function XUiPlanetMain:AddBtnClickListener()
XUiHelper.RegisterClickEvent(self, self.BtnTask, self.OnBtnTaskClick)
XUiHelper.RegisterClickEvent(self, self.BtnShop, self.OnBtnShopClick)
XUiHelper.RegisterClickEvent(self, self.BtnHome, self.OnBtnHomeClick)
XUiHelper.RegisterClickEvent(self, self.BtnEnter1, self.OnBtnStartGameClick)
XUiHelper.RegisterClickEvent(self, self.BtnEnter2, self.OnBtnContinueGameClick)
XUiHelper.RegisterClickEvent(self, self.BtnBack, self.Close)
XUiHelper.RegisterClickEvent(self, self.BtnMainUi, function() XLuaUiManager.RunMain() end)
self:BindHelpBtn(self.BtnHelp, XPlanetConfigs.GetHelpKey())
end
function XUiPlanetMain:OnBtnShopClick()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.ShopCommon) then
return
end
XDataCenter.PlanetManager.RefreshShopInfo(function ()
XLuaUiManager.Open("UiPlanetPropertyShop")
end)
end
function XUiPlanetMain:OnBtnTaskClick()
XLuaUiManager.Open("UiPlanetPropertyTask")
end
function XUiPlanetMain:OnBtnHomeClick()
if self.ViewModel:CheckStageIsPass(XPlanetConfigs.GetTalentUnLockStage()) then
XLuaUiManager.Open("UiPlanetHomeland")
else
local stageName = XPlanetStageConfigs.GetStageFullName(XPlanetConfigs.GetTalentUnLockStage())
XUiManager.TipError(XUiHelper.GetText("PlanetRunningTalentCardLock", stageName))
end
end
function XUiPlanetMain:OnBtnStartGameClick()
XDataCenter.PlanetManager.ClearChapterOpenRedPoint()
XLuaUiManager.Open("UiPlanetChapter")
end
function XUiPlanetMain:OnBtnContinueGameClick()
XDataCenter.PlanetManager.ClearChapterOpenRedPoint()
XDataCenter.PlanetManager.ContinueStage("UiPlanetBattleMain")
end
--endregion