589 lines
No EOL
22 KiB
Lua
589 lines
No EOL
22 KiB
Lua
local CSUnityEngineObjectInstantiate = CS.UnityEngine.Object.Instantiate
|
||
|
||
local DECOMPOSE_PARTNER_QUALITY = 2 --超过(包含)这个品质的伙伴分解时需要二次确认
|
||
local DECOMPOSE_SECOND_CHECK_EQUIP_STAR = 4 --超过(包含)这个星星的装备分解时需要二次确认
|
||
local RECYCLE_SECOND_CHECK_EQUIP_STAR = 5 --超过(包含)这个星星的装备回收时需要二次确认
|
||
local SECOND_CHECK_ITEM_QUALITY = 5 --超过(包含)这个品质的物品出售时需要二次确认
|
||
local TOG_INDEX_TO_STAR_CHECK_DIC = {
|
||
[1] = {
|
||
[1] = true,
|
||
[2] = true,
|
||
[3] = true,
|
||
},
|
||
[2] = {
|
||
[4] = true,
|
||
},
|
||
[3] = {
|
||
[5] = true,
|
||
},
|
||
}
|
||
|
||
local XUiPanelSidePopUp = XClass(nil, "XUiPanelSidePopUp")
|
||
|
||
function XUiPanelSidePopUp:Ctor(ui, parent)
|
||
self.GameObject = ui.gameObject
|
||
self.Transform = ui.transform
|
||
self.Parent = parent
|
||
self.SelectCount = 0
|
||
|
||
XTool.InitUiObject(self)
|
||
self:AutoAddListener()
|
||
self:InitDynamicTable()
|
||
|
||
self.GridCommonPopUp.gameObject:SetActiveEx(false)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:InitDynamicTable()
|
||
self.DynamicTable = XDynamicTableNormal.New(self.PanelDynamicTablePopUp)
|
||
self.DynamicTable:SetProxy(XUiGridCommon)
|
||
self.DynamicTable:SetDelegate(self)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:UpdateDynamicTable(bReload)
|
||
self.DynamicTable:SetDataSource(self.Rewards)
|
||
self.DynamicTable:ReloadDataASync(bReload and 1 or -1)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnDynamicTableEvent(event, index, grid)
|
||
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
|
||
grid:Init(self.Parent)
|
||
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
|
||
grid:Refresh(self.Rewards[index])
|
||
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
|
||
XLuaUiManager.Open("UiTip", self.Rewards[index])
|
||
end
|
||
end
|
||
|
||
function XUiPanelSidePopUp:Refresh()
|
||
if self.Parent.Operation == self.Parent.OperationType.Common then
|
||
self.Parent:PlayAnimation("AnimChuShouDisable", function()
|
||
self.CurState = false
|
||
self.GameObject:SetActiveEx(false)
|
||
end)
|
||
else
|
||
if self.Parent.Operation == self.Parent.OperationType.Decomposion then
|
||
self.PanelNumBtn.gameObject:SetActiveEx(false)
|
||
self.PanelSellPopUp.gameObject:SetActiveEx(false)
|
||
self.PanelConvertPopUp.gameObject:SetActiveEx(false)
|
||
self.TxtTitle.text = CS.XTextManager.GetText("DecomposeTitle")
|
||
self.PanelRecycle.gameObject:SetActiveEx(false)
|
||
self.PanelDecomposionPopUp.gameObject:SetActiveEx(true)
|
||
self.PanelFilterPopUp.gameObject:SetActiveEx(true)
|
||
self.PanelSelectNum.gameObject:SetActiveEx(true)
|
||
self.PanelSelectNum2.gameObject:SetActiveEx(false)
|
||
|
||
--再次打开侧边栏时toggle清空选中状态
|
||
for i = 1, #TOG_INDEX_TO_STAR_CHECK_DIC do
|
||
self["TogStar" .. i .. "PopUp"].isOn = false
|
||
end
|
||
|
||
self:RefreshDecomposionPreView(self.Parent.SelectList)
|
||
elseif self.Parent.Operation == self.Parent.OperationType.PartnerDecomposion then
|
||
self.PanelNumBtn.gameObject:SetActiveEx(false)
|
||
self.PanelSellPopUp.gameObject:SetActiveEx(false)
|
||
self.PanelConvertPopUp.gameObject:SetActiveEx(false)
|
||
self.TxtTitle.text = CS.XTextManager.GetText("DecomposeTitle")
|
||
self.PanelRecycle.gameObject:SetActiveEx(false)
|
||
self.PanelDecomposionPopUp.gameObject:SetActiveEx(true)
|
||
self.PanelFilterPopUp.gameObject:SetActiveEx(false)
|
||
self.PanelSelectNum.gameObject:SetActiveEx(true)
|
||
self.PanelSelectNum2.gameObject:SetActiveEx(false)
|
||
|
||
self:RefreshPartnerDecomposionPreView(self.Parent.SelectList)
|
||
elseif self.Parent.Operation == self.Parent.OperationType.Recycle then
|
||
self:CheckFirstOpenHelp()
|
||
self.PanelNumBtn.gameObject:SetActiveEx(false)
|
||
self.PanelSellPopUp.gameObject:SetActiveEx(false)
|
||
self.PanelConvertPopUp.gameObject:SetActiveEx(false)
|
||
self.TxtTitle.text = CS.XTextManager.GetText("RecycleTitle")
|
||
self.PanelDecomposionPopUp.gameObject:SetActiveEx(false)
|
||
self.PanelRecycle.gameObject:SetActiveEx(true)
|
||
self.PanelFilterPopUp.gameObject:SetActiveEx(true)
|
||
self.PanelSelectNum.gameObject:SetActiveEx(false)
|
||
self.PanelSelectNum2.gameObject:SetActiveEx(true)
|
||
|
||
--再次打开侧边栏时toggle清空选中状态
|
||
for i = 1, #TOG_INDEX_TO_STAR_CHECK_DIC do
|
||
self["TogStar" .. i .. "PopUp"].isOn = false
|
||
end
|
||
|
||
self:RefreshRecyclePreView(self.Parent.SelectList)
|
||
else
|
||
if self.Parent.Operation == self.Parent.OperationType.Sell then
|
||
self.PanelConvertPopUp.gameObject:SetActiveEx(false)
|
||
self.TxtTitle.text = CS.XTextManager.GetText("SellTitle")
|
||
self.PanelSellPopUp.gameObject:SetActiveEx(true)
|
||
self.PanelNumBtn.gameObject:SetActiveEx(true)
|
||
self.PanelSelectNum.gameObject:SetActiveEx(false)
|
||
self:RefreshSellPreView()
|
||
elseif self.Parent.Operation == self.Parent.OperationType.Convert then
|
||
self.PanelSellPopUp.gameObject:SetActiveEx(false)
|
||
self.TxtTitle.text = CS.XTextManager.GetText("ConverseTitle")
|
||
self.PanelConvertPopUp.gameObject:SetActiveEx(true)
|
||
self.PanelNumBtn.gameObject:SetActiveEx(false)
|
||
self.PanelSelectNum.gameObject:SetActiveEx(true)
|
||
self:RefreshConvertPreView(self.Parent.SelectList, 0)
|
||
end
|
||
self.PanelDecomposionPopUp.gameObject:SetActiveEx(false)
|
||
self.PanelRecycle.gameObject:SetActiveEx(false)
|
||
self.PanelFilterPopUp.gameObject:SetActiveEx(false)
|
||
self.PanelSelectNum2.gameObject:SetActiveEx(false)
|
||
end
|
||
self.GameObject:SetActiveEx(true)
|
||
self.CurState = true
|
||
self.Parent:PlayAnimation("AnimChuShouEnable")
|
||
end
|
||
end
|
||
|
||
function XUiPanelSidePopUp:RefreshDecomposionPreView(selectEquipIds, cancelStar)
|
||
self.SelectEquipIds = {}
|
||
if selectEquipIds then
|
||
for _, equipId in pairs(selectEquipIds) do
|
||
table.insert(self.SelectEquipIds, equipId)
|
||
end
|
||
end
|
||
|
||
self.TxtSelectNum.text = #self.SelectEquipIds
|
||
|
||
local listEmpty = not next(self.SelectEquipIds)
|
||
self.ImgCantDecomposionPopUp.gameObject:SetActiveEx(listEmpty)
|
||
self.BtnDecomposionPopUp.gameObject:SetActiveEx(not listEmpty)
|
||
|
||
self.Rewards = XDataCenter.EquipManager.GetDecomposeRewards(self.SelectEquipIds)
|
||
if #self.Rewards == 1 then
|
||
if not self.SingleItemGrid then
|
||
local ui = CSUnityEngineObjectInstantiate(self.GridCommonPopUp, self.Transform)
|
||
self.SingleItemGrid = XUiGridCommon.New(self.Parent, ui)
|
||
end
|
||
|
||
self.SingleItemGrid:Refresh(self.Rewards[1])
|
||
self.SingleItemGrid.GameObject:SetActiveEx(true)
|
||
self.PanelDynamicTablePopUp.gameObject:SetActiveEx(false)
|
||
|
||
CsXUiHelper.RegisterClickEvent(self.SingleItemGrid.RImgIcon, function()
|
||
XLuaUiManager.Open("UiTip", self.Rewards[1])
|
||
end, true)
|
||
else
|
||
self:UpdateDynamicTable()
|
||
|
||
if self.SingleItemGrid then
|
||
self.SingleItemGrid.GameObject:SetActiveEx(false)
|
||
end
|
||
self.PanelDynamicTablePopUp.gameObject:SetActiveEx(true)
|
||
end
|
||
|
||
--取消选中时星星筛选tog状态置false
|
||
if cancelStar then
|
||
for togIndex, starCheckTable in pairs(TOG_INDEX_TO_STAR_CHECK_DIC) do
|
||
if starCheckTable[cancelStar] then
|
||
local tog = self["TogStar" .. togIndex .. "PopUp"]
|
||
if tog then
|
||
tog.isOn = false
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
end
|
||
|
||
function XUiPanelSidePopUp:RefreshPartnerDecomposionPreView(selectPartner)
|
||
self.SelectPartnerList = {}
|
||
if selectPartner then
|
||
for _, partner in pairs(selectPartner) do
|
||
table.insert(self.SelectPartnerList, partner)
|
||
end
|
||
end
|
||
|
||
self.TxtSelectNum.text = #self.SelectPartnerList
|
||
|
||
local listEmpty = not next(self.SelectPartnerList)
|
||
self.ImgCantDecomposionPopUp.gameObject:SetActiveEx(listEmpty)
|
||
self.BtnDecomposionPopUp.gameObject:SetActiveEx(not listEmpty)
|
||
|
||
self.Rewards = XDataCenter.PartnerManager.GetPartnerDecomposeRewards(self.SelectPartnerList)
|
||
if #self.Rewards == 1 then
|
||
if not self.SingleItemGrid then
|
||
local ui = CSUnityEngineObjectInstantiate(self.GridCommonPopUp, self.Transform)
|
||
self.SingleItemGrid = XUiGridCommon.New(self.Parent, ui)
|
||
end
|
||
|
||
self.SingleItemGrid:Refresh(self.Rewards[1])
|
||
self.SingleItemGrid.GameObject:SetActiveEx(true)
|
||
self.PanelDynamicTablePopUp.gameObject:SetActiveEx(false)
|
||
|
||
CsXUiHelper.RegisterClickEvent(self.SingleItemGrid.RImgIcon, function()
|
||
XLuaUiManager.Open("UiTip", self.Rewards[1])
|
||
end, true)
|
||
else
|
||
self:UpdateDynamicTable()
|
||
|
||
if self.SingleItemGrid then
|
||
self.SingleItemGrid.GameObject:SetActiveEx(false)
|
||
end
|
||
self.PanelDynamicTablePopUp.gameObject:SetActiveEx(true)
|
||
end
|
||
end
|
||
|
||
function XUiPanelSidePopUp:RefreshRecyclePreView(selectEquipIds, cancelStar)
|
||
self.SelectEquipIds = {}
|
||
if selectEquipIds then
|
||
for _, equipId in pairs(selectEquipIds) do
|
||
table.insert(self.SelectEquipIds, equipId)
|
||
end
|
||
end
|
||
|
||
self.TxtSelectNum2.text = #self.SelectEquipIds
|
||
|
||
local listEmpty = not next(self.SelectEquipIds)
|
||
self.ImgCantRecycle.gameObject:SetActiveEx(listEmpty)
|
||
self.BtnRecycle.gameObject:SetActiveEx(not listEmpty)
|
||
|
||
self.Rewards = XDataCenter.EquipManager.GetRecycleRewards(self.SelectEquipIds)
|
||
if #self.Rewards == 1 then
|
||
if not self.SingleItemGrid then
|
||
local ui = CSUnityEngineObjectInstantiate(self.GridCommonPopUp, self.Transform)
|
||
self.SingleItemGrid = XUiGridCommon.New(self.Parent, ui)
|
||
end
|
||
|
||
self.SingleItemGrid:Refresh(self.Rewards[1])
|
||
self.SingleItemGrid.GameObject:SetActiveEx(true)
|
||
self.PanelDynamicTablePopUp.gameObject:SetActiveEx(false)
|
||
|
||
CsXUiHelper.RegisterClickEvent(self.SingleItemGrid.RImgIcon, function()
|
||
XLuaUiManager.Open("UiTip", self.Rewards[1])
|
||
end, true)
|
||
|
||
else
|
||
self:UpdateDynamicTable()
|
||
|
||
if self.SingleItemGrid then
|
||
self.SingleItemGrid.GameObject:SetActiveEx(false)
|
||
end
|
||
self.PanelDynamicTablePopUp.gameObject:SetActiveEx(true)
|
||
end
|
||
|
||
--取消选中时星星筛选tog状态置false
|
||
if cancelStar then
|
||
for togIndex, starCheckTable in pairs(TOG_INDEX_TO_STAR_CHECK_DIC) do
|
||
if starCheckTable[cancelStar] then
|
||
local tog = self["TogStar" .. togIndex .. "PopUp"]
|
||
if tog then
|
||
tog.isOn = false
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
end
|
||
|
||
function XUiPanelSidePopUp:RefreshConvertPreView(selectFragmentIds, count)
|
||
self.SelectFragmentIdAndCount = {}
|
||
count = count or 0
|
||
self.FragmentCount = self.FragmentCount and self.FragmentCount + count or count
|
||
if selectFragmentIds then
|
||
for fragmentId, count in pairs(selectFragmentIds) do
|
||
self.SelectFragmentIdAndCount[fragmentId] = count
|
||
end
|
||
end
|
||
|
||
self.TxtSelectNum.text = self.FragmentCount
|
||
|
||
local isEmpty = not next(self.SelectFragmentIdAndCount)
|
||
self.ImgCantConvertPopUp.gameObject:SetActiveEx(isEmpty)
|
||
self.BtnConvertPopUp.gameObject:SetActiveEx(not isEmpty)
|
||
|
||
self.Rewards = XDataCenter.ItemManager.GetSellRewards(self.SelectFragmentIdAndCount)
|
||
if #self.Rewards == 1 then
|
||
if not self.SingleItemGrid then
|
||
local ui = CSUnityEngineObjectInstantiate(self.GridCommonPopUp, self.Transform)
|
||
self.SingleItemGrid = XUiGridCommon.New(self.Parent, ui)
|
||
end
|
||
|
||
self.SingleItemGrid:Refresh(self.Rewards[1])
|
||
self.SingleItemGrid.GameObject:SetActiveEx(true)
|
||
self.PanelDynamicTablePopUp.gameObject:SetActiveEx(false)
|
||
|
||
CsXUiHelper.RegisterClickEvent(self.SingleItemGrid.RImgIcon, function()
|
||
XLuaUiManager.Open("UiTip", self.Rewards[1])
|
||
end, true)
|
||
|
||
else
|
||
self:UpdateDynamicTable()
|
||
|
||
if self.SingleItemGrid then
|
||
self.SingleItemGrid.GameObject:SetActiveEx(false)
|
||
end
|
||
self.PanelDynamicTablePopUp.gameObject:SetActiveEx(true)
|
||
end
|
||
|
||
end
|
||
|
||
function XUiPanelSidePopUp:ClearData()
|
||
self.SelectItemId = nil
|
||
self.SelectCount = nil
|
||
self.SelectGrid = nil
|
||
self.FragmentCount = nil
|
||
end
|
||
|
||
function XUiPanelSidePopUp:RefreshSellPreView(selectItemId, count, selectGrid)
|
||
self.SelectItemId = selectItemId or self.SelectItemId
|
||
self.SelectCount = count or self.SelectCount
|
||
self.SelectGrid = selectGrid or self.SelectGrid
|
||
self.GridMaxCount = self.SelectGrid and self.SelectGrid:GetGridCount() or self.GridMaxCount
|
||
|
||
local cantSell = not self.SelectItemId or not self.SelectCount or self.SelectCount == 0
|
||
if self.Parent.Operation == self.Parent.OperationType.Sell then
|
||
self.BtnSellPopUp.gameObject:SetActiveEx(not cantSell)
|
||
self.ImgCantSellPopUp.gameObject:SetActiveEx(cantSell)
|
||
elseif self.Parent.Operation == self.Parent.OperationType.Convert then
|
||
self.BtnConvertPopUp.gameObject:SetActiveEx(not cantSell)
|
||
self.ImgCantConvertPopUp.gameObject:SetActiveEx(cantSell)
|
||
end
|
||
self.TxtNum.text = self.SelectCount
|
||
|
||
local showSub = self.SelectCount ~= 0
|
||
self.BtnSub.gameObject:SetActiveEx(showSub)
|
||
self.ImgCantSub.gameObject:SetActiveEx(not showSub)
|
||
|
||
local showAdd = self.SelectItemId and (not self.GridMaxCount or self.SelectCount ~= self.GridMaxCount)
|
||
self.BtnAdd.gameObject:SetActiveEx(showAdd)
|
||
self.ImgCantAdd.gameObject:SetActiveEx(not showAdd)
|
||
|
||
local reward = XDataCenter.ItemManager.GetSellReward(self.SelectItemId, self.SelectCount)
|
||
if not next(reward) then
|
||
if self.SingleItemGrid then
|
||
self.SingleItemGrid.GameObject:SetActiveEx(false)
|
||
end
|
||
else
|
||
if not self.SingleItemGrid then
|
||
local ui = CSUnityEngineObjectInstantiate(self.GridCommonPopUp, self.Transform)
|
||
self.SingleItemGrid = XUiGridCommon.New(self.Parent, ui)
|
||
end
|
||
self.SingleItemGrid:Refresh(reward)
|
||
self.SingleItemGrid.GameObject:SetActiveEx(true)
|
||
end
|
||
self.PanelDynamicTablePopUp.gameObject:SetActiveEx(false)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:RegisterClickEvent(uiNode, func)
|
||
if func == nil then
|
||
XLog.Error("XUiPanelSidePopUp:RegisterClickEvent函数参数错误:参数func不能为空")
|
||
return
|
||
end
|
||
|
||
if type(func) ~= "function" then
|
||
XLog.Error("XUiPanelSidePopUp:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
|
||
end
|
||
|
||
local listener = function(...)
|
||
func(self, ...)
|
||
end
|
||
|
||
CsXUiHelper.RegisterClickEvent(uiNode, listener)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:AutoAddListener()
|
||
self:RegisterClickEvent(self.TogStar1PopUp, self.OnTogStar1PopUpClick)
|
||
self:RegisterClickEvent(self.TogStar2PopUp, self.OnTogStar2PopUpClick)
|
||
self:RegisterClickEvent(self.TogStar3PopUp, self.OnTogStar3PopUpClick)
|
||
self:RegisterClickEvent(self.BtnSub, self.OnBtnSubClick)
|
||
self:RegisterClickEvent(self.BtnAdd, self.OnBtnAddClick)
|
||
self:RegisterClickEvent(self.BtnMax, self.OnBtnMaxClick)
|
||
self:RegisterClickEvent(self.BtnSellPopUp, self.OnBtnSellPopUpClick)
|
||
self:RegisterClickEvent(self.BtnDecomposionPopUp, self.OnBtnDecomposionPopUpClick)
|
||
self:RegisterClickEvent(self.BtnRecycle, self.OnBtnRecycleClick)
|
||
self:RegisterClickEvent(self.BtnRecycleSet, self.OnBtnRecycleSetClick)
|
||
self:RegisterClickEvent(self.BtnConvertPopUp, self.OnBtnConvertPopUpClick)
|
||
self:RegisterClickEvent(self.BtnCha, self.OnBtnChaClick)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnBtnSubClick()
|
||
if not self.SelectCount then return end
|
||
self:RefreshSellPreView(self.SelectItemId, self.SelectCount - 1)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnBtnAddClick()
|
||
if not self.SelectCount then return end
|
||
self:RefreshSellPreView(self.SelectItemId, self.SelectCount + 1)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnBtnMaxClick()
|
||
if not self.SelectItemId then return end
|
||
self:RefreshSellPreView(self.SelectItemId, self.SelectGrid:GetGridCount())
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnTogStar1PopUpClick()
|
||
self.Parent:SelectByStar(TOG_INDEX_TO_STAR_CHECK_DIC[1], self.TogStar1PopUp.isOn, true)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnTogStar2PopUpClick()
|
||
self.Parent:SelectByStar(TOG_INDEX_TO_STAR_CHECK_DIC[2], self.TogStar2PopUp.isOn, true)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnTogStar3PopUpClick()
|
||
self.Parent:SelectByStar(TOG_INDEX_TO_STAR_CHECK_DIC[3], self.TogStar3PopUp.isOn, true)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnBtnSellPopUpClick()
|
||
if not self.SelectItemId or not self.SelectCount or self.SelectCount == 0 then return end
|
||
|
||
local sellFunc = function()
|
||
local datas = {[self.SelectItemId] = self.SelectCount }
|
||
XDataCenter.ItemManager.Sell(datas, function(rewardGoodDic)
|
||
self.Parent:OperationTurn(self.Parent.OperationType.Sell)
|
||
|
||
local rewards = {}
|
||
for key, value in pairs(rewardGoodDic) do
|
||
table.insert(rewards, { TemplateId = key, Count = value })
|
||
end
|
||
XUiManager.OpenUiObtain(rewards)
|
||
end)
|
||
end
|
||
|
||
local quality = XDataCenter.ItemManager.GetItemQuality(self.SelectItemId)
|
||
if quality >= SECOND_CHECK_ITEM_QUALITY then
|
||
local title = CS.XTextManager.GetText("SellConfirmTitle")
|
||
local content = CS.XTextManager.GetText("SellConfirmTip")
|
||
|
||
XUiManager.DialogTip(title, content, XUiManager.DialogType.Normal, nil, function()
|
||
sellFunc()
|
||
end)
|
||
|
||
return
|
||
end
|
||
|
||
sellFunc()
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnBtnDecomposionPopUpClick()
|
||
if self.Parent.Operation == self.Parent.OperationType.PartnerDecomposion then
|
||
self:PartnerDecomposionPopUpClick()
|
||
else
|
||
self:EqualDecomposionPopUpClick()
|
||
end
|
||
end
|
||
|
||
function XUiPanelSidePopUp:EqualDecomposionPopUpClick()
|
||
local callFunc = function()
|
||
XDataCenter.EquipManager.EquipDecompose(self.SelectEquipIds, function(rewardGoodsList)
|
||
self.Parent:OperationTurn(self.Parent.OperationType.Decomposion)
|
||
if (#rewardGoodsList > 0) then
|
||
XUiManager.OpenUiObtain(rewardGoodsList)
|
||
end
|
||
end)
|
||
end
|
||
|
||
for _, equipId in pairs(self.SelectEquipIds) do
|
||
local equip = XDataCenter.EquipManager.GetEquip(equipId)
|
||
local star = XDataCenter.EquipManager.GetEquipStar(equip.TemplateId)
|
||
|
||
if star >= DECOMPOSE_SECOND_CHECK_EQUIP_STAR then
|
||
local title = CS.XTextManager.GetText("DecomposeConfirmTitle")
|
||
local content = CS.XTextManager.GetText("DecomposeConfirmTip")
|
||
|
||
XUiManager.DialogTip(title, content, XUiManager.DialogType.Normal, nil, function()
|
||
callFunc()
|
||
end)
|
||
|
||
return
|
||
end
|
||
end
|
||
|
||
callFunc()
|
||
end
|
||
|
||
function XUiPanelSidePopUp:PartnerDecomposionPopUpClick()
|
||
local IsNeedDialog = false
|
||
local idList = {}
|
||
|
||
for _, partner in pairs(self.SelectPartnerList or {}) do
|
||
if partner:GetQuality() >= DECOMPOSE_PARTNER_QUALITY then
|
||
IsNeedDialog = true
|
||
end
|
||
table.insert(idList, partner:GetId())
|
||
end
|
||
|
||
if IsNeedDialog then
|
||
local title = CS.XTextManager.GetText("DecomposePartnerConfirmTitle")
|
||
local content = CS.XTextManager.GetText("DecomposePartnerConfirmTip")
|
||
XUiManager.DialogTip(title, content, XUiManager.DialogType.Normal, nil, function()
|
||
XDataCenter.PartnerManager.PartnerDecomposeRequest(idList, function()
|
||
self.Parent:OperationTurn(self.Parent.OperationType.PartnerDecomposion)
|
||
end)
|
||
end)
|
||
end
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnBtnRecycleClick()
|
||
local callFunc = function()
|
||
XDataCenter.EquipManager.EquipChipRecycleRequest(self.SelectEquipIds, function(rewardGoodsList)
|
||
self.Parent:OperationTurn(self.Parent.OperationType.Recycle)
|
||
if (#rewardGoodsList > 0) then
|
||
XUiManager.OpenUiObtain(rewardGoodsList)
|
||
end
|
||
end)
|
||
end
|
||
|
||
for _, equipId in pairs(self.SelectEquipIds) do
|
||
local equip = XDataCenter.EquipManager.GetEquip(equipId)
|
||
local star = XDataCenter.EquipManager.GetEquipStar(equip.TemplateId)
|
||
|
||
if star >= RECYCLE_SECOND_CHECK_EQUIP_STAR then
|
||
local title = CS.XTextManager.GetText("EquipRecycleConfirmTitle")
|
||
local content = CS.XTextManager.GetText("EquipRecycleConfirmTip")
|
||
|
||
XUiManager.DialogTip(title, content, XUiManager.DialogType.Normal, nil, function()
|
||
callFunc()
|
||
end)
|
||
|
||
return
|
||
end
|
||
end
|
||
|
||
callFunc()
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnBtnRecycleSetClick()
|
||
XLuaUiManager.Open("UiRecyclingSettings")
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnBtnConvertPopUpClick()
|
||
local datas = {}
|
||
if self.Parent.Operation == self.Parent.OperationType.Sell then
|
||
if not self.SelectItemId or not self.SelectCount or self.SelectCount == 0 then return end
|
||
datas = {[self.SelectItemId] = self.SelectCount }
|
||
elseif self.Parent.Operation == self.Parent.OperationType.Convert then
|
||
if not self.SelectFragmentIdAndCount then return end
|
||
for itemId, count in pairs(self.SelectFragmentIdAndCount) do
|
||
datas[itemId] = count
|
||
end
|
||
end
|
||
XDataCenter.ItemManager.Sell(datas, function(rewardGoodDic)
|
||
self.Parent:OperationTurn(self.Parent.OperationType.Convert)
|
||
|
||
local rewards = {}
|
||
local rewardType = XRewardManager.XRewardType.Item -- 碎片分解的奖励类型都是item
|
||
for key, value in pairs(rewardGoodDic) do
|
||
table.insert(rewards, { TemplateId = key, RewardType = rewardType, Count = value })
|
||
end
|
||
XUiManager.OpenUiObtain(rewards)
|
||
end)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:OnBtnChaClick()
|
||
|
||
self.Parent:OperationTurn(self.Parent.OperationType.Common)
|
||
end
|
||
|
||
function XUiPanelSidePopUp:IsFirstOpen()
|
||
return XSaveTool.GetData(string.format("%d%s", XPlayer.Id, "IsAlreadyOpenPanelSidePopUp")) or false
|
||
end
|
||
|
||
function XUiPanelSidePopUp:CheckFirstOpenHelp()
|
||
if not XSaveTool.GetData(string.format("%d%s", XPlayer.Id, "IsAlreadyOpenPanelSidePopUp")) then
|
||
XUiManager.ShowHelpTip("UiBagHelp")
|
||
XSaveTool.SaveData(string.format("%d%s", XPlayer.Id, "IsAlreadyOpenPanelSidePopUp"), true)
|
||
end
|
||
end
|
||
|
||
return XUiPanelSidePopUp |