local LaterEnter_Controller = {} local private = {} local EventSystem = require('Event/EventSystem') local HAS_AUTO_OPEN_LATERENTER_MAIN_UI = "HAS_AUTO_OPEN_LATERENTER_MAIN_UI" private.laterEnterData = {} --k晚进服几天, v-可领几天奖励 private.maxLaterEnterDay = 0 --晚进服最大天数 function LaterEnter_Controller.OnStartup() for k,v in DataSheetManager.LaterEnterData:GetEnumerator() do if not private.laterEnterData[v.ID] then private.laterEnterData[v.ID] = 1 else private.laterEnterData[v.ID] = private.laterEnterData[v.ID] + 1 end private.maxLaterEnterDay = v.ID end end function LaterEnter_Controller.GetMaxLaterEnterDay() return private.maxLaterEnterDay end function LaterEnter_Controller.TryAutoOpenMainUI() if not MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.LaterEnter) then return end if not PersistentData.PlayerData:Get(HAS_AUTO_OPEN_LATERENTER_MAIN_UI, false) then UIManager.OpenView(Const_UI_Lua.UIEnum.UILaterEnterMain) PersistentData.PlayerData:Set(HAS_AUTO_OPEN_LATERENTER_MAIN_UI, true, true) end end function LaterEnter_Controller.IsCanShowEntrance() if not MDL.LaterEnter.IsLaterEnterOpen() then return false end --有未领奖的 if MDL.LaterEnter.IsHasNotGetReward() then return true end --最后一次领奖时间是当天 if not UTL.Time.IsTimestampCrossDay(MDL.LaterEnter.GetLastGetRewardTime()) then return true end return false end function LaterEnter_Controller.GetDefaultSelectDayTab() local days = LaterEnter_Controller.GetRewardDays() for i = 1, days do if MDL.LaterEnter.GetRewardState(i) == MDL.LaterEnter.RewardState.Claimable then return i end end local curDay = MDL.LaterEnter.GetCurActivityOpenDay() if curDay >= days then return days end return curDay + 1 end function LaterEnter_Controller.GetRewardDays() local day = MDL.LaterEnter.GetLaterEnterDay() return private.laterEnterData[day] or 0 end return LaterEnter_Controller