186 lines
5.3 KiB
Plaintext
186 lines
5.3 KiB
Plaintext
EquipRecoverProxy = class('EquipRecoverProxy', pm.Proxy)
|
|
EquipRecoverProxy.Instance = nil;
|
|
EquipRecoverProxy.NAME = "EquipRecoverProxy"
|
|
|
|
EquipRecoverProxy.RecoverType = {
|
|
EmptyStrength = "EmptyStrength",
|
|
Strength = "Strength",
|
|
EmptyCard = "EmptyCard",
|
|
EmptyEnchant = "EmptyEnchant",
|
|
Enchant = "Enchant",
|
|
EmptyUpgrade = "EmptyUpgrade",
|
|
}
|
|
|
|
local packageCheck = GameConfig.PackageMaterialCheck and GameConfig.PackageMaterialCheck.restore
|
|
|
|
function EquipRecoverProxy:ctor(proxyName, data)
|
|
self.proxyName = proxyName or EquipRecoverProxy.NAME
|
|
if(EquipRecoverProxy.Instance == nil) then
|
|
EquipRecoverProxy.Instance = self
|
|
end
|
|
if data ~= nil then
|
|
self:setData(data)
|
|
end
|
|
|
|
self:Init()
|
|
end
|
|
|
|
function EquipRecoverProxy:Init()
|
|
self.recoverList = {}
|
|
self.recoverToggleList = {}
|
|
end
|
|
|
|
function EquipRecoverProxy:GetRecoverEquips()
|
|
local _BagProxy = BagProxy.Instance
|
|
TableUtility.ArrayClear(self.recoverList)
|
|
for i=1,#packageCheck do
|
|
local items = _BagProxy:GetBagByType(packageCheck[i]):GetItems()
|
|
for j=1,#items do
|
|
local equip = items[j]
|
|
if equip and equip.equipInfo then
|
|
if EquipRecoverProxy.IsEquipNeedRecover(equip) then
|
|
TableUtility.ArrayPushBack( self.recoverList , equip )
|
|
end
|
|
end
|
|
end
|
|
end
|
|
return self.recoverList
|
|
end
|
|
|
|
--卸卡魔石
|
|
function EquipRecoverProxy:GetMagicStoneRecover()
|
|
TableUtility.ArrayClear(self.recoverList)
|
|
local equipDatas = BagProxy.Instance:GetBagEquipItems()
|
|
for i=1,#equipDatas do
|
|
local equip = equipDatas[i]
|
|
if equip then
|
|
if EquipRecoverProxy.IsEquipNeedMagicStoneRecover(equip) then
|
|
TableUtility.ArrayPushBack( self.recoverList , equip )
|
|
end
|
|
end
|
|
end
|
|
return self.recoverList
|
|
end
|
|
|
|
function EquipRecoverProxy.IsEquipNeedRecover(itemData)
|
|
local equipInfo = itemData.equipInfo;
|
|
if equipInfo and equipInfo.strengthlv > 0 then
|
|
return true
|
|
elseif equipInfo and equipInfo.strengthlv2 > 0 then
|
|
return true
|
|
elseif itemData:HasEquipedCard() then
|
|
return true
|
|
elseif itemData.enchantInfo and #itemData.enchantInfo:GetEnchantAttrs() > 0 then
|
|
return true
|
|
elseif equipInfo and equipInfo.equiplv > 0 then
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
--卸卡魔石
|
|
function EquipRecoverProxy.IsEquipNeedMagicStoneRecover(itemData)
|
|
local equipInfo = itemData.equipInfo
|
|
if itemData:GetEquipedCardNum() >0 then
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
function EquipRecoverProxy:GetRecoverToggle(item)
|
|
TableUtility.ArrayClear(self.recoverToggleList)
|
|
if item and item.equipInfo and (item.equipInfo.strengthlv > 0 or item.equipInfo.strengthlv2 > 0) then
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , self.RecoverType.Strength )
|
|
else
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , self.RecoverType.EmptyStrength )
|
|
end
|
|
for i=1,2 do
|
|
if item and item.equipedCardInfo and item.equipedCardInfo[i] then
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , item.equipedCardInfo[i] )
|
|
else
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , self.RecoverType.EmptyCard )
|
|
end
|
|
end
|
|
if item and item.enchantInfo and #item.enchantInfo:GetEnchantAttrs() > 0 then
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , self.RecoverType.Enchant )
|
|
else
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , self.RecoverType.EmptyEnchant )
|
|
end
|
|
if item and item.equipInfo and item.equipInfo.equiplv > 0 then
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , item.equipInfo.equiplv )
|
|
else
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , self.RecoverType.EmptyUpgrade )
|
|
end
|
|
return self.recoverToggleList
|
|
end
|
|
|
|
--卸卡魔石
|
|
function EquipRecoverProxy:GetMagicStoneRecoverToggle(item)
|
|
TableUtility.ArrayClear(self.recoverToggleList)
|
|
for i=1,2 do
|
|
if item and item.equipedCardInfo and item.equipedCardInfo[i] then
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , item.equipedCardInfo[i] )
|
|
else
|
|
TableUtility.ArrayPushBack( self.recoverToggleList , self.RecoverType.EmptyCard )
|
|
end
|
|
end
|
|
return self.recoverToggleList
|
|
end
|
|
|
|
function EquipRecoverProxy:SetCurrency(currency)
|
|
self.currency = currency
|
|
end
|
|
|
|
function EquipRecoverProxy:GetCurrency()
|
|
return self.currency or GameConfig.MoneyId.Zeny
|
|
end
|
|
|
|
function EquipRecoverProxy:GetRecoverCost(itemData, card_rv, upgrade_rv, strength_rv, enchant_rv, strength_rv2)
|
|
if(itemData == nil)then
|
|
return 0;
|
|
end
|
|
local recoverConfig = GameConfig.EquipRecover;
|
|
|
|
local resultCost = 0;
|
|
if(card_rv)then
|
|
local equipCards = itemData.equipedCardInfo;
|
|
if(equipCards and #equipCards>0)then
|
|
local maxIndex = #recoverConfig.Card;
|
|
for k,v in pairs(equipCards)do
|
|
local q = v.cardInfo.Quality;
|
|
q = math.clamp(q, 1, maxIndex);
|
|
resultCost = resultCost + recoverConfig.Card[q];
|
|
end
|
|
end
|
|
end
|
|
|
|
if(upgrade_rv)then
|
|
local equiplv = itemData.equipInfo.equiplv;
|
|
if(equiplv > 0)then
|
|
equiplv = math.clamp(equiplv, 1, #recoverConfig.Upgrade);
|
|
resultCost = resultCost + recoverConfig.Upgrade[equiplv];
|
|
end
|
|
end
|
|
|
|
local strength_addCost = false;
|
|
if(strength_rv)then
|
|
if(itemData.equipInfo.strengthlv > 0)then
|
|
strength_addCost = true;
|
|
resultCost = resultCost + recoverConfig.Strength;
|
|
end
|
|
end
|
|
|
|
if(strength_rv2 and strength_addCost == false)then
|
|
if(itemData.equipInfo.strengthlv2 > 0)then
|
|
resultCost = resultCost + recoverConfig.Strength;
|
|
end
|
|
end
|
|
|
|
if(enchant_rv)then
|
|
if(itemData.enchantInfo and itemData.enchantInfo:HasAttri())then
|
|
resultCost = resultCost + recoverConfig.Enchant;
|
|
end
|
|
end
|
|
|
|
return resultCost;
|
|
end |