Files
StellaSora_DataLua/lua/game/ui/startowerbook/affinity/affinityrewardgridctrl.lua
T
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

78 lines
2.2 KiB
Lua

local AffinityRewardGridCtrl = class("AffinityRewardGridCtrl", BaseCtrl)
AffinityRewardGridCtrl._mapNodeConfig = {
rt_item = {
nCount = 3,
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl"
},
rtUnlock = {},
rtLock = {},
imgHead = {sComponentName = "Image"},
TMPUnreceived = {
sComponentName = "TMP_Text",
sLanguageId = "NPCAffinity_Received"
},
TMPReceived = {
sComponentName = "TMP_Text",
sLanguageId = "NPCAffinity_Unreceived"
},
txtLevelName = {
sComponentName = "TMP_Text",
nCount = 2,
sLanguageId = "Dating_Affinity_Level"
},
txtLevel = {sComponentName = "TMP_Text", nCount = 2},
btnItem = {
sComponentName = "UIButton",
nCount = 3,
callback = "OnBtnClick_RewardItem"
}
}
AffinityRewardGridCtrl._mapEventConfig = {}
AffinityRewardGridCtrl._mapRedDotConfig = {}
function AffinityRewardGridCtrl:Awake()
end
function AffinityRewardGridCtrl:FadeIn()
end
function AffinityRewardGridCtrl:FadeOut()
end
function AffinityRewardGridCtrl:OnEnable()
end
function AffinityRewardGridCtrl:OnDisable()
end
function AffinityRewardGridCtrl:OnDestroy()
end
function AffinityRewardGridCtrl:OnRelease()
end
function AffinityRewardGridCtrl:Refresh(mapCfgData, mapAffinity)
NovaAPI.SetTMPText(self._mapNode.txtLevel[1], mapCfgData.Level)
NovaAPI.SetTMPText(self._mapNode.txtLevel[2], mapCfgData.Level)
self:SetPngSprite(self._mapNode.imgHead, mapCfgData.Icon)
local mapReward = decodeJson(mapCfgData.Reward)
local tbReward = {}
for nTid, nCount in pairs(mapReward) do
table.insert(tbReward, {
tonumber(nTid),
tonumber(nCount)
})
end
local sort = function(a, b)
return a[1] < b[1]
end
table.sort(tbReward, sort)
self.tbReward = tbReward
for i = 1, 3 do
if tbReward[i] ~= nil then
self._mapNode.rt_item[i].gameObject:SetActive(true)
self._mapNode.rt_item[i]:SetItem(tbReward[i][1], nil, tbReward[i][2], nil, false, false, false, true, false)
else
self._mapNode.rt_item[i].gameObject:SetActive(false)
end
end
self._mapNode.rtUnlock:SetActive(mapCfgData.Level <= mapAffinity.Level)
self._mapNode.rtLock:SetActive(mapCfgData.Level > mapAffinity.Level)
end
function AffinityRewardGridCtrl:OnBtnClick_RewardItem(btn, nIdx)
UTILS.ClickItemGridWithTips(self.tbReward[nIdx][1], btn.gameObject, true, true, true)
end
return AffinityRewardGridCtrl