83 lines
2.7 KiB
Lua
83 lines
2.7 KiB
Lua
local BoxTips = class("BoxTips", BaseUI)
|
|
|
|
function BoxTips:ctor(params)
|
|
self.itemId = params.itemId
|
|
end
|
|
|
|
function BoxTips:getPrefabPath()
|
|
return "assets/prefabs/ui/tips/box_tips.prefab"
|
|
end
|
|
|
|
function BoxTips:isFullScreen()
|
|
return false
|
|
end
|
|
|
|
function BoxTips:onLoadRootComplete()
|
|
local uiMap = self.root:genAllChildren()
|
|
self.uiMap = uiMap
|
|
local itemTextInfo = I18N:getConfig("item")[self.itemId]
|
|
if itemTextInfo then
|
|
uiMap["box_tips.bg.title"]:setText(itemTextInfo.name)
|
|
else
|
|
uiMap["box_tips.bg.title"]:setText(GConst.EMPTY_STRING)
|
|
end
|
|
local itemInfo = ConfigManager:getConfig("item")[self.itemId]
|
|
if itemInfo then
|
|
local nameIndex = itemInfo.qlt - 1
|
|
if nameIndex < 1 then
|
|
nameIndex = 1
|
|
elseif nameIndex > 3 then
|
|
nameIndex = 3
|
|
end
|
|
uiMap["box_tips.bg.box"]:setSprite(GConst.ATLAS_PATH.SHOP, "shop_chest_" .. nameIndex)
|
|
end
|
|
uiMap["box_tips.close_btn"]:addClickListener(function()
|
|
self:closeUI()
|
|
end)
|
|
|
|
self.rewardNodeList = {}
|
|
local rewardList = itemInfo.reward or GConst.EMPTY_TABLE
|
|
for i = 1, 4 do
|
|
local rewardNode = uiMap["box_tips.bg.item_" .. i]
|
|
self.rewardNodeList[i] = rewardNode
|
|
if rewardList[i] then
|
|
local num = uiMap["box_tips.bg.item_" .. i .. ".num"]
|
|
num:setText(GFunc.intToString(GFunc.getRewardNum(rewardList[i])))
|
|
local help = uiMap["box_tips.bg.item_" .. i .. ".help"]
|
|
if rewardList[i].type == GConst.ItemConst.ITEM_TYPE.RANDOM_FRAGMENT then
|
|
help:setVisible(true)
|
|
else
|
|
help:setVisible(false)
|
|
end
|
|
rewardNode:setVisible(true)
|
|
rewardNode:addClickListener(function()
|
|
ModuleManager.TipsManager:showRewardTips(rewardList[i].id, rewardList[i].type, rewardNode)
|
|
end)
|
|
local rewardComp = uiMap["box_tips.bg.item_" .. i .. ".reward_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
|
|
rewardComp:refreshByConfig(rewardList[i])
|
|
rewardComp:setTouchEnable(false)
|
|
rewardComp:setNumTx(GConst.EMPTY_STRING)
|
|
else
|
|
rewardNode:setVisible(false)
|
|
end
|
|
end
|
|
self:adpatRewardNode(#rewardList)
|
|
end
|
|
|
|
function BoxTips:adpatRewardNode(count)
|
|
if count == 0 then
|
|
return
|
|
end
|
|
local width = self.rewardNodeList[1]:getRectWidth() + 10
|
|
if count % 2 == 0 then
|
|
for i = 1, count do
|
|
self.rewardNodeList[i]:setAnchoredPositionX((i - count / 2 - 0.5) * width)
|
|
end
|
|
else
|
|
for i = 1, count do
|
|
self.rewardNodeList[i]:setAnchoredPositionX((i - (count - 1) / 2 - 1) * width)
|
|
end
|
|
end
|
|
end
|
|
|
|
return BoxTips |