---@class KLUIEquipQuickTransferPanel:UIKmlLuaPanelBase
---@field view KLUIEquipQuickTransferPanelView
local KLUIEquipQuickTransferPanel = class(UIKmlLuaPanelBase)
local this =KLUIEquipQuickTransferPanel
---创建时调用一次
function this:Init()
---@type CommonProtos.Item
self.sourceItem = self.args.source
---@type CommonProtos.Item
self.targetItem = self.args.target
end
---创建或者刷新界面数据时调用
function this:Refresh()
self.transferStrength = false
self.transferAppend = false
---@type cfg_equip_transfer_column
local sourceTbl = SL:GetConfig("cfg_equip_transfer", self.sourceItem.cfgId)
---@type cfg_equip_transfer_column
local targetTbl = SL:GetConfig("cfg_equip_transfer", self.targetItem.cfgId)
local strengthen = EquipFunc.GetEquipStrengthLevel(self.sourceItem)
local append = EquipFunc.GetEquipAppendLevel(self.sourceItem)
local reborn = EquipFunc.GetEquipRegenerate(self.sourceItem)
if targetTbl.transferGroup == sourceTbl.transferGroup then
---转移强化等级
if strengthen > 0 then
GUI:SetActive(self.view.tips1, true)
self.transferStrength = true
GUI:Text_setString(self.view.tips1, "强化等级:" .. strengthen)
else
GUI:SetActive(self.view.tips1, false)
end
---转移追加等级
if append > 0 then
GUI:SetActive(self.view.tips2, true)
self.transferAppend = true
GUI:Text_setString(self.view.tips2, "追加等级:" .. append)
else
GUI:SetActive(self.view.tips2, false)
end
else
GUI:SetActive(self.view.tips1, false)
GUI:SetActive(self.view.tips2, false)
end
if false and targetTbl.regenerationGroup == sourceTbl.regenerationGroup then
---转移再生词条
if reborn and next(reborn) then
GUI:SetActive(self.view.tips3, true)
local num = 0
for i, v in pairs(reborn) do
num = num + 1
end
GUI:Text_setString(self.view.tips3, "再生词条:" .. num)
else
GUI:SetActive(self.view.tips3, false)
end
else
GUI:SetActive(self.view.tips3, false)
end
GUI:Text_setString(self.view.tipContent, "当前装备可以继承[" .. sourceTbl.name .. "]")
local costInfo = EquipFunc.GetTransferCost(self.sourceItem, "1", "1", "0")
if costInfo.id then
---@type cfg_item_column
local item = SL:GetConfig("cfg_item", costInfo.id)
local bag_num = SL:GetBagItemCount(costInfo.id)
GUI:Text_setString(self.view.text_transfer_cost_name, "消耗" .. item.name)
GUI:Item_setItemId(self.view.item_cost, item.id)
if bag_num >= costInfo.num then
self.canTransfer = true
bag_num = SL:GetSimpleNumber(bag_num, 2)
GUI:Text_setString(self.view.text_transfer_cost, "" .. bag_num .. " / " .. costInfo.num)
else
self.canTransfer = false
bag_num = SL:GetSimpleNumber(bag_num, 2)
GUI:Text_setString(self.view.text_transfer_cost, "" .. bag_num .. " / " .. costInfo.num)
end
end
local args = { type = "common", item = nil, default = { width = 60, height = 60, mfixSizeX = 60, mfixSizeY = 60, strengthX = 0 } }
args.item = self.sourceItem
---@type KLBagItemItem
self.sourceEquip = GUI:UIPanel_Open("dev/ui/Common/Item/KLBagItem/KLBagItemItem", self.view.panel_equip_source, self, args, true)
args.item = self.targetItem
---@type KLBagItemItem
self.sourceEquip = GUI:UIPanel_Open("dev/ui/Common/Item/KLBagItem/KLBagItemItem", self.view.panel_equip_target, self, args, true)
end
---注册UI事件和服务器消息
function this:RegistEvents()
GUI:AddOnClickEvent(self.view.closeBtn, self, self.CloseSelf)
GUI:AddOnClickEvent(self.view.btn_source_item, self, self.ShowSourceTips)
GUI:AddOnClickEvent(self.view.btn_target_item, self, self.ShowTargetTips)
GUI:AddOnClickEvent(self.view.btn_transfer, self, self.CheckOverMax)
GUI:AddOnClickEvent(self.view.btn_cancel, self, self.CloseSelf)
end
function this:ShowSourceTips()
SL:OpenTips("bag", self.sourceItem.cfgId, self.sourceItem.id)
end
function this:ShowTargetTips()
SL:OpenTips("equip", self.targetItem.cfgId, self.targetItem.id)
end
function this:CheckOverMax()
local overMax = false
if self.transferStrength then
---@type cfg_equip_strengthen_column
local tbl = SL:GetConfig("cfg_equip_strengthen", self.targetItem.cfgId)
if tbl.maxLevel < EquipFunc.GetEquipStrengthLevel(self.sourceItem) then
overMax = true
end
end
if self.transferAppend then
---@type cfg_equip_appends_column
local tbl = SL:GetConfig("cfg_equip_appends", self.targetItem.cfgId)
if tbl.maxLevel < EquipFunc.GetEquipAppendLevel(self.sourceItem) then
overMax = true
end
end
if overMax then
SL:CommonTipsMessage({ stringTblID=213,ui = self, callback = self.Transfer })
else
self:Transfer()
end
end
function this.Transfer(data)
local ui = nil
if data.ui then
ui = data.ui
else
ui = data
end
if ui.canTransfer then
local message = {
firstItem = ui.sourceItem.id,
secondItem = ui.targetItem.id,
transferStrength = true,
transferAppend = true,
transferRegeneration = true,
}
if EquipFunc.GetEquipStrengthLevel(ui.sourceItem) <= 0 then
message.transferStrength = false
end
if EquipFunc.GetEquipAppendLevel(ui.sourceItem) <= 0 then
message.transferAppend = false
end
local regenerate = EquipFunc.GetEquipRegenerate(ui.sourceItem)
if not regenerate or not next(regenerate) then
message.transferRegeneration = false
end
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_TRANSFER_EQUIP, message)
ui:CloseSelf()
else
SL:TipMessage(SL:GetConfig('cfg_string',269).text, 1, NoticeType.NoticeMid )--"货币不足",
end
end
function this:CloseSelf()
GUI:UIPanel_Close("dev/outui/Equip/Panel/KLUIEquipQuickTransfer/KLUIEquipQuickTransferPanel")
end
function this:Close()
end
return this