164 lines
No EOL
5.8 KiB
Lua
164 lines
No EOL
5.8 KiB
Lua
local XUiRogueLikeBuffStrengthen = XLuaUiManager.Register(XLuaUi, "UiRogueLikeBuffStrengthen")
|
|
local XUiGridBuffDetailItem = require("XUi/XUiFubenRogueLike/XUiGridBuffDetailItem")
|
|
|
|
function XUiRogueLikeBuffStrengthen:OnAwake()
|
|
self.BtnClose.CallBack = function() self:OnBtnCloseClick() end
|
|
self.BtnTanchuangClose.CallBack = function() self:OnBtnTanchuangCloseClick() end
|
|
self.BtnCancel.CallBack = function() self:OnBtnCancelClick() end
|
|
self.BtnConfirm.CallBack = function() self:OnBtnConfirmClick() end
|
|
|
|
self.RogueLikeActivityAsset = XUiPanelAsset.New(self, self.PanelActivityAsset, XFubenRogueLikeConfig.ChallengeCoin, XFubenRogueLikeConfig.PumpkinCoin, XFubenRogueLikeConfig.KeepsakeCoin)
|
|
|
|
self.BtnLvUpClose.CallBack = function() self:OnBtnLvUpCloseClick() end
|
|
self.DynamicTable = XDynamicTableNormal.New(self.PanelSelectList.gameObject)
|
|
self.DynamicTable:SetProxy(XUiGridBuffDetailItem)
|
|
self.DynamicTable:SetDelegate(self)
|
|
|
|
self.TxtBuy.gameObject:SetActiveEx(false)
|
|
end
|
|
|
|
--动态列表事件
|
|
function XUiRogueLikeBuffStrengthen:OnDynamicTableEvent(event, index, grid)
|
|
|
|
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
|
|
local data = self.Buffs[index]
|
|
if not data then
|
|
return
|
|
end
|
|
grid.RootUi = self
|
|
grid:SetBuffInfo(data)
|
|
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
|
|
for i = 1, #self.Buffs do
|
|
self.Buffs[i].IsSelect = index == i
|
|
local lastGrid = self.DynamicTable:GetGridByIndex(i)
|
|
if lastGrid then
|
|
lastGrid:SetSelected(index == i)
|
|
end
|
|
end
|
|
self.CurrentIndex = index
|
|
self:UpdateConstSupportPoint()
|
|
end
|
|
|
|
end
|
|
|
|
function XUiRogueLikeBuffStrengthen:UpdateConstSupportPoint()
|
|
if not self.CurrentIndex then
|
|
self.TxtBuy.gameObject:SetActiveEx(false)
|
|
return
|
|
end
|
|
local data = self.Buffs[self.CurrentIndex]
|
|
local constId = XFubenRogueLikeConfig.GetBuffConstItemIdById(data.BuffId)
|
|
local itemCount = XDataCenter.ItemManager.GetCount(constId)
|
|
local constCount = XFubenRogueLikeConfig.GetBuffConstItemCountById(data.BuffId)
|
|
if not constId or constId == 0 or not constCount or constCount == 0 then
|
|
self.TxtBuy.gameObject:SetActiveEx(false)
|
|
else
|
|
self.TxtBuy.gameObject:SetActiveEx(true)
|
|
if itemCount < constCount then
|
|
self.TxtBuy.text = string.format("<color=#FF3300FF>%s</color>",constCount)
|
|
else
|
|
self.TxtBuy.text = constCount
|
|
end
|
|
|
|
self.RImgMoney:SetRawImage(XItemConfigs.GetItemIconById(constId))
|
|
end
|
|
end
|
|
|
|
function XUiRogueLikeBuffStrengthen:OnStart(node)
|
|
self.Node = node
|
|
local myBuffs = XDataCenter.FubenRogueLikeManager.GetMyBuffs()
|
|
self.Buffs = {}
|
|
for _, v in pairs(myBuffs) do
|
|
if not XFubenRogueLikeConfig.IsBuffMaxLevel(v.BuffId) then
|
|
table.insert(self.Buffs, v)
|
|
end
|
|
end
|
|
|
|
self.DynamicTable:SetDataSource(self.Buffs)
|
|
self.DynamicTable:ReloadDataASync()
|
|
self.ImgEmpty.gameObject:SetActiveEx(#self.Buffs <= 0)
|
|
|
|
XEventManager.AddEventListener(XEventId.EVENT_ROGUELIKE_BUFFIDS_CHANGES, self.UpdateBuffList, self)
|
|
end
|
|
|
|
|
|
function XUiRogueLikeBuffStrengthen:OnDestroy()
|
|
XEventManager.RemoveEventListener(XEventId.EVENT_ROGUELIKE_BUFFIDS_CHANGES, self.UpdateBuffList, self)
|
|
end
|
|
|
|
function XUiRogueLikeBuffStrengthen:UpdateBuffList()
|
|
local myBuffs = XDataCenter.FubenRogueLikeManager.GetMyBuffs()
|
|
self.Buffs = {}
|
|
for _, v in pairs(myBuffs) do
|
|
if not XFubenRogueLikeConfig.IsBuffMaxLevel(v.BuffId) then
|
|
table.insert(self.Buffs, v)
|
|
end
|
|
end
|
|
|
|
self.DynamicTable:SetDataSource(self.Buffs)
|
|
self.DynamicTable:ReloadDataASync()
|
|
self.ImgEmpty.gameObject:SetActiveEx(#self.Buffs <= 0)
|
|
|
|
self.CurrentIndex = nil
|
|
self:UpdateConstSupportPoint()
|
|
end
|
|
|
|
function XUiRogueLikeBuffStrengthen:OnBtnCloseClick()
|
|
self:Close()
|
|
end
|
|
|
|
function XUiRogueLikeBuffStrengthen:OnBtnTanchuangCloseClick()
|
|
self:Close()
|
|
end
|
|
|
|
function XUiRogueLikeBuffStrengthen:OnBtnCancelClick()
|
|
self:Close()
|
|
end
|
|
|
|
function XUiRogueLikeBuffStrengthen:OnBtnConfirmClick()
|
|
if not self.CurrentIndex then
|
|
XUiManager.TipMsg(CS.XTextManager.GetText("RogueLikeSelectABuff"))
|
|
return
|
|
end
|
|
if self.Node and self.CurrentIndex then
|
|
local data = self.Buffs[self.CurrentIndex]
|
|
XDataCenter.FubenRogueLikeManager.IntensifyBuff(self.Node.Id, data.BuffId, function()
|
|
-- 刷新,弹窗
|
|
self:ShowBuffLevelUp(data.BuffId)
|
|
end)
|
|
end
|
|
end
|
|
|
|
function XUiRogueLikeBuffStrengthen:ShowBuffLevelUp(buffId)
|
|
local buffTemplate = XFubenRogueLikeConfig.GetBuffTemplateById(buffId)
|
|
local intensifyTemplate = XFubenRogueLikeConfig.GetBuffTemplateById(buffTemplate.IntensifyId)
|
|
local buffConfig = XFubenRogueLikeConfig.GetBuffConfigById(buffId)
|
|
local intensifyConfig = XFubenRogueLikeConfig.GetBuffConfigById(buffTemplate.IntensifyId)
|
|
|
|
if not intensifyTemplate then
|
|
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetBuffConfigById",
|
|
"RogueLikeBuffDetails", "Client/Fuben/RogueLike/RogueLikeBuffDetails.tab", "Id", tostring(buffId))
|
|
self:OnBtnLvUpCloseClick()
|
|
return
|
|
end
|
|
|
|
self:PlayAnimation("PanelBuffLvUpEnable", function()
|
|
XLuaUiManager.SetMask(false)
|
|
end,
|
|
function()
|
|
XLuaUiManager.SetMask(true)
|
|
end)
|
|
|
|
self.RImgLeftBuffIcon:SetRawImage(buffConfig.Icon)
|
|
self.TxtLeftBuffDetails.text = buffConfig.Description
|
|
self.RImgRightBuffIcon:SetRawImage(intensifyConfig.Icon)
|
|
self.TxtRightBuffDetails.text = intensifyConfig.Description
|
|
self.PanelBuffLvUp.gameObject:SetActiveEx(true)
|
|
|
|
|
|
end
|
|
|
|
function XUiRogueLikeBuffStrengthen:OnBtnLvUpCloseClick()
|
|
self.PanelBuffLvUp.gameObject:SetActiveEx(false)
|
|
--self:Close()
|
|
end |