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:
@@ -0,0 +1,177 @@
|
||||
local StarTowerBookQuestCtrl = class("StarTowerBookQuestCtrl", BaseCtrl)
|
||||
StarTowerBookQuestCtrl._mapNodeConfig = {
|
||||
goWindowBlur = {},
|
||||
goQuestWindow = {},
|
||||
animRoot = {
|
||||
sNodeName = "goQuestWindow",
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
txtWindowTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "StarTower_Book_Quest_Title"
|
||||
},
|
||||
btnClose = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Close"
|
||||
},
|
||||
questLSV = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
btnReceive = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Receive"
|
||||
},
|
||||
txtReceiveBtn = {
|
||||
nCount = 2,
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "StarTower_Book_Quest_Quick_Receive"
|
||||
},
|
||||
btnReceiveGray = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_ReceiveGray"
|
||||
},
|
||||
btnQuestBg = {
|
||||
sComponentName = "Button",
|
||||
callback = "OnBtnClick_Close"
|
||||
}
|
||||
}
|
||||
StarTowerBookQuestCtrl._mapEventConfig = {}
|
||||
StarTowerBookQuestCtrl._mapRedDotConfig = {}
|
||||
function StarTowerBookQuestCtrl:ShowWindow(nParam)
|
||||
self._mapNode.goQuestWindow.gameObject:SetActive(false)
|
||||
self._mapNode.goWindowBlur.gameObject:SetActive(true)
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self._mapNode.goQuestWindow.gameObject:SetActive(true)
|
||||
self._mapNode.animRoot:Play("t_window_04_t_in")
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
||||
if self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Potential then
|
||||
self:InitPotentialQuest(nParam)
|
||||
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.FateCard then
|
||||
self:InitFateCardQuest(nParam)
|
||||
end
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
end
|
||||
function StarTowerBookQuestCtrl:InitPotentialQuest(nCharId)
|
||||
self.nCharId = nCharId
|
||||
self.mapQuest = {}
|
||||
local mapQuest = PlayerData.StarTowerBook:GetCharPotentialQuest(nCharId)
|
||||
self._mapNode.questLSV.gameObject:SetActive(mapQuest ~= nil)
|
||||
if mapQuest == nil then
|
||||
return
|
||||
end
|
||||
for nId, data in pairs(mapQuest) do
|
||||
data.Id = nId
|
||||
table.insert(self.mapQuest, data)
|
||||
end
|
||||
table.sort(self.mapQuest, function(a, b)
|
||||
if a.Status == b.Status then
|
||||
return a.Id < b.Id
|
||||
end
|
||||
return a.Status < b.Status
|
||||
end)
|
||||
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.tbGridCtrl[nInstanceId] = nil
|
||||
end
|
||||
self._mapNode.questLSV:Init(#self.mapQuest, self, self.OnPotentialGridRefresh, nil)
|
||||
local bCanReceive = false
|
||||
for _, v in ipairs(self.mapQuest) do
|
||||
if v.Status == AllEnum.BookQuestStatus.Complete then
|
||||
bCanReceive = true
|
||||
break
|
||||
end
|
||||
end
|
||||
self._mapNode.btnReceive.gameObject:SetActive(bCanReceive)
|
||||
self._mapNode.btnReceiveGray.gameObject:SetActive(not bCanReceive)
|
||||
end
|
||||
function StarTowerBookQuestCtrl:OnPotentialGridRefresh(goGrid, goIndex)
|
||||
local nInstanceID = goGrid:GetInstanceID()
|
||||
if not self.tbGridCtrl[nInstanceID] then
|
||||
self.tbGridCtrl[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.StarTowerBook.Quest.BookQuestItemCtrl")
|
||||
end
|
||||
local questData = self.mapQuest[goIndex + 1]
|
||||
self.tbGridCtrl[nInstanceID]:InitPotentialItem(questData)
|
||||
end
|
||||
function StarTowerBookQuestCtrl:InitFateCardQuest(nBundleId)
|
||||
self.nBundleId = nBundleId
|
||||
self.mapQuest = PlayerData.StarTowerBook:GetFateCardBundleQuest(nBundleId)
|
||||
table.sort(self.mapQuest, function(a, b)
|
||||
if a.Status == b.Status then
|
||||
return a.Id < b.Id
|
||||
end
|
||||
return a.Status < b.Status
|
||||
end)
|
||||
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.tbGridCtrl[nInstanceId] = nil
|
||||
end
|
||||
self._mapNode.questLSV:Init(#self.mapQuest, self, self.OnFateCardGridRefresh, nil)
|
||||
local bCanReceive = false
|
||||
for _, v in ipairs(self.mapQuest) do
|
||||
if v.Status == AllEnum.BookQuestStatus.Complete then
|
||||
bCanReceive = true
|
||||
break
|
||||
end
|
||||
end
|
||||
self._mapNode.btnReceive.gameObject:SetActive(bCanReceive)
|
||||
self._mapNode.btnReceiveGray.gameObject:SetActive(not bCanReceive)
|
||||
end
|
||||
function StarTowerBookQuestCtrl:OnFateCardGridRefresh(goGrid, goIndex)
|
||||
local nInstanceID = goGrid:GetInstanceID()
|
||||
if not self.tbGridCtrl[nInstanceID] then
|
||||
self.tbGridCtrl[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.StarTowerBook.Quest.BookQuestItemCtrl")
|
||||
end
|
||||
local questData = self.mapQuest[goIndex + 1]
|
||||
self.tbGridCtrl[nInstanceID]:InitFateCardItem(questData)
|
||||
end
|
||||
function StarTowerBookQuestCtrl:CloseWindow()
|
||||
self._mapNode.animRoot:Play("t_window_04_t_out")
|
||||
local nAnim = NovaAPI.GetAnimClipLength(self._mapNode.animRoot, {
|
||||
"t_window_04_t_out"
|
||||
})
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, nAnim)
|
||||
self:AddTimer(1, nAnim, function()
|
||||
self._mapNode.goQuestWindow.gameObject:SetActive(false)
|
||||
self._mapNode.goWindowBlur.gameObject:SetActive(false)
|
||||
self.gameObject:SetActive(false)
|
||||
end, true, true, true, true)
|
||||
end
|
||||
function StarTowerBookQuestCtrl:Awake()
|
||||
self.tbGridCtrl = {}
|
||||
end
|
||||
function StarTowerBookQuestCtrl:FadeIn()
|
||||
end
|
||||
function StarTowerBookQuestCtrl:FadeOut()
|
||||
end
|
||||
function StarTowerBookQuestCtrl:OnEnable()
|
||||
end
|
||||
function StarTowerBookQuestCtrl:OnDisable()
|
||||
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.tbGridCtrl[nInstanceId] = nil
|
||||
end
|
||||
end
|
||||
function StarTowerBookQuestCtrl:OnBtnClick_Close()
|
||||
self:CloseWindow()
|
||||
end
|
||||
function StarTowerBookQuestCtrl:OnBtnClick_Receive()
|
||||
local callback = function()
|
||||
if self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Potential then
|
||||
self:InitPotentialQuest(self.nCharId)
|
||||
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.FateCard then
|
||||
self:InitFateCardQuest(self.nBundleId)
|
||||
end
|
||||
self:CloseWindow()
|
||||
end
|
||||
if self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Potential then
|
||||
PlayerData.StarTowerBook:SendReceivePotentialRewardMsg(self.nCharId, callback)
|
||||
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.FateCard then
|
||||
PlayerData.StarTowerBook:SendReceiveFateCardRewardMsg(self.nBundleId, 0, callback)
|
||||
end
|
||||
end
|
||||
function StarTowerBookQuestCtrl:OnBtnClick_ReceiveGray()
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("StarTower_Book_Quest_Reward"))
|
||||
end
|
||||
return StarTowerBookQuestCtrl
|
||||
Reference in New Issue
Block a user