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,257 @@
local StarTowerQuestCtrl = class("StarTowerQuestCtrl", BaseCtrl)
local totalLength = 641.449
local totalHeight = 37
local JumpUtil = require("Game.Common.Utils.JumpUtil")
local WwiseManger = CS.WwiseAudioManager.Instance
StarTowerQuestCtrl._mapNodeConfig = {
TopBar = {
sNodeName = "TopBarPanel",
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
},
Light = {},
txtNormalEmpty = {
sComponentName = "TMP_Text",
sLanguageId = "STQuest_NormalClear"
},
txtCoreEmpty = {
sComponentName = "TMP_Text",
sLanguageId = "STQuest_CoreClear"
},
btnReceiveAll = {
sComponentName = "UIButton",
callback = "OnBtnClick_ReceiveAll"
},
txtBtnReceiveAll = {
nCount = 2,
sComponentName = "TMP_Text",
sLanguageId = "Quest_ReceiveAll"
},
btnGrowth = {
sComponentName = "UIButton",
callback = "OnBtnClick_Growth"
},
txtBtnGrowth = {
sComponentName = "TMP_Text",
sLanguageId = "STQuest_Btn_GotoGrowth"
},
btnNone = {
sComponentName = "UIButton",
callback = "OnBtnClick_None"
},
svQuest = {
sComponentName = "LoopScrollView"
},
CoreQuest = {},
Cube = {sComponentName = "Animator"},
TMPTitleCore = {sComponentName = "TMP_Text"},
TMPProcessCore = {sComponentName = "TMP_Text"},
rtBarFillCore = {
sComponentName = "RectTransform"
},
btnReceiveCore = {
sComponentName = "UIButton",
callback = "OnBtnClick_Receive"
},
btnJumpCore = {
sComponentName = "UIButton",
callback = "OnBtnClick_JumpTo"
},
txtBtnReceiveCore = {
sComponentName = "TMP_Text",
sLanguageId = "Quest_Receive"
},
txtBtnJumpCore = {
sComponentName = "TMP_Text",
sLanguageId = "Quest_JumpTo"
},
TMPUncompleteCore = {
sComponentName = "TMP_Text",
sLanguageId = "Quest_undone"
},
btnRewardCore = {
nCount = 3,
sComponentName = "UIButton",
callback = "OnBtnClick_Reward"
},
goItemCore = {
nCount = 3,
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl"
}
}
StarTowerQuestCtrl._mapEventConfig = {
StarTowerQuestReceived = "OnEvent_Received",
StarTowerQuestClickGrid = "OnEvent_ClickGrid"
}
function StarTowerQuestCtrl:Refresh()
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
self:UnbindCtrlByNode(objCtrl)
self.tbGridCtrl[nInstanceId] = nil
end
self.tbCore, self.tbNormal = PlayerData.Quest:GetStarTowerQuestData()
local nNormalCount = #self.tbNormal
self._mapNode.svQuest.gameObject:SetActive(0 < nNormalCount)
self._mapNode.txtNormalEmpty.gameObject:SetActive(nNormalCount == 0)
if 0 < nNormalCount then
self._mapNode.svQuest:SetAnim(0.08)
self._mapNode.svQuest:Init(nNormalCount, self, self.OnGridRefresh, nil, self.bPos)
end
local nCoreCount = #self.tbCore
self._mapNode.CoreQuest.gameObject:SetActive(0 < nCoreCount)
self._mapNode.txtCoreEmpty.gameObject:SetActive(nCoreCount == 0)
if 0 < nCoreCount then
local mapQuest = self.tbCore[1]
self:RefreshCore(mapQuest.nTid, mapQuest.nStatus, mapQuest.nCurProgress, mapQuest.nGoal)
self._mapNode.Light.gameObject:SetActive(mapQuest.nStatus == 1)
else
self._mapNode.Light.gameObject:SetActive(false)
end
local bClear = true
for _, v in pairs(self.tbNormal) do
if v.nStatus == 1 then
bClear = false
break
end
end
for _, v in pairs(self.tbCore) do
if v.nStatus == 1 then
bClear = false
break
end
end
self._mapNode.btnReceiveAll.gameObject:SetActive(not bClear)
self._mapNode.btnReceiveAll.interactable = true
self._mapNode.btnNone.gameObject:SetActive(bClear and 0 < nNormalCount + nCoreCount)
if nCoreCount == 0 and not self.bFirstIn then
self._mapNode.Cube:Play("StarTowerQuest_Cube_finishin")
elseif not self.bFirstIn then
self._mapNode.Cube:Play("StarTowerQuest_Cube_in", 0, 1)
end
end
function StarTowerQuestCtrl:OnGridRefresh(goGrid, gridIndex)
local nIndex = gridIndex + 1
local mapQuest = self.tbNormal[nIndex]
local nInstanceID = goGrid:GetInstanceID()
if not self.tbGridCtrl[nInstanceID] then
self.tbGridCtrl[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.StarTowerQuest.StarTowerQuestGridCtrl")
end
self.tbGridCtrl[nInstanceID]:Refresh(mapQuest.nTid, mapQuest.nStatus, mapQuest.nCurProgress, mapQuest.nGoal, gridIndex)
end
function StarTowerQuestCtrl:RefreshCore(nQuestId, nState, nCur, nTotal)
self.nCoreQusetId = nQuestId
local mapQuest = ConfigTable.GetData("StarTowerQuest", nQuestId)
if mapQuest == nil then
printError("QuestData missing" .. nQuestId)
return
end
NovaAPI.SetTMPText(self._mapNode.TMPTitleCore, mapQuest.Title)
if nState ~= 2 then
NovaAPI.SetTMPText(self._mapNode.TMPProcessCore, string.format("%d/%d", nCur, nTotal))
else
NovaAPI.SetTMPText(self._mapNode.TMPProcessCore, ConfigTable.GetUIText("Quest_Complete"))
end
self.mapCoreQuset = mapQuest
self._mapNode.rtBarFillCore.sizeDelta = Vector2(nCur / nTotal * totalLength, totalHeight)
self._mapNode.btnReceiveCore.gameObject:SetActive(nState == 1)
self._mapNode.btnReceiveCore.interactable = true
self._mapNode.btnJumpCore.gameObject:SetActive(nState == 0 and 0 < mapQuest.JumpTo)
self._mapNode.TMPUncompleteCore.gameObject:SetActive(nState == 0 and mapQuest.JumpTo == 0)
for i = 1, 3 do
self._mapNode.btnRewardCore[i].gameObject:SetActive(0 < mapQuest["Reward" .. i])
if 0 < mapQuest["Reward" .. i] then
self._mapNode.goItemCore[i]:SetItem(mapQuest["Reward" .. i], nil, mapQuest["RewardQty" .. i], nil, nil, nil, nil, true)
end
end
end
function StarTowerQuestCtrl:FadeIn()
if #self.tbCore == 0 then
self._mapNode.Cube:Play("StarTowerQuest_Cube_finishin")
else
self._mapNode.Cube:Play("StarTowerQuest_Cube_in")
end
self.bFirstIn = false
end
function StarTowerQuestCtrl:Awake()
self.tbGridCtrl = {}
self.bPos = false
self.bFirstIn = true
end
function StarTowerQuestCtrl:OnEnable()
self:Refresh()
end
function StarTowerQuestCtrl:OnDisable()
self.bPos = true
for k, v in pairs(self.tbGridCtrl) do
self:UnbindCtrlByNode(v)
self.tbGridCtrl[k] = nil
end
self.tbGridCtrl = {}
end
function StarTowerQuestCtrl:OnDestroy()
end
function StarTowerQuestCtrl:OnBtnClick_ReceiveAll(btn)
self._mapNode.btnReceiveAll.interactable = false
local bHasCore = false
if #self.tbCore > 0 and self.nCoreQusetId then
for _, v in pairs(self.tbCore) do
if v.nTid == self.nCoreQusetId and v.nStatus == 1 then
bHasCore = true
break
end
end
end
if bHasCore then
WwiseManger:PlaySound("ui_rogue_research_ani")
self._mapNode.Cube:Play("StarTowerQuest_Cube_open")
local nAnimLen = NovaAPI.GetAnimClipLength(self._mapNode.Cube, {
"StarTowerQuest_Cube_open"
})
EventManager.Hit(EventId.TemporaryBlockInput, nAnimLen)
self:AddTimer(1, nAnimLen, function()
PlayerData.Quest:ReceiveStarTowerReward(0)
end, true, true, true)
else
PlayerData.Quest:ReceiveStarTowerReward(0)
end
end
function StarTowerQuestCtrl:OnBtnClick_Growth(btn)
EventManager.Hit(EventId.OpenPanel, PanelId.StarTowerGrowth)
end
function StarTowerQuestCtrl:OnBtnClick_Receive()
self._mapNode.btnReceiveCore.interactable = false
WwiseManger:PlaySound("ui_rogue_research_ani")
self._mapNode.Cube:Play("StarTowerQuest_Cube_open")
local nAnimLen = NovaAPI.GetAnimClipLength(self._mapNode.Cube, {
"StarTowerQuest_Cube_open"
})
EventManager.Hit(EventId.TemporaryBlockInput, nAnimLen)
self:AddTimer(1, nAnimLen, function()
PlayerData.Quest:ReceiveStarTowerReward(self.nCoreQusetId)
end, true, true, true)
end
function StarTowerQuestCtrl:OnBtnClick_JumpTo()
local nJumptoId = self.mapCoreQuset.JumpTo
JumpUtil.JumpTo(nJumptoId)
end
function StarTowerQuestCtrl:OnBtnClick_Reward(btn, nIndex)
local mapData = {
nTid = self.mapCoreQuset["Reward" .. nIndex],
bShowDepot = true,
bShowJumpto = true
}
EventManager.Hit(EventId.OpenPanel, PanelId.ItemTips, btn.transform, mapData)
end
function StarTowerQuestCtrl:OnBtnClick_None()
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Quest_ReceiveNone"))
end
function StarTowerQuestCtrl:OnEvent_Received()
self:Refresh()
end
function StarTowerQuestCtrl:OnEvent_ClickGrid(gridIndex, callback)
self._mapNode.svQuest:SetScrollGridPos(gridIndex, 0.1, 1)
EventManager.Hit(EventId.BlockInput, true)
self:AddTimer(1, 0.1, function()
EventManager.Hit(EventId.BlockInput, false)
callback()
end, true, true, true)
end
return StarTowerQuestCtrl