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

95 lines
2.1 KiB
Plaintext

autoImport("EquipMakeData")
EquipMakeProxy = class('EquipMakeProxy', pm.Proxy)
EquipMakeProxy.Instance = nil;
EquipMakeProxy.NAME = "EquipMakeProxy"
local packageCheck = GameConfig.PackageMaterialCheck and GameConfig.PackageMaterialCheck.produce
function EquipMakeProxy:ctor(proxyName, data)
self.proxyName = proxyName or EquipMakeProxy.NAME
if(EquipMakeProxy.Instance == nil) then
EquipMakeProxy.Instance = self
end
if data ~= nil then
self:setData(data)
end
self:Init()
end
function EquipMakeProxy:Init()
self.makeList = {}
self.makeTable = {}
self.selfProfessionMakeList = {}
self.lastNpcId = 0
end
function EquipMakeProxy:InitMakeList()
TableUtility.ArrayClear(self.makeList)
for k,v in pairs(Table_Compose) do
if v.Category == 1 and v.NpcId == self.npcId then
self.makeList[#self.makeList + 1] = k
if self.makeTable[k] == nil then
self.makeTable[k] = EquipMakeData.new(k)
end
end
end
table.sort(self.makeList ,function(l,r)
local lData = self.makeTable[l]
local rData = self.makeTable[r]
if lData:IsLock() == rData:IsLock() then
if lData.itemData:CanEquip() ~= rData.itemData:CanEquip() then
return lData.itemData:CanEquip()
end
else
return not lData:IsLock()
end
end)
self.lastNpcId = self.npcId
end
function EquipMakeProxy:SetNpcId(npcId)
self.npcId = npcId
end
function EquipMakeProxy:GetMakeList()
if self.lastNpcId ~= self.npcId then
self:InitMakeList()
end
return self.makeList
end
function EquipMakeProxy:GetSelfProfessionMakeList()
TableUtility.ArrayClear(self.selfProfessionMakeList)
for i=1,#self.makeList do
local composeId = self.makeList[i]
local makeData = self.makeTable[composeId]
if makeData and makeData.itemData:CanEquip() then
self.selfProfessionMakeList[#self.selfProfessionMakeList + 1] = composeId
end
end
return self.selfProfessionMakeList
end
function EquipMakeProxy:GetMakeData(composeId)
return self.makeTable[composeId]
end
function EquipMakeProxy:GetItemNumByStaticID(itemid)
local _BagProxy = BagProxy.Instance
local count = 0
for i=1,#packageCheck do
count = count + _BagProxy:GetItemNumByStaticID(itemid, packageCheck[i])
end
return count
end