Major Update - 2.0.0.143
EN: 2.0.0.143 CN: 2.0.0.142 JP: 2.0.0.145 KR: 2.0.0.150
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
local ReengagementCtrl = class("ReengagementCtrl", BaseCtrl)
|
||||
local TimerManager = require("GameCore.Timer.TimerManager")
|
||||
local nTogCount = 5
|
||||
ReengagementCtrl._mapNodeConfig = {
|
||||
TopBar = {
|
||||
sNodeName = "TopBarPanel",
|
||||
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
|
||||
},
|
||||
svTog = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
@@ -56,21 +61,80 @@ ReengagementCtrl._mapNodeConfig = {
|
||||
sCtrlName = "Game.UI.Activity.Reengagement.ReengagementBDPreviewCtrl"
|
||||
}
|
||||
}
|
||||
ReengagementCtrl._mapEventConfig = {}
|
||||
ReengagementCtrl._mapEventConfig = {
|
||||
[EventId.IsNewDay] = "OnEvent_NewDay"
|
||||
}
|
||||
local mapReddotKey = {
|
||||
[1] = RedDotDefine.Activity_Reengagement_LoginReward,
|
||||
[2] = RedDotDefine.Activity_Reengagement_Task,
|
||||
[4] = RedDotDefine.Activity_Reengagement_WeeklyCard
|
||||
}
|
||||
function ReengagementCtrl:ClearTogCtrl()
|
||||
if self.ctrlTog == nil then
|
||||
self.ctrlTog = {}
|
||||
return
|
||||
end
|
||||
for nInstanceID, objCtrl in pairs(self.ctrlTog) do
|
||||
objCtrl:UnRegisterReddot()
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.ctrlTog[nInstanceID] = nil
|
||||
end
|
||||
end
|
||||
function ReengagementCtrl:InitTog()
|
||||
self._mapNode.svTog:Init(5, self, self.OnGridRefresh, self.OnGridBtnClick)
|
||||
self:ClearTogCtrl()
|
||||
if self.nCurTog == nil or self.nCurTog < 1 or self.nCurTog > nTogCount then
|
||||
self.nCurTog = self:GetDefaultTog()
|
||||
end
|
||||
self._mapNode.svTog:Init(nTogCount, self, self.OnGridRefresh, self.OnGridBtnClick)
|
||||
end
|
||||
function ReengagementCtrl:GetDefaultTog()
|
||||
for nIndex = 1, nTogCount do
|
||||
local sReddotKey = mapReddotKey[nIndex]
|
||||
if sReddotKey ~= nil and RedDotManager.GetValid(sReddotKey, {
|
||||
self.nActId
|
||||
}) then
|
||||
return nIndex
|
||||
end
|
||||
end
|
||||
local mapLoginReward = PlayerData.Reengagement:GetActLoginRewardList()
|
||||
if mapLoginReward == nil or (tonumber(mapLoginReward.Actual) or 0) < 7 then
|
||||
return 1
|
||||
end
|
||||
for nDay = 1, 7 do
|
||||
local tbQuestConfig = PlayerData.Reengagement:GetQuestConfigDataByGroup(100 + nDay)
|
||||
if #tbQuestConfig == 0 then
|
||||
return 2
|
||||
end
|
||||
for _, mapQuestConfig in ipairs(tbQuestConfig) do
|
||||
local mapQuest = PlayerData.Reengagement:GetQuestDataById(mapQuestConfig.Id)
|
||||
if mapQuest == nil or mapQuest.nStatus ~= 1 and mapQuest.nStatus ~= 2 then
|
||||
return 2
|
||||
end
|
||||
end
|
||||
end
|
||||
if 0 < PlayerData.Reengagement:GetDoubleDropCount() then
|
||||
return 3
|
||||
end
|
||||
return 1
|
||||
end
|
||||
function ReengagementCtrl:OnGridRefresh(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local nInstanceID = goGrid:GetInstanceID()
|
||||
if not self.ctrlTog[nInstanceID] then
|
||||
self.ctrlTog[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.TemplateEx.TemplateToggleCtrl")
|
||||
self.ctrlTog[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.Activity.Reengagement.TemplateToggleReengagementCtrl")
|
||||
end
|
||||
local mapCfg = ConfigTable.GetUIText("ReengagementTog_" .. nIndex)
|
||||
if mapCfg then
|
||||
self.ctrlTog[nInstanceID]:SetText(mapCfg)
|
||||
end
|
||||
self.ctrlTog[nInstanceID]:SetDefault(nIndex == self.nCurTog)
|
||||
local sReddotKey = mapReddotKey[nIndex]
|
||||
self.ctrlTog[nInstanceID]:SetReddot(sReddotKey, {
|
||||
self.nActId
|
||||
})
|
||||
if self.nCurTog == nIndex then
|
||||
self.ctrlTog[nInstanceID]:SetTrigger(true)
|
||||
end
|
||||
end
|
||||
function ReengagementCtrl:OnGridBtnClick(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
@@ -78,27 +142,35 @@ function ReengagementCtrl:OnGridBtnClick(goGrid, gridIndex)
|
||||
if nIndex == self.nCurTog then
|
||||
return
|
||||
end
|
||||
self.ctrlTog[nInstanceID]:SetTrigger(true)
|
||||
if self.nCurTog then
|
||||
if self.ctrlTog[nInstanceID] ~= nil then
|
||||
self.ctrlTog[nInstanceID]:SetTrigger(true)
|
||||
end
|
||||
if self.nCurTog ~= nil and self.nCurTog > 0 then
|
||||
local goSelect = self._mapNode.trSvTog:Find("Viewport/Content/" .. self.nCurTog - 1)
|
||||
if goSelect then
|
||||
self.ctrlTog[goSelect.gameObject:GetInstanceID()]:SetTrigger(false)
|
||||
local objCurTog = self.ctrlTog[goSelect.gameObject:GetInstanceID()]
|
||||
if objCurTog ~= nil then
|
||||
objCurTog:SetTrigger(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
self.nCurTog = nIndex
|
||||
self:SwitchTog()
|
||||
self:SwitchTog(self._bInfoReady == true)
|
||||
end
|
||||
function ReengagementCtrl:SwitchTog()
|
||||
self._mapNode.rtSignin:SetActive(self.nCurTog == 1)
|
||||
self._mapNode.rtTask:SetActive(self.nCurTog == 2)
|
||||
self._mapNode.rtDoubleDrop:SetActive(self.nCurTog == 3)
|
||||
self._mapNode.rtShopMall:SetActive(self.nCurTog == 4)
|
||||
self._mapNode.rtBDTrial:SetActive(self.nCurTog == 5)
|
||||
self.ctrlSignin:Refresh(self.nCurTog)
|
||||
self.ctrlTask:Refresh(self.nCurTog)
|
||||
self.ctrlDoubleDrop:Refresh(self.nCurTog)
|
||||
self.ctrlShopMall:Refresh(self.nCurTog)
|
||||
self.ctrlBDTrial:Refresh(self.nCurTog)
|
||||
function ReengagementCtrl:SwitchTog(bRefreshData)
|
||||
self._mapNode.rtSignin.gameObject:SetActive(self.nCurTog == 1)
|
||||
self._mapNode.rtTask.gameObject:SetActive(self.nCurTog == 2)
|
||||
self._mapNode.rtDoubleDrop.gameObject:SetActive(self.nCurTog == 3)
|
||||
self._mapNode.rtShopMall.gameObject:SetActive(self.nCurTog == 4)
|
||||
self._mapNode.rtBDTrial.gameObject:SetActive(self.nCurTog == 5)
|
||||
if bRefreshData ~= true then
|
||||
return
|
||||
end
|
||||
self._mapNode.ctrlSignin:Refresh(self.nCurTog)
|
||||
self._mapNode.ctrlTask:Refresh(self.nCurTog)
|
||||
self._mapNode.ctrlDoubleDrop:Refresh(self.nCurTog)
|
||||
self._mapNode.ctrlShopMall:Refresh(self.nCurTog)
|
||||
self._mapNode.ctrlBDTrial:Refresh(self.nCurTog)
|
||||
end
|
||||
local nMaxEnergyBatteryFillerLength = 252
|
||||
local nMinEnergyBatteryFillerLength = 15
|
||||
@@ -115,23 +187,65 @@ function ReengagementCtrl:RefreshEnergyBattery()
|
||||
self._mapNode.imgEnergyBarFill.sizeDelta = Vector2(nFillerLength, self._mapNode.imgEnergyBarFill.sizeDelta.y)
|
||||
end
|
||||
function ReengagementCtrl:Awake()
|
||||
self.ctrlTog = {}
|
||||
if self._bInfoReady == nil then
|
||||
self._bInfoReady = false
|
||||
end
|
||||
end
|
||||
function ReengagementCtrl:FadeIn()
|
||||
end
|
||||
function ReengagementCtrl:FadeOut()
|
||||
end
|
||||
function ReengagementCtrl:OnEnable()
|
||||
self.nCurTog = 1
|
||||
self:SwitchTog()
|
||||
local nActId = PlayerData.Reengagement:GetActId()
|
||||
local nOpenTime = PlayerData.Reengagement:GetReengagementOpenTime()
|
||||
if self.nActId ~= nActId or self._nActOpenTime ~= nOpenTime then
|
||||
self._bInfoReady = false
|
||||
self.nCurTog = 0
|
||||
self._panel.nSelectGroup = nil
|
||||
end
|
||||
self.nActId = nActId
|
||||
self._nActOpenTime = nOpenTime
|
||||
self.nCurTog = self.nCurTog or 0
|
||||
self._mapNode.svTog.gameObject:SetActive(false)
|
||||
self:SwitchTog(false)
|
||||
self:RefreshEnergyBattery()
|
||||
local init = function()
|
||||
self._bInfoReady = true
|
||||
if self._panel == nil or self._panel._bIsActive ~= true then
|
||||
return
|
||||
end
|
||||
self._mapNode.svTog.gameObject:SetActive(true)
|
||||
self:InitTog()
|
||||
self:SwitchTog(true)
|
||||
end
|
||||
if self._bInfoReady == false then
|
||||
PlayerData.Reengagement:RequestReengagementInfo(init)
|
||||
else
|
||||
init()
|
||||
end
|
||||
end
|
||||
function ReengagementCtrl:OnDisable()
|
||||
self:ClearTogCtrl()
|
||||
end
|
||||
function ReengagementCtrl:OnDestroy()
|
||||
end
|
||||
function ReengagementCtrl:OnRelease()
|
||||
end
|
||||
function ReengagementCtrl:OnClickTrialDetail()
|
||||
self.ReengagementPreviewPanel:OpenPanel()
|
||||
self._mapNode.ReengagementPreviewPanel:OpenPanel()
|
||||
end
|
||||
function ReengagementCtrl:OnEvent_NewDay()
|
||||
if PanelManager.GetCurPanelId() == PanelId.MainView then
|
||||
EventManager.Hit("NewDay_Clear_Guide")
|
||||
local msg = {
|
||||
nType = AllEnum.MessageBox.Alert,
|
||||
sContent = ConfigTable.GetUIText("Alert_NextDay"),
|
||||
callbackConfirm = function()
|
||||
PanelManager.Home()
|
||||
end
|
||||
}
|
||||
EventManager.Hit(EventId.OpenMessageBox, msg)
|
||||
end
|
||||
end
|
||||
return ReengagementCtrl
|
||||
|
||||
Reference in New Issue
Block a user