2025-06-04 05:02:57 +08:00

146 lines
4.1 KiB
Plaintext

autoImport("EquipChooseBord")
autoImport("EquipRecoverCell")
EquipRecoverView = class("EquipRecoverView", ContainerView)
EquipRecoverView.ViewType = UIViewType.NormalLayer
function EquipRecoverView:OnEnter()
EquipRecoverView.super.OnEnter(self)
if self.npcdata then
local npcRootTrans = self.npcdata.assetRole.completeTransform
if npcRootTrans then
self:CameraFocusOnNpc(npcRootTrans)
end
end
end
function EquipRecoverView:OnExit()
self:CameraReset()
EquipRecoverView.super.OnExit(self)
end
function EquipRecoverView:Init()
local viewdata = self.viewdata.viewdata
self.npcdata = viewdata and viewdata.npcdata
self:FindObjs()
self:AddEvts()
self:AddViewEvts()
self:InitView()
end
function EquipRecoverView:FindObjs()
self.addItemButton = self:FindGO("AddItemButton")
self.left = self:FindGO("LeftBg")
self.targetBtn = self:FindGO("TargetCell")
self.totalCost = self:FindGO("TotalCost"):GetComponent(UILabel)
end
local cardids = {}
function EquipRecoverView:AddEvts()
self:AddClickEvent(self.addItemButton, function (go)
self:ClickTargetCell()
end)
local recoverButton = self:FindGO("RecoverButton")
self:AddClickEvent(recoverButton , function ()
if self.nowdata then
if MyselfProxy.Instance:GetROB() < tonumber(self.totalCost.text) then
MsgManager.ShowMsgByID(1)
return
end
local cells = self.recoverCtl:GetCells()
local strength = false
local enchant = false
local upgrade = false
TableUtility.ArrayClear(cardids)
if #cells > 0 then
strength = cells[1].toggle.value
for i=2,3 do
if cells[i].data ~= EquipRecoverProxy.RecoverType.EmptyCard and cells[i].toggle.value then
TableUtility.ArrayPushBack(cardids , cells[i].data.id)
end
end
enchant = cells[4].toggle.value
upgrade = cells[5].toggle.value
end
local cardCount = #cardids
local bagData = BagProxy.Instance:GetBagByType(BagProxy.BagType.MainBag)
if bagData:GetSpaceItemNum() < cardCount then
MsgManager.ShowMsgByID(3101)
return
end
if strength or cardCount > 0 or enchant or upgrade then
ServiceItemProxy.Instance:CallRestoreEquipItemCmd(self.nowdata.id , strength , cardids , enchant, upgrade, strength)
else
end
end
end)
end
function EquipRecoverView:AddViewEvts()
self:AddListenEvt(ServiceEvent.ItemRestoreEquipItemCmd , self.HandleRecover)
end
function EquipRecoverView:InitView()
local chooseContaienr = self:FindGO("ChooseContainer")
self.chooseBord = EquipChooseBord.new(chooseContaienr, function ()
return EquipRecoverProxy.Instance:GetRecoverEquips()
end)
self.chooseBord:AddEventListener(EquipChooseBord.ChooseItem, self.ChooseItem, self)
self.chooseBord:Hide()
self.targetCell = BaseItemCell.new(self.targetBtn)
self.targetCell:AddEventListener(MouseEvent.MouseClick, self.ClickTargetCell, self)
local recoverGrid = self:FindComponent("RecoverGrid", UIGrid)
self.recoverCtl = UIGridListCtrl.new(recoverGrid, EquipRecoverCell, "EquipRecoverCell")
self.recoverCtl:AddEventListener(EquipRecoverEvent.Select, self.HandleSelect , self)
end
function EquipRecoverView:ChooseItem(itemData)
self.nowdata = itemData
self.targetCell:SetData(itemData)
self.recoverCtl:ResetDatas(EquipRecoverProxy.Instance:GetRecoverToggle(itemData))
self.chooseBord:Hide()
self.targetBtn:SetActive(itemData~=nil)
self.addItemButton:SetActive(itemData==nil)
end
function EquipRecoverView:ClickTargetCell()
local equipdatas = EquipRecoverProxy.Instance:GetRecoverEquips()
if #equipdatas>0 then
self.chooseBord:ResetDatas(equipdatas, true)
self.chooseBord:Show(false)
self.left:SetActive(false)
else
MsgManager.ShowMsgByIDTable(390)
self.chooseBord:Hide()
self.left:SetActive(true)
end
end
function EquipRecoverView:HandleSelect(cellctl)
local totalCost = 0
local cells = self.recoverCtl:GetCells()
for i=1,#cells do
if cells[i].toggle.value then
totalCost = totalCost + tonumber(cells[i].cost.text)
end
end
self.totalCost.text = totalCost
end
function EquipRecoverView:HandleRecover()
local equipdatas = EquipRecoverProxy.Instance:GetRecoverEquips()
self.chooseBord:ResetDatas(equipdatas, true)
self:ChooseItem()
self.left:SetActive(true)
end