145 lines
4.4 KiB
Lua
145 lines
4.4 KiB
Lua
----- 宝器分解弹窗 -----
|
|
local this = {}
|
|
--传入父脚本模块
|
|
local parent
|
|
--传入特效层级
|
|
local sortingOrder = 0
|
|
local _args = {}
|
|
--传入选择宝器计算返回奖励数据列表
|
|
local dropList = {}
|
|
--item容器
|
|
local itemList = {}
|
|
--传入选择英雄
|
|
local selectEquipTreasureData
|
|
local func
|
|
local count = 0
|
|
function this:SetCount(value)
|
|
count = value
|
|
this.slider.value = value
|
|
this.bodyText.text = string.format(Language[12290], count,
|
|
GetLanguageStrById(selectEquipTreasureData.itemConfig.Name))
|
|
this.numText.text = value
|
|
end
|
|
|
|
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
|
|
function this:InitComponent(gameObject)
|
|
this.spLoader = SpriteLoader.New()
|
|
this.titleText = Util.GetGameObject(gameObject, "TitleText"):GetComponent("Text")
|
|
this.bodyText = Util.GetGameObject(gameObject, "BodyText"):GetComponent("Text")
|
|
this.numText = Util.GetGameObject(gameObject, "numText"):GetComponent("Text")
|
|
this.confirmBtn = Util.GetGameObject(gameObject, "ConfirmBtn")
|
|
this.addBtn = Util.GetGameObject(gameObject, "add")
|
|
this.reduceBtn = Util.GetGameObject(gameObject, "reduce")
|
|
this.slider = Util.GetGameObject(gameObject, "Slider"):GetComponent("Slider")
|
|
--滚动条根节点
|
|
this.root = Util.GetGameObject(gameObject, "Root")
|
|
end
|
|
|
|
--道具 和 装备分解 发送请求后 回调
|
|
function this.SendBackResolveReCallBack(drop)
|
|
local isShowReward = false
|
|
if drop.itemlist ~= nil and #drop.itemlist > 0 then
|
|
for i = 1, #drop.itemlist do
|
|
if drop.itemlist[i].itemNum > 0 then
|
|
isShowReward = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
if isShowReward then
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1, function()
|
|
BagManager.OnShowTipDropNumZero(drop)
|
|
end)
|
|
else
|
|
BagManager.OnShowTipDropNumZero(drop)
|
|
end
|
|
parent:ClosePanel()
|
|
if func then
|
|
func()
|
|
end
|
|
end
|
|
|
|
function this:BindEvent()
|
|
Util.AddClick(this.cancelBtn, function()
|
|
parent:ClosePanel()
|
|
end)
|
|
Util.AddClick(this.confirmBtn, function()
|
|
if count == 0 then
|
|
PopupTipPanel.ShowTip(Language[12291])
|
|
return
|
|
end
|
|
if selectEquipTreasureData.itemConfig.Quantity >= 4 then
|
|
UIManager.OpenPanel(UIName.BagResolveAnCompoundPanel, 2, selectEquipTreasureData.itemConfig.ItemBaseType,
|
|
selectEquipTreasureData, function() end, count)
|
|
parent:ClosePanel()
|
|
else
|
|
local curResolveAllItemList = {}
|
|
local equip = {}
|
|
equip.itemId = selectEquipTreasureData.id
|
|
equip.itemNum = count
|
|
table.insert(curResolveAllItemList, equip)
|
|
local type = 1
|
|
NetManager.UseAndPriceItemRequest(type, curResolveAllItemList, function(drop)
|
|
this.SendBackResolveReCallBack(drop)
|
|
end)
|
|
end
|
|
end)
|
|
Util.AddClick(this.addBtn, function()
|
|
if count < selectEquipTreasureData.num then
|
|
this:SetCount(count + 1)
|
|
else
|
|
PopupTipPanel.ShowTip(Language[12292])
|
|
end
|
|
end)
|
|
Util.AddClick(this.reduceBtn, function()
|
|
if count > 1 then
|
|
this:SetCount(count - 1)
|
|
else
|
|
PopupTipPanel.ShowTip(Language[12293])
|
|
end
|
|
end)
|
|
end
|
|
|
|
function this:AddListener()
|
|
end
|
|
|
|
function this:RemoveListener()
|
|
end
|
|
|
|
function this:OnShow(_parent, ...)
|
|
parent = _parent
|
|
sortingOrder = _parent.sortingOrder
|
|
local args = { ... }
|
|
this.titleText.text = Language[12294]
|
|
|
|
local equip = args[1]
|
|
func = args[2]
|
|
selectEquipTreasureData = BagManager.GetItemById(equip.id)
|
|
this:SetCount(selectEquipTreasureData.num)
|
|
if not itemList or #itemList < 1 then
|
|
local item = SubUIManager.Open(SubUIConfig.ItemView, this.root.transform)
|
|
table.insert(itemList, item)
|
|
end
|
|
itemList[1].gameObject:SetActive(true)
|
|
itemList[1]:OnOpen(false, { selectEquipTreasureData.id, selectEquipTreasureData.num }, 1, true, false)
|
|
this.slider.minValue = 1
|
|
this.slider.maxValue = selectEquipTreasureData.num
|
|
this.slider.value = selectEquipTreasureData.num
|
|
this.slider.onValueChanged:AddListener(function()
|
|
this:SetCount(this.slider.value)
|
|
end)
|
|
end
|
|
|
|
function this:OnClose()
|
|
|
|
end
|
|
|
|
function this:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
itemList = {}
|
|
count = 0
|
|
end
|
|
|
|
return this
|