7363298dc1
EN: 1.15.0.134 CN: 1.15.0.133 JP: 1.15.0.137 KR: 1.15.0.139
86 lines
3.2 KiB
Lua
86 lines
3.2 KiB
Lua
local EquipmentInstanceRewardSelectGridCtrl = class("EquipmentInstanceRewardSelectGridCtrl", BaseCtrl)
|
|
EquipmentInstanceRewardSelectGridCtrl._mapNodeConfig = {
|
|
txtInstanceName = {sComponentName = "TMP_Text"},
|
|
btnChosen = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtn_ClickChosen"
|
|
},
|
|
imgCurChose = {sComponentName = "GameObject"},
|
|
txtCurChose = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "DailyInstance_Cur_Chose"
|
|
},
|
|
txtBtn = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "DailyInstance_Reward_Select"
|
|
},
|
|
RewardItem = {
|
|
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl",
|
|
nCount = 2
|
|
},
|
|
btnRewardItem = {
|
|
sComponentName = "UIButton",
|
|
nCount = 2,
|
|
callback = "OnBtnClick_RewardItem"
|
|
}
|
|
}
|
|
EquipmentInstanceRewardSelectGridCtrl._mapEventConfig = {
|
|
ChangeEquipmentInstanceRewardMode = "OnEvent_ChangeEquipmentInstanceRewardMode"
|
|
}
|
|
function EquipmentInstanceRewardSelectGridCtrl:Refresh(nId)
|
|
local mapData = ConfigTable.GetData("CharGemInstanceRewardGroup", nId)
|
|
if mapData == nil then
|
|
return
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtInstanceName, mapData.RewardName)
|
|
self.nRewardType = mapData.RewardType
|
|
local curChoseType = PlayerData.EquipmentInstance:GetLastRewardType()
|
|
self._mapNode.imgCurChose:SetActive(curChoseType == self.nRewardType)
|
|
self._mapNode.txtCurChose.gameObject:SetActive(curChoseType == self.nRewardType)
|
|
self._mapNode.btnChosen.gameObject:SetActive(curChoseType ~= self.nRewardType)
|
|
local tbReward = decodeJson(mapData.BaseAwardPreview)
|
|
self.tbReward = tbReward
|
|
for index = 1, 5 do
|
|
if self.tbReward[index] ~= nil then
|
|
local bReceived = false
|
|
if self.tbReward[index][#tbReward[index]] == 1 then
|
|
bReceived = true
|
|
end
|
|
table.insert(self.tbReward[index], bReceived)
|
|
end
|
|
end
|
|
self.tbAfterReward = {}
|
|
for key, value in pairs(self.tbReward) do
|
|
local lastIndex = #self.tbReward[key]
|
|
if not self.tbReward[key][lastIndex] then
|
|
table.remove(value)
|
|
table.insert(self.tbAfterReward, value)
|
|
end
|
|
end
|
|
for index = 1, 2 do
|
|
self._mapNode.RewardItem[index].gameObject:SetActive(self.tbAfterReward[index] ~= nil)
|
|
if self.tbAfterReward[index] ~= nil then
|
|
local rewardItem = self.tbAfterReward[index]
|
|
local nLastIndex = #rewardItem
|
|
self._mapNode.RewardItem[index]:SetItem(rewardItem[1], nil, UTILS.ParseRewardItemCount(rewardItem), nil, false, rewardItem[nLastIndex] == 1, rewardItem[nLastIndex] == 2, true)
|
|
end
|
|
end
|
|
end
|
|
function EquipmentInstanceRewardSelectGridCtrl:OnEvent_ChangeEquipmentInstanceRewardMode()
|
|
local curChoseType = PlayerData.EquipmentInstance:GetLastRewardType()
|
|
self._mapNode.imgCurChose:SetActive(curChoseType == self.nRewardType)
|
|
self._mapNode.txtCurChose.gameObject:SetActive(curChoseType == self.nRewardType)
|
|
self._mapNode.btnChosen.gameObject:SetActive(curChoseType ~= self.nRewardType)
|
|
end
|
|
function EquipmentInstanceRewardSelectGridCtrl:OnBtn_ClickChosen()
|
|
PlayerData.EquipmentInstance:SetRewardType(self.nRewardType)
|
|
EventManager.Hit("ChangeEquipmentInstanceRewardMode")
|
|
end
|
|
function EquipmentInstanceRewardSelectGridCtrl:OnBtnClick_RewardItem(btn, nIdx)
|
|
if self.tbAfterReward[nIdx] ~= nil then
|
|
local nTid = self.tbAfterReward[nIdx][1]
|
|
UTILS.ClickItemGridWithTips(nTid, btn.transform, true, true, false)
|
|
end
|
|
end
|
|
return EquipmentInstanceRewardSelectGridCtrl
|