PGRData/Script/matrix/xui/xuipurchase/XUiPurchaseYKList.lua

89 lines
No EOL
3.4 KiB
Lua

local XUiPurchaseYKListItem = XClass(nil, "XUiPurchaseYKListItem")
function XUiPurchaseYKListItem:Ctor(ui, notEnoughCb)
XUiHelper.InitUiClass(self, ui)
self.PurchaseManager = XDataCenter.PurchaseManager
self.PurchasePackage = nil
self.NotEnoughCb = notEnoughCb
self.FinishedFunc = nil
self.YKUiItemConfig = nil
XUiHelper.RegisterClickEvent(self, self.BtnHelp, self.OnBtnHelpClicked)
XUiHelper.RegisterClickEvent(self, self.BtnBuy, self.OnBtnBuyClicked)
end
-- data : XPurchasePackage
function XUiPurchaseYKListItem:SetData(data, finishedFunc)
self.PurchasePackage = data
self.FinishedFunc = finishedFunc
self.YKUiItemConfig = XPurchaseConfigs.GetPurchasePackageYKUiConfig(data:GetId())
self.TxtTimeTip.text = XUiHelper.GetText("PurchaseYKTimeTip", data:GetDailyRewardRemainDay())
self.TxtTimeTip.gameObject:SetActiveEx(data:GetId() == XPurchaseConfigs.YKID)
self.TxtCountLimit.text = XUiHelper.GetText("PurchaseYKLimitCountTip", data:GetCurrentBuyTime(), data:GetBuyLimitTime())
local tips = self.YKUiItemConfig.Tips
self.TxtTip1.text = tips[1]
self.TxtTip2.text = tips[2]
self.RImgIcon:SetRawImage(self.YKUiItemConfig.Icon)
-- 消耗数量和图标
self.BtnBuy:SetNameByGroup(0, data:GetConsumeCount())
self.BtnBuy:SetRawImage(XEntityHelper.GetItemIcon(data:GetConsumeId()))
self.BtnHelp.gameObject:SetActiveEx(not string.IsNilOrEmpty(self.YKUiItemConfig.HelpKey))
end
function XUiPurchaseYKListItem:OnBtnHelpClicked()
XUiManager.ShowHelpTip(self.YKUiItemConfig.HelpKey)
end
function XUiPurchaseYKListItem:OnBtnBuyClicked()
local buyFnishedFunc = function()
if self.PurchasePackage:GetId() == XPurchaseConfigs.YKID then
-- 设置月卡信息本地缓存
XDataCenter.PurchaseManager.SetYKLocalCache()
end
if self.FinishedFunc then
self.FinishedFunc()
end
end
local notEnoughCb = function()
if self.NotEnoughCb then
self.NotEnoughCb(XPurchaseConfigs.TabsConfig.Pay)
end
end
self.PurchaseManager.OpenPurchaseBuyUiByPurchasePackage(self.PurchasePackage, notEnoughCb, nil, buyFnishedFunc)
end
--######################## XUiPurchaseYKList ########################
local XUiPurchaseYKList = XClass(nil, "XUiPurchaseYKList")
function XUiPurchaseYKList:Ctor(ui, uiRoot, notEnoughCb)
XUiHelper.InitUiClass(self, ui)
self.NotEnoughCb = notEnoughCb
self.PurchaseManager = XDataCenter.PurchaseManager
end
function XUiPurchaseYKList:OnRefresh(uiType)
self:ShowPanel()
local datas = self.PurchaseManager.GetYKTabPurchasePackages()
table.sort(datas, function(aData, bData)
local aWeight = XPurchaseConfigs.GetPurchasePackageYKUiConfig(aData:GetId()).SortWeight
local bWeight = XPurchaseConfigs.GetPurchasePackageYKUiConfig(bData:GetId()).SortWeight
return aWeight > bWeight
end)
self.PurchaseManager.SetYKContinueBuy()
-- 月卡列表
XUiHelper.RefreshCustomizedList(self.PanelContent, self.PanelYKItem, #datas, function(index, child)
local item = XUiPurchaseYKListItem.New(child, self.NotEnoughCb)
item:SetData(datas[index], function()
self:OnRefresh()
end)
end)
end
function XUiPurchaseYKList:ShowPanel()
self.GameObject:SetActiveEx(true)
end
function XUiPurchaseYKList:HidePanel()
self.GameObject:SetActiveEx(false)
end
return XUiPurchaseYKList