ro-table/Assets/Resources/Script/FrameWork/Proxy/EnchantTransferProxy.txt
2025-06-04 05:12:01 +08:00

113 lines
3.3 KiB
Plaintext

EnchantTransferProxy = class('EnchantTransferProxy', pm.Proxy)
EnchantTransferProxy.Instance = nil;
EnchantTransferProxy.NAME = "EnchantTransferProxy"
local _ArrayClear = TableUtility.ArrayClear
local _ArrayPushBack = TableUtility.ArrayPushBack
local _FilterCfg = GameConfig.Lottery.TransferFilter
function EnchantTransferProxy:ctor(proxyName, data)
self.proxyName = proxyName or EnchantTransferProxy.NAME
if(EnchantTransferProxy.Instance == nil) then
EnchantTransferProxy.Instance = self
end
if data ~= nil then
self:setData(data)
end
self:Init()
end
function EnchantTransferProxy:Init()
self.lotteryStaticId={}
self.enchantInData={}
self.enchantOutData={}
self.chooseTransferInData=false
end
function EnchantTransferProxy:ResetPhase(var)
self.chooseTransferInData=var
end
function EnchantTransferProxy:GetLotteryIDs()
return self.lotteryStaticId
end
function EnchantTransferProxy:HandleLotteryHeadItem(data)
TableUtility.ArrayClear(self.lotteryStaticId)
for i=1,#data do
_ArrayPushBack(self.lotteryStaticId,data[i])
end
end
function EnchantTransferProxy:ResetChooseData(data)
self.chooseData=data
end
function EnchantTransferProxy:GetEnchantInData()
_ArrayClear(self.enchantInData)
local equipEquips = BagProxy.Instance.roleEquip:GetItems() or {};
local bagEquips = BagProxy.Instance:GetBagEquipItems()
for i=1,#equipEquips do
local equip = equipEquips[i]
if(0~=TableUtility.ArrayFindIndex(self.lotteryStaticId,equip.staticData.id) and _FilterCfg[equip.staticData.Type])then
if(0< #equip.enchantInfo:GetEnchantAttrs())then
_ArrayPushBack(self.enchantInData,equip)
end
end
end
for i=1,#bagEquips do
local equip = bagEquips[i]
if(0~=TableUtility.ArrayFindIndex(self.lotteryStaticId,equip.staticData.id) and _FilterCfg[equip.staticData.Type])then
if(0< #equip.enchantInfo:GetEnchantAttrs())then
_ArrayPushBack(self.enchantInData,equip)
end
end
end
return self.enchantInData
end
function EnchantTransferProxy:GetEnchantOutData()
_ArrayClear(self.enchantOutData)
local equipEquips = BagProxy.Instance.roleEquip:GetItems() or {};
local bagEquips = BagProxy.Instance:GetBagEquipItems()
local chooseType = self.chooseData.staticData.Type
local chooseGuid = self.chooseData.id
for i=1,#equipEquips do
local equip = equipEquips[i]
if(0~=TableUtility.ArrayFindIndex(self.lotteryStaticId,equip.staticData.id) and _FilterCfg[equip.staticData.Type])then
if equip.equipInfo:CanEnchant() and chooseType==equip.staticData.Type and equip.id~=chooseGuid then
_ArrayPushBack(self.enchantOutData,equip)
end
end
end
for i=1,#bagEquips do
local equip = bagEquips[i]
if(0~=TableUtility.ArrayFindIndex(self.lotteryStaticId,equip.staticData.id) and _FilterCfg[equip.staticData.Type])then
if equip.equipInfo:CanEnchant() and chooseType==equip.staticData.Type and equip.id~=chooseGuid then
_ArrayPushBack(self.enchantOutData,equip)
end
end
end
return self.enchantOutData
end
local filterList = {}
function EnchantTransferProxy:GetFilterData(type)
local data = self.chooseTransferInData and self.enchantInData or self.enchantOutData
if 0==type then
return data
end
_ArrayClear(filterList)
for i=1,#data do
if(data[i].staticData and data[i].staticData.Type == type)then
_ArrayPushBack(filterList,data[i])
end
end
return filterList
end