PGRData/Script/matrix/xui/xuipassport/uplevel/XUiPassportReward.lua

105 lines
No EOL
4.2 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local XUiPassportRewardGrid = require("XUi/XUiPassport/UpLevel/XUiPassportRewardGrid")
local CSXTextManagerGetText = CS.XTextManager.GetText
local tableInsert = table.insert
local XUiPassportReward = XLuaUiManager.Register(XLuaUi, "UiPassportReward")
function XUiPassportReward:OnAwake()
self:RegisterButtonEvent()
self.DynamicTable = XDynamicTableNormal.New(self.PanelEquipScroll.transform)
self.DynamicTable:SetProxy(XUiPassportRewardGrid)
self.DynamicTable:SetDelegate(self)
self.GridEquip.gameObject:SetActive(false)
end
--levelAfter购买后的等级
--spendBuyCount花费多少购买
--spendBuyExp购买多少经验
--buyCb购买成功回调
--levelIdList购买的等级Id列表
function XUiPassportReward:OnStart(levelAfter, spendBuyCount, spendBuyExp, buyCb, levelIdList)
self.LevelAfter = levelAfter
self.SpendBuyCount = spendBuyCount
self.BuyCallback = buyCb
local costItemId = XPassportConfigs.GetBuyLevelCostItemId()
local costItemIcon = XItemConfigs.GetItemIconById(costItemId)
self.RImgIconSpend:SetRawImage(costItemIcon)
self.TxtTips.text = CSXTextManagerGetText("PassportSpendBuyDesc", spendBuyCount)
local expItemIcon = XItemConfigs.GetItemIconById(XDataCenter.ItemManager.ItemId.PassportExp)
self.RImgIconBuy:SetRawImage(expItemIcon)
self.TxtBuy.text = CSXTextManagerGetText("PassportRewardTxtBuy", spendBuyExp, levelAfter)
self.DynamicData = {}
local level
local unLockPassportRewardIdList
local rewardData
for _, levelId in ipairs(levelIdList or {}) do
level = XPassportConfigs.GetPassportLevel(levelId)
unLockPassportRewardIdList = XPassportConfigs.GetUnLockPassportRewardIdListByLevel(level)
for _, passportRewardId in ipairs(unLockPassportRewardIdList) do
rewardData = XPassportConfigs.GetPassportRewardData(passportRewardId)
tableInsert(self.DynamicData, rewardData)
end
end
self.DynamicData = XRewardManager.MergeAndSortRewardGoodsList(self.DynamicData)
self.DynamicTable:SetDataSource(self.DynamicData)
self.DynamicTable:ReloadDataSync(1)
self:ShowSpecialRegulationForJP()
end
function XUiPassportReward:ShowSpecialRegulationForJP() --海外修改
local isShow = CS.XGame.ClientConfig:GetInt("ShowRegulationEnable")
if isShow and isShow == 1 then
local url = CS.XGame.ClientConfig:GetString("RegulationPrefabUrl")
if url then
local obj = self.PanelInfo:LoadPrefab(url)
local data = {type = 1,consumeId = 2}
self.ShowSpecialRegBtn = obj.transform:GetComponent("XHtmlText")
self.ShowSpecialRegBtn.text = CS.XTextManager.GetText("JPBusinessLawsDetailsEnter")
self.ShowSpecialRegBtn.HrefUnderLineColor = CS.UnityEngine.Color(1, 45 / 255, 45 / 255, 1)
self.ShowSpecialRegBtn.transform.localPosition = CS.UnityEngine.Vector3(-383.3, -344, 0)
self.ShowSpecialRegBtn.fontSize = 32
self.ShowSpecialRegBtn.HrefListener = function(link)
XLuaUiManager.Open("UiSpecialRegulationShow",data)
end
end
end
end
function XUiPassportReward:OnDynamicTableEvent(event, index, grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
grid:Init(self)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
local passportRewardId = self.DynamicData[index]
grid:Refresh(passportRewardId)
end
end
function XUiPassportReward:RegisterButtonEvent()
self:RegisterClickEvent(self.BtnCancel, self.Close)
self:RegisterClickEvent(self.BtnTanchuangClose, self.Close)
self:RegisterClickEvent(self.BtnConfirm, self.OnBtnConfirmClick)
end
function XUiPassportReward:OnBtnConfirmClick()
local costItemId = XPassportConfigs.GetBuyLevelCostItemId()
local haveItemCount = XDataCenter.ItemManager.GetCount(costItemId)
if haveItemCount < self.SpendBuyCount then
XUiManager.TipText("ShopItemPaidGemNotEnough")
XLuaUiManager.Open("UiPurchase", XPurchaseConfigs.TabsConfig.HK)
return
end
XDataCenter.PassportManager.RequestPassportBuyExp(self.LevelAfter, function()
self:Close()
if self.BuyCallback then
self.BuyCallback()
end
end)
end