5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
102 lines
3.8 KiB
Lua
102 lines
3.8 KiB
Lua
local MallShopItemCtrl = class("MallShopItemCtrl", BaseCtrl)
|
|
MallShopItemCtrl._mapNodeConfig = {
|
|
imgRare = {sComponentName = "Image"},
|
|
imgDiscount = {},
|
|
txtDiscount = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Shop_Discount"
|
|
},
|
|
imgLeft = {},
|
|
txtLeft = {sComponentName = "TMP_Text"},
|
|
imgTime = {},
|
|
txtLeftTime = {sComponentName = "TMP_Text"},
|
|
txtName = {sComponentName = "TMP_Text"},
|
|
imgIcon = {sComponentName = "Image"},
|
|
txtCount = {sComponentName = "TMP_Text"},
|
|
imgCoin = {sComponentName = "Image"},
|
|
goOrigin = {},
|
|
txtOrigin = {sComponentName = "TMP_Text"},
|
|
txtPrice = {sComponentName = "TMP_Text"},
|
|
imgMask = {},
|
|
goRestock = {},
|
|
txtRestock = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Shop_Restock"
|
|
},
|
|
goCondition = {},
|
|
txtCondition = {sComponentName = "TMP_Text"}
|
|
}
|
|
MallShopItemCtrl._mapEventConfig = {}
|
|
function MallShopItemCtrl:Refresh(mapData)
|
|
local mapCfg = ConfigTable.GetData("MallShop", mapData.sId)
|
|
self:RefreshInfo(mapCfg, mapData)
|
|
self:RefreshPrice(mapCfg)
|
|
self:RefreshLimit(mapCfg, mapData)
|
|
end
|
|
function MallShopItemCtrl:RefreshInfo(mapCfg, mapData)
|
|
local mapItemCfg = ConfigTable.GetData_Item(mapCfg.ItemId)
|
|
NovaAPI.SetTMPText(self._mapNode.txtName, mapCfg.Name)
|
|
if mapItemCfg.Type == GameEnum.itemType.Disc then
|
|
self:SetPngSprite(self._mapNode.imgIcon, mapItemCfg.Icon .. AllEnum.OutfitIconSurfix.Item)
|
|
else
|
|
self:SetPngSprite(self._mapNode.imgIcon, mapItemCfg.Icon)
|
|
end
|
|
local sPath = AllEnum.FrameType_New.MallGoods .. AllEnum.FrameColor_New[mapItemCfg.Rarity]
|
|
self:SetAtlasSprite(self._mapNode.imgRare, "12_rare", sPath)
|
|
local bLimit = mapCfg.Stock > 0
|
|
if bLimit then
|
|
NovaAPI.SetTMPText(self._mapNode.txtLeft, orderedFormat(ConfigTable.GetUIText("Shop_Left"), mapData.nCurStock))
|
|
else
|
|
NovaAPI.SetTMPText(self._mapNode.txtLeft, orderedFormat(ConfigTable.GetUIText("Shop_Left"), ConfigTable.GetUIText("Shop_Unlimited")))
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtCount, orderedFormat(ConfigTable.GetUIText("Shop_GoodsItem_Count"), mapCfg.ItemQty))
|
|
end
|
|
function MallShopItemCtrl:RefreshPrice(mapCfg)
|
|
self:SetSprite_Coin(self._mapNode.imgCoin, mapCfg.ExchangeItemId)
|
|
NovaAPI.SetTMPText(self._mapNode.txtPrice, mapCfg.ExchangeItemQty)
|
|
end
|
|
function MallShopItemCtrl:RefreshTime(mapData)
|
|
self._mapNode.imgTime:SetActive(mapData.bPrioritizeDeList)
|
|
if not mapData.bPrioritizeDeList then
|
|
return
|
|
end
|
|
local sTime
|
|
local nRemaining = mapData.nNextRefreshTime - CS.ClientManager.Instance.serverTimeStamp
|
|
if nRemaining <= 3600 and 0 < nRemaining then
|
|
sTime = ConfigTable.GetUIText("Shop_WithinHour")
|
|
elseif 3600 < nRemaining and nRemaining <= 86400 then
|
|
sTime = orderedFormat(ConfigTable.GetUIText("Shop_Hour") or "", math.floor(nRemaining / 3600))
|
|
elseif 86400 < nRemaining then
|
|
sTime = orderedFormat(ConfigTable.GetUIText("Shop_Day") or "", math.floor(nRemaining / 86400))
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtLeftTime, sTime)
|
|
end
|
|
function MallShopItemCtrl:RefreshLimit(mapCfg, mapData)
|
|
local tbCond = decodeJson(mapCfg.OrderCondParams)
|
|
local bPurchaseAble = PlayerData.Shop:CheckShopCond(mapCfg.OrderCondType, tbCond)
|
|
self._mapNode.imgMask:SetActive(mapData.nCurStock == 0 or not bPurchaseAble)
|
|
if mapData.nCurStock == 0 then
|
|
self._mapNode.goRestock:SetActive(true)
|
|
self._mapNode.goCondition:SetActive(false)
|
|
return
|
|
end
|
|
self._mapNode.goRestock:SetActive(false)
|
|
self._mapNode.goCondition:SetActive(true)
|
|
if not bPurchaseAble then
|
|
local sCond = ""
|
|
if mapCfg.OrderCondType == GameEnum.shopCond.WorldClassSpecific then
|
|
sCond = orderedFormat(ConfigTable.GetUIText("Mall_Cond_WorldClass") or "", tbCond[1])
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtCondition, sCond)
|
|
end
|
|
end
|
|
function MallShopItemCtrl:Awake()
|
|
end
|
|
function MallShopItemCtrl:OnEnable()
|
|
end
|
|
function MallShopItemCtrl:OnDisable()
|
|
end
|
|
function MallShopItemCtrl:OnDestroy()
|
|
end
|
|
return MallShopItemCtrl
|