KLUIEquipQuickTransferPanel.lua 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. ---@class KLUIEquipQuickTransferPanel:UIKmlLuaPanelBase
  2. ---@field view KLUIEquipQuickTransferPanelView
  3. local KLUIEquipQuickTransferPanel = class(UIKmlLuaPanelBase)
  4. local this =KLUIEquipQuickTransferPanel
  5. ---创建时调用一次
  6. function this:Init()
  7. ---@type CommonProtos.Item
  8. self.sourceItem = self.args.source
  9. ---@type CommonProtos.Item
  10. self.targetItem = self.args.target
  11. end
  12. ---创建或者刷新界面数据时调用
  13. function this:Refresh()
  14. self.transferStrength = false
  15. self.transferAppend = false
  16. ---@type cfg_equip_transfer_column
  17. local sourceTbl = SL:GetConfig("cfg_equip_transfer", self.sourceItem.cfgId)
  18. ---@type cfg_equip_transfer_column
  19. local targetTbl = SL:GetConfig("cfg_equip_transfer", self.targetItem.cfgId)
  20. local strengthen = EquipFunc.GetEquipStrengthLevel(self.sourceItem)
  21. local append = EquipFunc.GetEquipAppendLevel(self.sourceItem)
  22. local reborn = EquipFunc.GetEquipRegenerate(self.sourceItem)
  23. if targetTbl.transferGroup == sourceTbl.transferGroup then
  24. ---转移强化等级
  25. if strengthen > 0 then
  26. GUI:SetActive(self.view.tips1, true)
  27. self.transferStrength = true
  28. GUI:Text_setString(self.view.tips1, "强化等级:" .. strengthen)
  29. else
  30. GUI:SetActive(self.view.tips1, false)
  31. end
  32. ---转移追加等级
  33. if append > 0 then
  34. GUI:SetActive(self.view.tips2, true)
  35. self.transferAppend = true
  36. GUI:Text_setString(self.view.tips2, "追加等级:" .. append)
  37. else
  38. GUI:SetActive(self.view.tips2, false)
  39. end
  40. else
  41. GUI:SetActive(self.view.tips1, false)
  42. GUI:SetActive(self.view.tips2, false)
  43. end
  44. if false and targetTbl.regenerationGroup == sourceTbl.regenerationGroup then
  45. ---转移再生词条
  46. if reborn and next(reborn) then
  47. GUI:SetActive(self.view.tips3, true)
  48. local num = 0
  49. for i, v in pairs(reborn) do
  50. num = num + 1
  51. end
  52. GUI:Text_setString(self.view.tips3, "再生词条:" .. num)
  53. else
  54. GUI:SetActive(self.view.tips3, false)
  55. end
  56. else
  57. GUI:SetActive(self.view.tips3, false)
  58. end
  59. GUI:Text_setString(self.view.tipContent, "当前装备可以继承[" .. sourceTbl.name .. "]")
  60. local costInfo = EquipFunc.GetTransferCost(self.sourceItem, "1", "1", "0")
  61. if costInfo.id then
  62. ---@type cfg_item_column
  63. local item = SL:GetConfig("cfg_item", costInfo.id)
  64. local bag_num = SL:GetBagItemCount(costInfo.id)
  65. GUI:Text_setString(self.view.text_transfer_cost_name, "消耗" .. item.name)
  66. GUI:Item_setItemId(self.view.item_cost, item.id)
  67. if bag_num >= costInfo.num then
  68. self.canTransfer = true
  69. bag_num = SL:GetSimpleNumber(bag_num, 2)
  70. GUI:Text_setString(self.view.text_transfer_cost, "<color=#1ADD1F>" .. bag_num .. "</color> / " .. costInfo.num)
  71. else
  72. self.canTransfer = false
  73. bag_num = SL:GetSimpleNumber(bag_num, 2)
  74. GUI:Text_setString(self.view.text_transfer_cost, "<color=#FF2323>" .. bag_num .. "</color> / " .. costInfo.num)
  75. end
  76. end
  77. local args = { type = "common", item = nil, default = { width = 60, height = 60, mfixSizeX = 60, mfixSizeY = 60, strengthX = 0 } }
  78. args.item = self.sourceItem
  79. ---@type KLBagItemItem
  80. self.sourceEquip = GUI:UIPanel_Open("dev/ui/Common/Item/KLBagItem/KLBagItemItem", self.view.panel_equip_source, self, args, true)
  81. args.item = self.targetItem
  82. ---@type KLBagItemItem
  83. self.sourceEquip = GUI:UIPanel_Open("dev/ui/Common/Item/KLBagItem/KLBagItemItem", self.view.panel_equip_target, self, args, true)
  84. end
  85. ---注册UI事件和服务器消息
  86. function this:RegistEvents()
  87. GUI:AddOnClickEvent(self.view.closeBtn, self, self.CloseSelf)
  88. GUI:AddOnClickEvent(self.view.btn_source_item, self, self.ShowSourceTips)
  89. GUI:AddOnClickEvent(self.view.btn_target_item, self, self.ShowTargetTips)
  90. GUI:AddOnClickEvent(self.view.btn_transfer, self, self.CheckOverMax)
  91. GUI:AddOnClickEvent(self.view.btn_cancel, self, self.CloseSelf)
  92. end
  93. function this:ShowSourceTips()
  94. SL:OpenTips("bag", self.sourceItem.cfgId, self.sourceItem.id)
  95. end
  96. function this:ShowTargetTips()
  97. SL:OpenTips("equip", self.targetItem.cfgId, self.targetItem.id)
  98. end
  99. function this:CheckOverMax()
  100. local overMax = false
  101. if self.transferStrength then
  102. ---@type cfg_equip_strengthen_column
  103. local tbl = SL:GetConfig("cfg_equip_strengthen", self.targetItem.cfgId)
  104. if tbl.maxLevel < EquipFunc.GetEquipStrengthLevel(self.sourceItem) then
  105. overMax = true
  106. end
  107. end
  108. if self.transferAppend then
  109. ---@type cfg_equip_appends_column
  110. local tbl = SL:GetConfig("cfg_equip_appends", self.targetItem.cfgId)
  111. if tbl.maxLevel < EquipFunc.GetEquipAppendLevel(self.sourceItem) then
  112. overMax = true
  113. end
  114. end
  115. if overMax then
  116. SL:CommonTipsMessage({ stringTblID=213,ui = self, callback = self.Transfer })
  117. else
  118. self:Transfer()
  119. end
  120. end
  121. function this.Transfer(data)
  122. local ui = nil
  123. if data.ui then
  124. ui = data.ui
  125. else
  126. ui = data
  127. end
  128. if ui.canTransfer then
  129. local message = {
  130. firstItem = ui.sourceItem.id,
  131. secondItem = ui.targetItem.id,
  132. transferStrength = true,
  133. transferAppend = true,
  134. transferRegeneration = true,
  135. }
  136. if EquipFunc.GetEquipStrengthLevel(ui.sourceItem) <= 0 then
  137. message.transferStrength = false
  138. end
  139. if EquipFunc.GetEquipAppendLevel(ui.sourceItem) <= 0 then
  140. message.transferAppend = false
  141. end
  142. local regenerate = EquipFunc.GetEquipRegenerate(ui.sourceItem)
  143. if not regenerate or not next(regenerate) then
  144. message.transferRegeneration = false
  145. end
  146. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_TRANSFER_EQUIP, message)
  147. ui:CloseSelf()
  148. else
  149. SL:TipMessage(SL:GetConfig('cfg_string',269).text, 1, NoticeType.NoticeMid )--"货币不足",
  150. end
  151. end
  152. function this:CloseSelf()
  153. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLUIEquipQuickTransfer/KLUIEquipQuickTransferPanel")
  154. end
  155. function this:Close()
  156. end
  157. return this