Files
StellaSora_DataLua/lua/game/ui/trekkerversus_600002/trekkerversusquestctrl.lua
T
SL1900 8766830959 Update - 1.8.0.95
EN: 1.8.0.95
CN: 1.8.0.96
JP: 1.8.0.97
KR: 1.8.0.100
2026-03-17 20:00:00 +09:00

211 lines
6.7 KiB
Lua

local TrekkerVersusQuestCtrl = class("TrekkerVersusQuestCtrl", BaseCtrl)
TrekkerVersusQuestCtrl._mapNodeConfig = {
snapshot = {},
snapshotBtn = {
sNodeName = "snapshot",
sComponentName = "Button",
callback = "ClosePanel"
},
btn_Close = {sComponentName = "Button", callback = "ClosePanel"},
btnClose_quest = {sComponentName = "UIButton", callback = "ClosePanel"},
aniWindow = {sNodeName = "rtWindow", sComponentName = "Animator"},
TMPReceiveAll = {
sComponentName = "TMP_Text",
sLanguageId = "Quest_Btn_ReceiveAll"
},
rtWindow = {},
btnHeatQuestReceiveAll = {
sComponentName = "UIButton",
callback = "OnBtnClick_Receive"
},
txtWindowTitle = {
sComponentName = "TMP_Text",
sLanguageId = "TD_QusetTitle"
},
btnRewardTab = {
nCount = 3,
sComponentName = "UIButton",
callback = "OnBtnClick_RewardTab"
},
txtTabHeat = {
nCount = 2,
sComponentName = "TMP_Text",
sLanguageId = "TD_HeatQuestTab"
},
txtTabDuel = {
nCount = 2,
sComponentName = "TMP_Text",
sLanguageId = "TD_DuelQuestTab"
},
txtTabGift = {
nCount = 2,
sComponentName = "TMP_Text",
sLanguageId = "TD_GiftQuestTab"
},
rtHeatQuest = {},
lsvHeatQuest = {
sComponentName = "LoopScrollView"
},
txtCurHeatTitle = {
sComponentName = "TMP_Text",
sLanguageId = "TD_HeatQuestTitle"
},
txtCurHeatNum = {sComponentName = "TMP_Text"},
rtDuelHistory = {},
txtDuelHistoryTitle = {
sComponentName = "TMP_Text",
sLanguageId = "TD_DuelHistoryTitle"
},
lsvDuelHistory = {
sComponentName = "LoopScrollView"
},
goGridMain = {
sCtrlName = "Game.UI.TrekkerVersus_600002.TrekkerVersusDuelHistoryGridCtrl"
},
rtGiftQuest = {},
lsvGiftQuest = {
sComponentName = "LoopScrollView"
}
}
TrekkerVersusQuestCtrl._mapEventConfig = {
TrekkerVersusAffixJump = "OnEvent_TrekkerVersusAffixJump"
}
TrekkerVersusQuestCtrl._mapRedDotConfig = {}
function TrekkerVersusQuestCtrl:RefreshHeatQuestTab()
self._mapNode.lsvHeatQuest:SetAnim(0.05)
self._mapNode.lsvHeatQuest:Init(#self._tbAllQuestData, self, self.OnGridRefresh, self.OnBtnClickGrid)
NovaAPI.SetText(self._mapNode.txtCurHeatTitle, self._mapActData:GetCurHeatValue().nSelfHotValue)
end
function TrekkerVersusQuestCtrl:RefreshDuelHistoryTab()
self._mapNode.lsvDuelHistory:SetAnim(0.05)
local mapCurDuelData = self._mapActData:GetCurHeatValue()
local mapInfo = {
SelfHotValue = mapCurDuelData.nSelfHotValue,
RivalHotValue = mapCurDuelData.nRivalHotValue
}
self._mapNode.goGridMain:Refresh(mapInfo, self._mapActData:GetCurDayNum(), true)
self._mapNode.lsvDuelHistory:Init(#self.tbDuelHistory, self, self.OnDuelHistoryGridRefresh)
end
function TrekkerVersusQuestCtrl:OnDuelHistoryGridRefresh(goGrid, nIdx)
local nIndex = nIdx + 1
if self._mapGridCtrl[goGrid] == nil then
local gridCtrl = self:BindCtrlByNode(goGrid, "Game.UI.TrekkerVersus_600002.TrekkerVersusDuelHistoryGridCtrl")
self._mapGridCtrl[goGrid] = gridCtrl
end
local mapDuelHistoryData = self.tbDuelHistory[nIndex]
self._mapGridCtrl[goGrid]:Refresh(mapDuelHistoryData, nIndex, false)
end
function TrekkerVersusQuestCtrl:RefreshGiftQuestTab()
self._mapNode.lsvGiftQuest:SetAnim(0.05)
self._mapNode.lsvGiftQuest:Init(#self._tbAllQuestData, self, self.OnGiftQuestGridRefresh, self.OnBtnClickGrid)
end
function TrekkerVersusQuestCtrl:OnGiftQuestGridRefresh(goGrid, nIdx)
local nIndex = nIdx + 1
if self._mapGridCtrl[goGrid] == nil then
local gridCtrl = self:BindCtrlByNode(goGrid, "Game.UI.TrekkerVersus_600002.TrekkerVersusGiftQuestGridCtrl")
self._mapGridCtrl[goGrid] = gridCtrl
end
local mapGiftQuestData = self._tbAllQuestData[nIndex]
self._mapGridCtrl[goGrid]:Refresh(mapGiftQuestData)
end
function TrekkerVersusQuestCtrl:Awake()
self._mapGridCtrl = {}
end
function TrekkerVersusQuestCtrl:FadeIn()
end
function TrekkerVersusQuestCtrl:FadeOut()
end
function TrekkerVersusQuestCtrl:OnEnable()
self._mapAllQuestCfgData = {}
self._mapNode.rtWindow.gameObject:SetActive(false)
end
function TrekkerVersusQuestCtrl:OnDisable()
end
function TrekkerVersusQuestCtrl:OnDestroy()
end
function TrekkerVersusQuestCtrl:OnRelease()
end
function TrekkerVersusQuestCtrl:ClosePanel()
self._mapNode.aniWindow:Play("t_window_04_t_out")
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
self:AddTimer(1, 0.3, function()
self.gameObject:SetActive(false)
self._mapNode.rtWindow.gameObject:SetActive(false)
self:UnbindAllGrids()
end, true, true, true, nil)
end
function TrekkerVersusQuestCtrl:UnbindAllGrids()
for go, ctrl in pairs(self._mapGridCtrl) do
self:UnbindCtrlByNode(ctrl)
end
self._mapGridCtrl = {}
end
function TrekkerVersusQuestCtrl:OpenPanel(mapActData)
self.gameObject:SetActive(true)
self._mapActData = mapActData
self._tbAllQuestData = self._mapActData:GetAllQuestData()
self.tbDuelHistory = self._mapActData:GetDuelHistory()
local wait = function()
NovaAPI.UIEffectSnapShotCapture(self._mapNode.snapshot)
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
self._mapNode.rtWindow.gameObject:SetActive(true)
self._mapNode.aniWindow:Play("t_window_04_t_in")
self:OnBtnClick_RewardTab(nil, 1)
end
cs_coroutine.start(wait)
end
function TrekkerVersusQuestCtrl:OnGridRefresh(goGrid, nIdx)
local nIdx = nIdx + 1
if self._mapGridCtrl[goGrid] == nil then
local gridCtrl = self:BindCtrlByNode(goGrid, "Game.UI.TrekkerVersus.TrekkerVersusQuestGridCtrl")
self._mapGridCtrl[goGrid] = gridCtrl
end
local mapQuestData
mapQuestData = self._tbAllQuestData[nIdx]
self._mapGridCtrl[goGrid]:Refresh(mapQuestData)
end
function TrekkerVersusQuestCtrl:OnBtnClick_RewardTab(btn, index)
if self.nRewardTabIndex == index then
return
end
self.nRewardTabIndex = index
for i = 1, #self._mapNode.btnRewardTab do
local objBtn = self._mapNode.btnRewardTab[i]
local imgOn = objBtn.transform:Find("imgTabOnBg")
local imgOff = objBtn.transform:Find("imgTabOffBg")
imgOn:SetActive(i == index)
imgOff:SetActive(i ~= index)
end
self._mapNode.rtHeatQuest:SetActive(index == 1)
self._mapNode.rtDuelHistory:SetActive(index == 2)
self._mapNode.rtGiftQuest:SetActive(index == 3)
if index == 1 then
self:RefreshHeatQuestTab()
elseif index == 2 then
self:RefreshDuelHistoryTab()
elseif index == 3 then
self:RefreshGiftQuestTab()
end
end
function TrekkerVersusQuestCtrl:OnBtnClickGrid()
self:OnBtnClick_Receive()
end
function TrekkerVersusQuestCtrl:OnBtnClick_Receive()
local refershList = function()
self._tbAllQuestData = self._mapActData:GetAllQuestData()
self:UnbindAllGrids()
self._mapNode.lsvQuest:SetAnim(0.05)
self._mapNode.lsvQuest:Init(#self._tbAllQuestData, self, self.OnGridRefresh, self.OnBtnClickGrid)
end
local callback = function(msgData)
UTILS.OpenReceiveByChangeInfo(msgData.Change, function()
refershList()
end)
end
self._mapActData:ReceiveQuestReward(callback)
end
function TrekkerVersusQuestCtrl:OnEvent_TrekkerVersusAffixJump()
self:ClosePanel()
end
return TrekkerVersusQuestCtrl