129 lines
4.8 KiB
Lua
129 lines
4.8 KiB
Lua
|
local XUiDormTask = XLuaUiManager.Register(XLuaUi, "UiDormTask")
|
||
|
local TextManager = CS.XTextManager
|
||
|
local PANEL_INDEX
|
||
|
|
||
|
function XUiDormTask:OnAwake()
|
||
|
PANEL_INDEX = XTaskConfig.PANELINDEX
|
||
|
self:InitBtnSound()
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:OnStart(toggleType)
|
||
|
local lastSelectTab = XDataCenter.TaskManager.GetNewPlayerHint(XDataCenter.TaskManager.DormTaskLastSelectTab, PANEL_INDEX.Story)
|
||
|
self.CurToggleType = toggleType or lastSelectTab
|
||
|
self:Init()
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:OnEnable()
|
||
|
self:CheckTogLockStatus()
|
||
|
self.TabPanelGroup:SelectIndex(self.CurToggleType)
|
||
|
XEventManager.AddEventListener(XEventId.EVENT_TASK_SYNC, self.OnTaskChangeSync, self)
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:Init()
|
||
|
local itemId = XDataCenter.ItemManager.ItemId
|
||
|
self.AssetPanel = XUiPanelAsset.New(self, self.PanelAsset, itemId.FreeGem, itemId.ActionPoint, itemId.Coin)
|
||
|
self.BtnBack.CallBack = function() self:Close() end
|
||
|
self.BtnMainUi.CallBack = function() XLuaUiManager.RunMain() end
|
||
|
|
||
|
self.BtnMoneyReward.gameObject:SetActiveEx(false)
|
||
|
|
||
|
self.TogStory:SetNameByGroup(1, TextManager.GetText("DormTaskNText"))
|
||
|
self.TogDaily:SetNameByGroup(1, TextManager.GetText("DormTaskDText"))
|
||
|
|
||
|
self.TaskStoryModule = XUiPanelDormTaskStory.New(self.PanelTaskStory, self)
|
||
|
self.TaskDailyModule = XUiPanelDormTaskDaily.New(self.PanelTaskDaily, self)
|
||
|
|
||
|
self.TabList = {}
|
||
|
table.insert(self.TabList, self.TogStory)
|
||
|
table.insert(self.TabList, self.TogDaily)
|
||
|
self.TabPanelGroup:Init(self.TabList, function(index) self:OnTaskPanelSelect(index) end)
|
||
|
self:CheckTogLockStatus()
|
||
|
local lastSelectTab = XDataCenter.TaskManager.GetNewPlayerHint(XDataCenter.TaskManager.DormTaskLastSelectTab, PANEL_INDEX.Story)
|
||
|
self.CurToggleType = self.CurToggleType or lastSelectTab
|
||
|
-- 红点
|
||
|
self:AddRedPointEvent()
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:CheckTogLockStatus()
|
||
|
|
||
|
local uiButtonState = CS.UiButtonState
|
||
|
local functionName = XFunctionManager.FunctionName
|
||
|
local dailyBtnStatus = XFunctionManager.JudgeCanOpen(functionName.TaskDay) and uiButtonState.Normal or uiButtonState.Disable
|
||
|
self.TogDaily:SetButtonState(dailyBtnStatus)
|
||
|
|
||
|
local activityBtnStatus = XFunctionManager.JudgeCanOpen(functionName.TaskActivity) and uiButtonState.Normal or uiButtonState.Disable
|
||
|
self.TogActivity:SetButtonState(activityBtnStatus)
|
||
|
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:OnTaskChangeSync()
|
||
|
if self.CurToggleType == PANEL_INDEX.Story then
|
||
|
self.TaskStoryModule:Refresh()
|
||
|
elseif self.CurToggleType == PANEL_INDEX.Daily then
|
||
|
self.TaskDailyModule:Refresh()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:OnDisable()
|
||
|
XEventManager.RemoveEventListener(XEventId.EVENT_TASK_SYNC, self.OnTaskChangeSync, self)
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:OnDestroy()
|
||
|
XDataCenter.TaskManager.UpdateViewCallback = nil
|
||
|
self.TaskDailyModule:StopSchedule()
|
||
|
end
|
||
|
|
||
|
--添加点事件
|
||
|
function XUiDormTask:AddRedPointEvent()
|
||
|
XRedPointManager.AddRedPointEvent(self.ImgStoryNewTag, self.RefreshStoryTabRedDot, self, { XRedPointConditions.Types.CONDITION_DORM_TASK }, XDataCenter.TaskManager.TaskType.DormNormal)
|
||
|
self.DailyPointId = XRedPointManager.AddRedPointEvent(self.ImgDailyNewTag, self.RefreshDailyTabRedDot, self, { XRedPointConditions.Types.CONDITION_DORM_TASK }, XDataCenter.TaskManager.TaskType.DormDaily)
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:CheckDailyTask()
|
||
|
if self.DailyPointId then
|
||
|
XRedPointManager.Check(self.DailyPointId, XDataCenter.TaskManager.TaskType.DormDaily)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
--剧情标签红点
|
||
|
function XUiDormTask:RefreshStoryTabRedDot(count)
|
||
|
self.ImgStoryNewTag.gameObject:SetActive(count >= 0)
|
||
|
end
|
||
|
|
||
|
--日常标签红点
|
||
|
function XUiDormTask:RefreshDailyTabRedDot(count)
|
||
|
self.ImgDailyNewTag.gameObject:SetActive(count >= 0)
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:GetAutoKey(uiNode, eventName)
|
||
|
if not uiNode then
|
||
|
return
|
||
|
end
|
||
|
return eventName .. uiNode:GetHashCode()
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:InitBtnSound()
|
||
|
self.SpecialSoundMap = {}
|
||
|
self.SpecialSoundMap[self:GetAutoKey(self.BtnBack, "onClick")] = XSoundManager.UiBasicsMusic.Return
|
||
|
self.SpecialSoundMap[self:GetAutoKey(self.BtnMainUi, "onClick")] = XSoundManager.UiBasicsMusic.Return
|
||
|
end
|
||
|
|
||
|
function XUiDormTask:OnTaskPanelSelect(index)
|
||
|
self.CurToggleType = index
|
||
|
if index == PANEL_INDEX.Story then
|
||
|
self.TaskDailyModule:HidePanel()
|
||
|
self.TaskStoryModule:ShowPanel()
|
||
|
XDataCenter.TaskManager.SaveNewPlayerHint(XDataCenter.TaskManager.DormTaskLastSelectTab, index)
|
||
|
self:PlayAnimation("StoryQieHuan")
|
||
|
|
||
|
elseif index == PANEL_INDEX.Daily then
|
||
|
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.TaskDay) then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
self.TaskStoryModule:HidePanel()
|
||
|
self.TaskDailyModule:ShowPanel()
|
||
|
XDataCenter.TaskManager.SaveNewPlayerHint(XDataCenter.TaskManager.DormTaskLastSelectTab, index)
|
||
|
self:PlayAnimation("DailyQieHuan")
|
||
|
end
|
||
|
end
|