Files
StellaSora_DataLua/lua/game/ui/activity/loginreward/loginrewarditemctrl_01.lua
T
SL1900 e0549005e1 Update - 1.9.0.103
EN: 1.9.0.103
CN: 1.9.0.104
JP: 1.9.0.106
KR: 1.9.0.108
2026-04-18 00:15:00 +09:00

109 lines
3.6 KiB
Lua

local LoginRewardItemCtrl_01 = class("LoginRewardItemCtrl_01", BaseCtrl)
LoginRewardItemCtrl_01._mapNodeConfig = {
imgCanReceiveBg = {},
imgBg = {},
imgPlusBg = {},
imgDay = {nCount = 2, sComponentName = "Image"},
item = {
nCount = 2,
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl"
},
btnItem = {nCount = 2, sComponentName = "UIButton"},
txtItemName = {sComponentName = "TMP_Text"},
goReceived = {},
Select = {},
imgCanReceive = {},
txtCanReceive = {
sComponentName = "TMP_Text",
sLanguageId = "LoginReward_Can_Receive"
},
imgNextReceive = {},
txtNextReceive = {
sComponentName = "TMP_Text",
sLanguageId = "LoginReward_Next_Receive"
},
goParticle = {sNodeName = "UIParticle"}
}
LoginRewardItemCtrl_01._mapEventConfig = {}
LoginRewardItemCtrl_01._mapRedDotConfig = {}
function LoginRewardItemCtrl_01:SetRewardItem(nDay, mapReward, bEnableSelect, bNextDay, bClickTips)
self.nDay = nDay
self._mapNode.imgCanReceiveBg.gameObject:SetActive(mapReward.Status == 1)
self._mapNode.imgBg.gameObject:SetActive(not mapReward.DisRare)
self._mapNode.imgPlusBg.gameObject:SetActive(mapReward.DisRare)
for _, v in ipairs(self._mapNode.imgDay) do
self:SetAtlasSprite(v, "05_number", "zs_activity_02_num_" .. nDay)
end
self._mapNode.btnItem[1].gameObject:SetActive(mapReward.RewardId1 > 0)
if mapReward.RewardId1 > 0 then
self._mapNode.item[1]:SetItem(mapReward.RewardId1, nil, mapReward.Qty1, nil, mapReward.Status == 2)
end
self._mapNode.btnItem[2].gameObject:SetActive(0 < mapReward.RewardId2)
if 0 < mapReward.RewardId2 then
self._mapNode.item[2]:SetItem(mapReward.RewardId2, nil, mapReward.Qty2, nil, mapReward.Status == 2)
end
NovaAPI.SetTMPText(self._mapNode.txtItemName, mapReward.RewardDesc)
self._mapNode.imgCanReceive.gameObject:SetActive(mapReward.Status == 1)
self._mapNode.goReceived.gameObject:SetActive(mapReward.Status == 2)
self._mapNode.imgNextReceive.gameObject:SetActive(bNextDay)
self._mapNode.goParticle.gameObject:SetActive(mapReward.DisRare and mapReward.Status ~= 2)
self:SetItemFxSate(mapReward.DisRare and mapReward.Status ~= 2)
self:SetImgPlaySate(mapReward.Status == 2 and bEnableSelect)
self:SetSelect(false)
self.tbRewardList = {}
for i = 1, 3 do
local nTid = mapReward["RewardId" .. i]
local nCount = mapReward["Qty" .. i]
if nTid ~= 0 then
table.insert(self.tbRewardList, {nTid = nTid, nCount = nCount})
end
end
if bClickTips then
if self.handler then
self:UnBindHandler()
end
self:BindHandler()
end
end
function LoginRewardItemCtrl_01:SetSelect(bEnable)
self._mapNode.Select.gameObject:SetActive(bEnable)
end
function LoginRewardItemCtrl_01:BindHandler()
self.handler = {}
for i = 1, 2 do
local comp = self._mapNode.btnItem[i]
self.handler[i] = ui_handler(self, self.OnBtnClick_Item, comp, i)
comp.onClick:AddListener(self.handler[i])
end
end
function LoginRewardItemCtrl_01:UnBindHandler()
for i = 1, 2 do
local comp = self._mapNode.btnItem[i]
comp.onClick:RemoveListener(self.handler[i])
end
self.handler = nil
end
function LoginRewardItemCtrl_01:OnBtnClick_Item(btn, index)
local callback = function()
UTILS.ClickItemGridWithTips(self.tbRewardList[index].nTid, btn.transform, true, true, false)
end
EventManager.Hit("ClickLoginRewardTips", callback, self.nDay)
end
function LoginRewardItemCtrl_01:SetItemFxSate(bShowFx)
local FX = self.gameObject.transform:Find("FX")
if FX then
FX.gameObject:SetActive(bShowFx)
else
return
end
end
function LoginRewardItemCtrl_01:SetImgPlaySate(bShowImgPlay)
local ImgPlay = self.gameObject.transform:Find("imgPlay")
if ImgPlay then
ImgPlay.gameObject:SetActive(bShowImgPlay)
else
return
end
end
return LoginRewardItemCtrl_01