Files
SL1900 5e0d58cfad 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
2025-12-03 01:00:00 +09:00

114 lines
4.1 KiB
Lua

local AchievementGridCtrl = class("AchievementGridCtrl", BaseCtrl)
local JumpUtil = require("Game.Common.Utils.JumpUtil")
local nBarLength = 512
local nBarHeight = 512
AchievementGridCtrl._mapNodeConfig = {
imgCup = {sComponentName = "Image"},
TMPTitle = {sComponentName = "TMP_Text"},
TMPDesc = {sComponentName = "TMP_Text"},
TMPProcess = {sComponentName = "TMP_Text"},
TMPTimeTitle = {
sComponentName = "TMP_Text",
sLanguageId = "Achievement_Tips_Completed"
},
txtBtnJump = {
sComponentName = "TMP_Text",
sLanguageId = "Quest_JumpTo"
},
TMPTime = {sComponentName = "TMP_Text"},
rtBarFill = {
sComponentName = "RectTransform"
},
btnItem = {
sComponentName = "UIButton",
callback = "OnBtnClick_Item"
},
btnReceive = {
sComponentName = "UIButton",
callback = "OnBtnClick_Receive"
},
btnJump = {
sComponentName = "UIButton",
callback = "OnBtnClick_Jumpto"
},
rtItem = {
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl"
},
imgCup0 = {nCount = 3},
txtBtnReceive = {
sComponentName = "TMP_Text",
sLanguageId = "Quest_Receive_Btn_Text"
},
TMPUncomplete = {
sComponentName = "TMP_Text",
sLanguageId = "Quest_UnComplete_Text"
}
}
AchievementGridCtrl._mapEventConfig = {}
AchievementGridCtrl._mapRedDotConfig = {}
function AchievementGridCtrl:Awake()
end
function AchievementGridCtrl:FadeIn()
end
function AchievementGridCtrl:FadeOut()
end
function AchievementGridCtrl:OnEnable()
end
function AchievementGridCtrl:OnDisable()
end
function AchievementGridCtrl:OnDestroy()
end
function AchievementGridCtrl:OnRelease()
end
function AchievementGridCtrl:OnGridRefresh(mapAchievement)
self.mapAchievement = mapAchievement
local mapAchievementCfgData = ConfigTable.GetData("Achievement", mapAchievement.nId)
if mapAchievementCfgData == nil then
self.gameObject:SetActive(false)
return
end
NovaAPI.SetTMPText(self._mapNode.TMPTitle, mapAchievementCfgData.Title)
NovaAPI.SetTMPText(self._mapNode.TMPDesc, mapAchievementCfgData.Desc)
if mapAchievementCfgData.Tid1 ~= 0 then
self._mapNode.rtItem.gameObject:SetActive(true)
self._mapNode.rtItem:SetItem(mapAchievementCfgData.Tid1, nil, mapAchievementCfgData.Qty1, nil, mapAchievement.nStatus == 3)
else
self._mapNode.rtItem.gameObject:SetActive(false)
end
self._mapNode.btnReceive.gameObject:SetActive(mapAchievement.nStatus == 1)
self._mapNode.btnJump.gameObject:SetActive(mapAchievement.nStatus == 2 and 0 < mapAchievementCfgData.JumpTo)
self._mapNode.TMPTimeTitle.gameObject:SetActive(mapAchievement.nStatus == 3)
self._mapNode.TMPUncomplete.gameObject:SetActive(mapAchievement.nStatus == 2 and mapAchievementCfgData.JumpTo == 0)
NovaAPI.SetTMPText(self._mapNode.TMPProcess, string.format("%d/%d", mapAchievement.nCur, mapAchievement.nMax))
if mapAchievement.nStatus == 3 then
self._mapNode.rtBarFill.sizeDelta = Vector2(nBarLength, nBarHeight)
NovaAPI.SetTMPText(self._mapNode.TMPTime, mapAchievement.sTime)
elseif 0 < mapAchievement.nMax then
self._mapNode.rtBarFill.sizeDelta = Vector2(nBarLength * (mapAchievement.nCur / mapAchievement.nMax), nBarHeight)
else
self._mapNode.rtBarFill.sizeDelta = Vector2(0, nBarHeight)
end
self:SetPngSprite(self._mapNode.imgCup, "UI/big_sprites/zs_achievement_cup_0" .. mapAchievementCfgData.Rarity)
for i = 1, 3 do
self._mapNode.imgCup0[i]:SetActive(i == mapAchievementCfgData.Rarity and mapAchievement.nStatus == 3)
end
end
function AchievementGridCtrl:OnBtnClick_Receive()
local mapAchievementCfgData = ConfigTable.GetData("Achievement", self.mapAchievement.nId)
PlayerData.Achievement:SendAchievementRewardReq({
self.mapAchievement.nId
}, mapAchievementCfgData.Type, nil)
end
function AchievementGridCtrl:OnBtnClick_Jumpto()
local mapAchievementCfgData = ConfigTable.GetData("Achievement", self.mapAchievement.nId) or {}
JumpUtil.JumpTo(mapAchievementCfgData.JumpTo)
end
function AchievementGridCtrl:OnBtnClick_Item(btn)
local mapAchievementCfgData = ConfigTable.GetData("Achievement", self.mapAchievement.nId)
if mapAchievementCfgData == nil then
return
end
UTILS.ClickItemGridWithTips(mapAchievementCfgData.Tid1, btn.gameObject, true, true, true)
end
return AchievementGridCtrl