Initial version - 1.2.0.60

EN: 1.2.0.60
CN: 1.2.0.61
JP: 1.2.0.63
KR: 1.2.0.67
This commit is contained in:
SL1900
2025-12-03 01:00:00 +09:00
commit 5e0d58cfad
3595 changed files with 9373562 additions and 0 deletions
@@ -0,0 +1,327 @@
local VampireLevelSelect_questCtrl = class("VampireLevelSelect_questCtrl", BaseCtrl)
VampireLevelSelect_questCtrl._mapNodeConfig = {
rtWindow = {
sComponentName = "CanvasGroup"
},
rtWeekly = {},
rtPass = {},
rtPassHard = {},
lsvWeekly = {
sComponentName = "LoopScrollView"
},
lsvPass = {
sComponentName = "LoopScrollView"
},
listPassHard = {
sComponentName = "LoopScrollView"
},
TMPScoreQuest = {sComponentName = "TMP_Text"},
TMPTitleQuest = {sComponentName = "TMP_Text"},
btnClose = {sComponentName = "UIButton", callback = "ClosePanel"},
aniWindow = {sNodeName = "rtWindow", sComponentName = "Animator"},
btnReceiveWeekly = {
sComponentName = "UIButton",
callback = "OnBtnClick_ReceiveWeekly"
},
btnReceivePass = {
sComponentName = "UIButton",
callback = "OnBtnClick_ReceivePass"
},
btnReceivePassHard = {
sComponentName = "UIButton",
callback = "OnBtnClick_ReceivePassHard"
},
snapshot = {},
snapshotBtn = {
sNodeName = "snapshot",
sComponentName = "Button",
callback = "ClosePanel"
},
TMPReceiveTitle = {
nCount = 3,
sComponentName = "TMP_Text",
sLanguageId = "Quest_Fast_Receive_Btn_Text"
},
TMPScoreTitle = {
sComponentName = "TMP_Text",
sLanguageId = "VampireWeekScoreTitle"
},
TMPTogQuest = {sComponentName = "TMP_Text", nCount = 3},
TMPTogOpenQuest = {sComponentName = "TMP_Text", nCount = 3},
TMPRemainTimeQuest = {sComponentName = "TMP_Text"},
imgTogLockQuest = {nCount = 3},
imgTogOpenQuest = {nCount = 3},
btnTogBtnQuest = {
sComponentName = "UIButton",
nCount = 3,
callback = "OnBtnClick_Tog"
},
imgTimeBgQuest = {},
goRedDot1 = {},
goRedDot2 = {},
goRedDot3 = {}
}
VampireLevelSelect_questCtrl._mapEventConfig = {}
VampireLevelSelect_questCtrl._mapRedDotConfig = {
[RedDotDefine.VampireQuest_Normal] = {sNodeName = "goRedDot1"},
[RedDotDefine.VampireQuest_Hard] = {sNodeName = "goRedDot2"},
[RedDotDefine.VampireQuest_Season] = {sNodeName = "goRedDot3"}
}
function VampireLevelSelect_questCtrl:Awake()
self.tbCurQuest = {}
self.tbCurQuestSeason = {}
self.tbCurQuestHard = {}
self._mapGridCtrl = {}
self.tbLockTog = {}
end
function VampireLevelSelect_questCtrl:FadeIn()
end
function VampireLevelSelect_questCtrl:FadeOut()
end
function VampireLevelSelect_questCtrl:OnEnable()
NovaAPI.SetTMPText(self._mapNode.TMPTogQuest[1], ConfigTable.GetUIText("Vampire_Hard1"))
NovaAPI.SetTMPText(self._mapNode.TMPTogQuest[2], ConfigTable.GetUIText("Vampire_Hard2"))
NovaAPI.SetTMPText(self._mapNode.TMPTogQuest[3], ConfigTable.GetUIText("Vampire_Hard3"))
NovaAPI.SetTMPText(self._mapNode.TMPTogOpenQuest[1], ConfigTable.GetUIText("Vampire_Hard1"))
NovaAPI.SetTMPText(self._mapNode.TMPTogOpenQuest[2], ConfigTable.GetUIText("Vampire_Hard2"))
NovaAPI.SetTMPText(self._mapNode.TMPTogOpenQuest[3], ConfigTable.GetUIText("Vampire_Hard3"))
end
function VampireLevelSelect_questCtrl:OnDisable()
end
function VampireLevelSelect_questCtrl:OnDestroy()
end
function VampireLevelSelect_questCtrl:OnRelease()
end
function VampireLevelSelect_questCtrl:OpenPanel(nType, nLevelId, bAnim)
local sKey = nType == 1 and "VampireQuestTitle_Season" or "VampireQuestTitle_Pass"
NovaAPI.SetTMPText(self._mapNode.TMPTitleQuest, ConfigTable.GetUIText(sKey))
self.tbScore, self.tbPass = PlayerData.Quest:GetVampireQuestData()
self.nType = nType
self.nLevelId = nLevelId
self.gameObject:SetActive(true)
self._mapNode.rtWindow.gameObject:SetActive(false)
self.nScore = PlayerData.VampireSurvivor:GetCurScore()
self.tbCurQuestSeason = {}
self.tbCurQuest = {}
self.tbCurQuestHard = {}
self.nGroupIdSeason = 0
local nCurSeasonId = PlayerData.VampireSurvivor:GetCurSeason()
if nCurSeasonId ~= nil then
local mapSeasonData = ConfigTable.GetData("VampireRankSeason", nCurSeasonId)
if mapSeasonData ~= nil then
self.nGroupIdSeason = mapSeasonData.QuestGroup
end
end
for _, mapQuest in ipairs(self.tbScore) do
local mapQuestCfgData = ConfigTable.GetData("VampireSurvivorQuest", mapQuest.nTid)
if mapQuestCfgData ~= nil then
table.insert(self.tbCurQuestSeason, mapQuest)
end
end
self.tbCurQuest = {}
self.nGroupId = 0
if nLevelId ~= 0 and nLevelId ~= nil then
local mapLevelCfgData = ConfigTable.GetData("VampireSurvivor", nLevelId)
if mapLevelCfgData ~= nil then
self.nGroupId = mapLevelCfgData.FirstQuestGroupId
end
end
for _, mapQuest in ipairs(self.tbPass) do
local mapQuestCfgData = ConfigTable.GetData("VampireSurvivorQuest", mapQuest.nTid)
if mapQuestCfgData ~= nil then
if mapQuestCfgData.Type == GameEnum.vampireSurvivorType.Normal then
table.insert(self.tbCurQuest, mapQuest)
elseif mapQuestCfgData.Type == GameEnum.vampireSurvivorType.Hard then
table.insert(self.tbCurQuestHard, mapQuest)
end
end
end
local statusOrder = {
[0] = 1,
[1] = 2,
[2] = 0
}
local sort = function(a, b)
local mapQuestACfg = ConfigTable.GetData("VampireSurvivorQuest", a.nTid)
local mapQuestBCfg = ConfigTable.GetData("VampireSurvivorQuest", b.nTid)
if a.nStatus ~= b.nStatus then
return statusOrder[a.nStatus] > statusOrder[b.nStatus]
elseif mapQuestACfg.GroupId ~= mapQuestBCfg.GroupId and (mapQuestACfg.GroupId == self.nGroupId or mapQuestBCfg.GroupId == self.nGroupId) then
return mapQuestBCfg.GroupId ~= self.nGroupId
else
return a.nTid < b.nTid
end
end
table.sort(self.tbCurQuestSeason, sort)
table.sort(self.tbCurQuest, sort)
table.sort(self.tbCurQuestHard, sort)
self._mapNode.lsvWeekly:Init(#self.tbCurQuestSeason, self, self.OnGridRefreshSeason)
self._mapNode.lsvPass:Init(#self.tbCurQuest, self, self.OnGridRefreshNormal)
self._mapNode.listPassHard:Init(#self.tbCurQuestHard, self, self.OnGridRefreshHard)
NovaAPI.SetTMPText(self._mapNode.TMPScoreQuest, self.nScore)
self.tbLockTog = PlayerData.VampireSurvivor:GetHardUnlock()
self._mapNode.imgTogLockQuest[1]:SetActive(not self.tbLockTog[1])
self._mapNode.imgTogLockQuest[2]:SetActive(not self.tbLockTog[2])
self._mapNode.imgTogLockQuest[3]:SetActive(not self.tbLockTog[3])
self._mapNode.imgTimeBgQuest:SetActive(self.tbLockTog[3])
if not self.tbLockTog[3] then
NovaAPI.SetTMPText(self._mapNode.TMPRemainTimeQuest, PlayerData.VampireSurvivor:GetRefreshTiem())
end
if nLevelId ~= 0 and nLevelId ~= nil then
local mapLevelCfgData = ConfigTable.GetData("VampireSurvivor", nLevelId)
if mapLevelCfgData ~= nil then
if mapLevelCfgData.Type == GameEnum.vampireSurvivorType.Normal then
self:OnBtnClick_Tog(nil, 1)
elseif mapLevelCfgData.Type == GameEnum.vampireSurvivorType.Hard then
self:OnBtnClick_Tog(nil, 2)
else
self:OnBtnClick_Tog(nil, 3)
end
end
elseif self.nType == 1 then
self:OnBtnClick_Tog(nil, 1)
elseif self.nType == 2 then
self:OnBtnClick_Tog(nil, 2)
elseif self.nType == 3 then
self:OnBtnClick_Tog(nil, 3)
end
local wait = function()
NovaAPI.UIEffectSnapShotCapture(self._mapNode.snapshot)
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
self._mapNode.rtWindow.gameObject:SetActive(true)
if bAnim ~= false then
self._mapNode.aniWindow:Play("t_window_04_t_in")
end
end
cs_coroutine.start(wait)
end
function VampireLevelSelect_questCtrl:ClosePanel()
self.gameObject:SetActive(false)
self:UnbindAllGrids()
self.tbCurQuestSeason = {}
self.tbCurQuest = {}
self.tbCurQuestHard = {}
end
function VampireLevelSelect_questCtrl:OnGridRefreshSeason(goGrid, nIdx)
local nIdx = nIdx + 1
if self._mapGridCtrl[goGrid] == nil then
local gridCtrl = self:BindCtrlByNode(goGrid, "Game.UI.VampireLevelSelect.VampireLevelSelect_questGridCtrl")
self._mapGridCtrl[goGrid] = gridCtrl
end
local mapQuestData
mapQuestData = self.tbCurQuestSeason[nIdx]
self._mapGridCtrl[goGrid]:Refresh(mapQuestData, -1)
end
function VampireLevelSelect_questCtrl:OnGridRefreshNormal(goGrid, nIdx)
local nIdx = nIdx + 1
if self._mapGridCtrl[goGrid] == nil then
local gridCtrl = self:BindCtrlByNode(goGrid, "Game.UI.VampireLevelSelect.VampireLevelSelect_questGridCtrl")
self._mapGridCtrl[goGrid] = gridCtrl
end
local mapQuestData
mapQuestData = self.tbCurQuest[nIdx]
self._mapGridCtrl[goGrid]:Refresh(mapQuestData, self.nGroupId)
end
function VampireLevelSelect_questCtrl:OnGridRefreshHard(goGrid, nIdx)
local nIdx = nIdx + 1
if self._mapGridCtrl[goGrid] == nil then
local gridCtrl = self:BindCtrlByNode(goGrid, "Game.UI.VampireLevelSelect.VampireLevelSelect_questGridCtrl")
self._mapGridCtrl[goGrid] = gridCtrl
end
local mapQuestData
mapQuestData = self.tbCurQuestHard[nIdx]
self._mapGridCtrl[goGrid]:Refresh(mapQuestData, self.nGroupId)
end
function VampireLevelSelect_questCtrl:UnbindAllGrids()
for go, ctrl in pairs(self._mapGridCtrl) do
self:UnbindCtrlByNode(ctrl)
end
self._mapGridCtrl = {}
end
function VampireLevelSelect_questCtrl:OnBtnClick_ReceiveWeekly()
local tbQuestList = {}
for _, mapData in ipairs(self.tbCurQuestSeason) do
if mapData.nStatus == 1 then
table.insert(tbQuestList, mapData.nTid)
end
end
if #tbQuestList == 0 then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("InfinityTower_Reward_Tips") or "")
return
end
local callback = function(changeInfo)
local RewardCallback = function()
self.tbScore, self.tbPass = PlayerData.Quest:GetVampireQuestData()
self:OpenPanel(3, self.nLevelId, false)
end
UTILS.OpenReceiveByChangeInfo(changeInfo, RewardCallback)
end
PlayerData.Quest:ReceiveVampireQuest(10, tbQuestList, callback)
end
function VampireLevelSelect_questCtrl:OnBtnClick_ReceivePass()
local tbQuestList = {}
for _, mapData in ipairs(self.tbCurQuest) do
if mapData.nStatus == 1 then
table.insert(tbQuestList, mapData.nTid)
end
end
if #tbQuestList == 0 then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("InfinityTower_Reward_Tips") or "")
return
end
local callback = function(changeInfo)
local RewardCallback = function()
self.tbScore, self.tbPass = PlayerData.Quest:GetVampireQuestData()
self:OpenPanel(1, self.nLevelId, false)
end
UTILS.OpenReceiveByChangeInfo(changeInfo, RewardCallback)
end
PlayerData.Quest:ReceiveVampireQuest(8, tbQuestList, callback)
end
function VampireLevelSelect_questCtrl:OnBtnClick_ReceivePassHard()
local tbQuestList = {}
for _, mapData in ipairs(self.tbCurQuestHard) do
if mapData.nStatus == 1 then
table.insert(tbQuestList, mapData.nTid)
end
end
if #tbQuestList == 0 then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("InfinityTower_Reward_Tips") or "")
return
end
local callback = function(changeInfo)
local RewardCallback = function()
self.tbScore, self.tbPass = PlayerData.Quest:GetVampireQuestData()
self:OpenPanel(2, self.nLevelId, false)
end
UTILS.OpenReceiveByChangeInfo(changeInfo, RewardCallback)
end
PlayerData.Quest:ReceiveVampireQuest(9, tbQuestList, callback)
end
function VampireLevelSelect_questCtrl:OnBtnClick_Tog(_, nIdx)
if not self.tbLockTog[nIdx] then
local sTip = ConfigTable.GetUIText("Vampire_Unlock")
if nIdx == 2 then
sTip = ConfigTable.GetUIText("Vampire_UnlockTipNormal")
elseif nIdx == 3 then
local nCurSeasonId = PlayerData.VampireSurvivor:GetCurSeason()
if nCurSeasonId == nil or nCurSeasonId == 0 then
sTip = ConfigTable.GetUIText("Vampire_NotOpenHint")
else
sTip = ConfigTable.GetUIText("Vampire_UnlockTipHard")
end
end
EventManager.Hit(EventId.OpenMessageBox, sTip)
return
end
self._mapNode.rtWeekly:SetActive(nIdx == 3)
self._mapNode.rtPassHard:SetActive(nIdx == 2)
self._mapNode.rtPass:SetActive(nIdx == 1)
self._mapNode.imgTogOpenQuest[1].gameObject:SetActive(nIdx == 1)
self._mapNode.imgTogOpenQuest[2].gameObject:SetActive(nIdx == 2)
self._mapNode.imgTogOpenQuest[3].gameObject:SetActive(nIdx == 3)
self._mapNode.btnReceivePassHard.gameObject:SetActive(nIdx == 2)
self._mapNode.btnReceivePass.gameObject:SetActive(nIdx == 1)
self._mapNode.btnReceiveWeekly.gameObject:SetActive(nIdx == 3)
end
return VampireLevelSelect_questCtrl