146 lines
4.1 KiB
Plaintext
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 |