5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
110 lines
3.8 KiB
Lua
110 lines
3.8 KiB
Lua
local InfinityTowerRewardList = class("InfinityTowerRewardList", BaseCtrl)
|
|
local texNameColor = {
|
|
Color(0.6980392156862745, 0.6588235294117647, 0.7647058823529411, 1),
|
|
Color(0.4196078431372549, 0.2901960784313726, 0.6627450980392157, 1),
|
|
Color(0.4196078431372549, 0.2901960784313726, 0.6627450980392157, 0.6980392156862745)
|
|
}
|
|
InfinityTowerRewardList._mapNodeConfig = {
|
|
obj_rewardPoint_1 = {},
|
|
obj_rewardPoint_2 = {},
|
|
obj_RewardDone_1 = {},
|
|
obj_RewardDone_2 = {},
|
|
obj_RewardDone_3 = {},
|
|
tex_RewardLayerCount = {sComponentName = "TMP_Text"},
|
|
tex_RewardLayer = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "InfinityTower_Layer"
|
|
},
|
|
rewardItemRoot = {sComponentName = "Transform"},
|
|
objRewardItem = {}
|
|
}
|
|
InfinityTowerRewardList._mapEventConfig = {}
|
|
function InfinityTowerRewardList:Awake()
|
|
self.rewardItem = {}
|
|
end
|
|
function InfinityTowerRewardList:UnbindAllGrids()
|
|
for go, ctrl in ipairs(self.rewardItem) do
|
|
self:UnbindCtrlByNode(ctrl)
|
|
end
|
|
self.rewardItem = {}
|
|
end
|
|
function InfinityTowerRewardList:OnDestroy()
|
|
end
|
|
function InfinityTowerRewardList:InitRewardList(towerId, floor, passLv, rewardLv)
|
|
local isGet = floor <= rewardLv
|
|
local isCan = floor <= passLv and rewardLv < floor
|
|
local isDont = passLv < floor
|
|
local cg = self.gameObject:GetComponent("CanvasGroup")
|
|
if isGet then
|
|
NovaAPI.SetCanvasGroupAlpha(cg, 0.6)
|
|
else
|
|
NovaAPI.SetCanvasGroupAlpha(cg, 1)
|
|
end
|
|
self._mapNode.obj_RewardDone_1:SetActive(isGet)
|
|
self._mapNode.obj_RewardDone_2:SetActive(isCan)
|
|
self._mapNode.obj_RewardDone_3:SetActive(isDont)
|
|
if isGet then
|
|
NovaAPI.SetTMPColor(self._mapNode.tex_RewardLayerCount, texNameColor[1])
|
|
NovaAPI.SetTMPColor(self._mapNode.tex_RewardLayer, texNameColor[1])
|
|
elseif isCan then
|
|
NovaAPI.SetTMPColor(self._mapNode.tex_RewardLayerCount, texNameColor[2])
|
|
NovaAPI.SetTMPColor(self._mapNode.tex_RewardLayer, texNameColor[2])
|
|
else
|
|
NovaAPI.SetTMPColor(self._mapNode.tex_RewardLayerCount, texNameColor[3])
|
|
NovaAPI.SetTMPColor(self._mapNode.tex_RewardLayer, texNameColor[3])
|
|
end
|
|
local tmpLv = "0"
|
|
if floor < 10 then
|
|
tmpLv = "00" .. floor
|
|
elseif 10 <= floor and floor < 100 then
|
|
tmpLv = "0" .. floor
|
|
else
|
|
tmpLv = tostring(floor)
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.tex_RewardLayerCount, tmpLv)
|
|
local lvData = PlayerData.InfinityTower:GetTowerLayerData(towerId, floor)
|
|
local tbItem = {}
|
|
local _base = decodeJson(lvData.BaseAwardPreview)
|
|
for k, v in ipairs(_base) do
|
|
table.insert(tbItem, {
|
|
id = v[1],
|
|
count = UTILS.ParseRewardItemCount(v)
|
|
})
|
|
end
|
|
self:SetRewardItem(tbItem, isGet)
|
|
self._mapNode.obj_rewardPoint_1:SetActive(lvData.LevelFunc ~= GameEnum.fixedRoguelikeFunc0.Boss)
|
|
self._mapNode.obj_rewardPoint_2:SetActive(lvData.LevelFunc == GameEnum.fixedRoguelikeFunc0.Boss)
|
|
end
|
|
function InfinityTowerRewardList:SetRewardItem(tabItem, isGet)
|
|
local childCount = self._mapNode.rewardItemRoot.childCount
|
|
for i = 1, childCount do
|
|
self._mapNode.rewardItemRoot:GetChild(i - 1).gameObject:SetActive(false)
|
|
end
|
|
local index = 1
|
|
for i, v in pairs(tabItem) do
|
|
local objItem
|
|
if index > self._mapNode.rewardItemRoot.childCount then
|
|
objItem = instantiate(self._mapNode.objRewardItem, self._mapNode.rewardItemRoot)
|
|
else
|
|
objItem = self._mapNode.rewardItemRoot:GetChild(index - 1).gameObject
|
|
end
|
|
local btn = objItem:GetComponent("UIButton")
|
|
btn.onClick:RemoveAllListeners()
|
|
local clickCb = function()
|
|
self:ShowItemTips(v.id, btn.gameObject)
|
|
end
|
|
btn.onClick:AddListener(clickCb)
|
|
objItem:SetActive(true)
|
|
self.rewardItem[objItem] = self:BindCtrlByNode(objItem, "Game.UI.TemplateEx.TemplateItemCtrl")
|
|
self.rewardItem[objItem]:SetItem(v.id, nil, v.count, nil, isGet, nil, nil, true)
|
|
index = index + 1
|
|
end
|
|
end
|
|
function InfinityTowerRewardList:ShowItemTips(nTid, rtBtn)
|
|
UTILS.ClickItemGridWithTips(nTid, rtBtn, false, true, false)
|
|
end
|
|
function InfinityTowerRewardList:OnDisable()
|
|
self:UnbindAllGrids()
|
|
end
|
|
return InfinityTowerRewardList
|