5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
134 lines
4.3 KiB
Lua
134 lines
4.3 KiB
Lua
local CookieQuestCellCtrl = class("CookieQuestCellCtrl", BaseCtrl)
|
|
local JumpUtil = require("Game.Common.Utils.JumpUtil")
|
|
CookieQuestCellCtrl._mapNodeConfig = {
|
|
txtQuestName = {sComponentName = "TMP_Text"},
|
|
imgTrophy = {sComponentName = "Image"},
|
|
btnReceive = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Receive"
|
|
},
|
|
txtBtnReceive = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Quest_Receive_Btn_Text"
|
|
},
|
|
btnJumpTo = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_JumpTo"
|
|
},
|
|
txtBtnJumpTo = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Quest_JumpTo_Text"
|
|
},
|
|
goReceived = {},
|
|
goBtns = {},
|
|
imgBarFill = {
|
|
sComponentName = "RectTransform"
|
|
},
|
|
txtProgress = {sComponentName = "TMP_Text"},
|
|
btnRewardItem = {nCount = 2, sComponentName = "UIButton"},
|
|
item = {
|
|
nCount = 2,
|
|
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl"
|
|
},
|
|
btnItem = {
|
|
sNodeName = "btnRewardItem",
|
|
nCount = 2,
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_RewardItem"
|
|
}
|
|
}
|
|
local tbTrophySprite = {
|
|
"UI/big_sprites/bg_activity_cookie_task_01",
|
|
"UI/big_sprites/bg_activity_cookie_task_02",
|
|
"UI/big_sprites/bg_activity_cookie_task_03"
|
|
}
|
|
local nProgressBarLength = 562
|
|
local nProgressBarMin = 48
|
|
local nProgressBarHeight = 37
|
|
function CookieQuestCellCtrl:Init(questData, nActId)
|
|
self.questData = questData
|
|
if self.questData == nil then
|
|
return
|
|
end
|
|
self.actData = PlayerData.Activity:GetActivityDataById(nActId)
|
|
self.mapStatus = self.actData:GetQuestDataById(questData.Id)
|
|
if self.mapStatus == nil then
|
|
local tbJson = decodeJson(questData.CompleteCondParams)
|
|
self.mapStatus = {
|
|
nId = questData.Id,
|
|
nStatus = AllEnum.ActQuestStatus.UnComplete,
|
|
progress = {
|
|
Cur = 0,
|
|
Max = tbJson[#tbJson]
|
|
}
|
|
}
|
|
end
|
|
self.tbReward = {}
|
|
for i = 1, 2 do
|
|
local nRewardId = self.questData["Reward" .. i .. "Tid"]
|
|
local nRewardQty = self.questData["Reward" .. i .. "Qty"]
|
|
if nRewardId ~= nil and 0 < nRewardId and nRewardQty ~= nil and 0 < nRewardQty then
|
|
table.insert(self.tbReward, {nRewardId, nRewardQty})
|
|
self._mapNode.btnRewardItem[i].gameObject:SetActive(true)
|
|
else
|
|
self._mapNode.btnRewardItem[i].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
self.tbBtn = self._mapNode.btnRewardItem
|
|
for k, v in pairs(self.tbReward) do
|
|
self._mapNode.item[k]:SetItem(v[1], nil, v[2])
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtQuestName, self.questData.Desc)
|
|
self:SetPngSprite(self._mapNode.imgTrophy, tbTrophySprite[self.questData.Rarity] or tbTrophySprite[1])
|
|
self:UpdateCellStatus()
|
|
end
|
|
function CookieQuestCellCtrl:Awake(...)
|
|
end
|
|
function CookieQuestCellCtrl:OnDisable()
|
|
end
|
|
function CookieQuestCellCtrl:UpdateCellStatus()
|
|
self._mapNode.btnReceive.gameObject:SetActive(false)
|
|
self._mapNode.btnJumpTo.gameObject:SetActive(false)
|
|
self._mapNode.goReceived:SetActive(false)
|
|
NovaAPI.SetTMPText(self._mapNode.txtProgress, orderedFormat("{0}/{1}", self.mapStatus.progress.Cur, self.mapStatus.progress.Max))
|
|
if self.mapStatus.nStatus == AllEnum.ActQuestStatus.Complete then
|
|
self._mapNode.btnReceive.gameObject:SetActive(true)
|
|
self._mapNode.imgBarFill.sizeDelta = Vector2(nProgressBarLength, nProgressBarHeight)
|
|
elseif self.mapStatus.nStatus == AllEnum.ActQuestStatus.UnComplete then
|
|
local nLength = self.mapStatus.progress.Cur / self.mapStatus.progress.Max * nProgressBarLength
|
|
if nLength < nProgressBarMin then
|
|
if 0 < nLength then
|
|
nLength = nProgressBarMin
|
|
else
|
|
nLength = 0
|
|
end
|
|
end
|
|
self._mapNode.imgBarFill.sizeDelta = Vector2(nLength, nProgressBarHeight)
|
|
if self.questData.JumpTo ~= nil then
|
|
self.nJumpTo = self.questData.JumpTo
|
|
self._mapNode.btnJumpTo.gameObject:SetActive(true)
|
|
end
|
|
elseif self.mapStatus.nStatus == AllEnum.ActQuestStatus.Received then
|
|
self._mapNode.goReceived:SetActive(true)
|
|
self._mapNode.imgBarFill.sizeDelta = Vector2(nProgressBarLength, nProgressBarHeight)
|
|
end
|
|
end
|
|
function CookieQuestCellCtrl:OnBtnClick_RewardItem(btn, nIndex)
|
|
local nRewardId
|
|
if self.tbReward ~= nil and self.tbReward[nIndex] ~= nil then
|
|
nRewardId = self.tbReward[nIndex][1]
|
|
end
|
|
if nRewardId ~= nil then
|
|
UTILS.ClickItemGridWithTips(nRewardId, btn.transform, true, true, false)
|
|
end
|
|
end
|
|
function CookieQuestCellCtrl:OnBtnClick_Receive()
|
|
self.actData:SendQuestReceive(self.mapStatus.nId)
|
|
end
|
|
function CookieQuestCellCtrl:OnBtnClick_JumpTo()
|
|
if nil ~= self.nJumpTo and 0 ~= self.nJumpTo then
|
|
JumpUtil.JumpTo(self.nJumpTo)
|
|
end
|
|
end
|
|
return CookieQuestCellCtrl
|