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

71 lines
1.7 KiB
Plaintext

ShopMallItemData = class("ShopMallItemData")
function ShopMallItemData:ctor(data)
self:SetData(data)
end
function ShopMallItemData:SetData(data)
self.itemid = data.itemid
self.price = data.price
self.count = data.count
self.orderId = data.order_id
self.overlap = data.overlap
self.isExpired = data.is_expired
if data.refine_lv then
self.refineLv = data.refine_lv
end
if data.item_data and data.item_data.base and data.item_data.base.id ~= 0 then
self.itemData = ItemData.new(data.item_data.base.guid , data.item_data.base.id)
self.itemData:ParseFromServerData(data.item_data)
local equip = data.item_data.equip
if equip ~= nil then
self.refineLv = equip.refinelv
end
end
self.publicityId = data.publicity_id
self.endTime = data.end_time
-- 擺攤
self.charid = data.charid
self.name = data.name
self.type = data.type
self.isBooth = data.type == BoothProxy.TradeType.Booth
self.upRate = data.up_rate
self.downRate = data.down_rate
self:UpdateItemData()
end
function ShopMallItemData:CanExchange()
if self.itemid then
return ItemData.CheckItemCanTrade(self.itemid)
end
return false
end
function ShopMallItemData:UpdateItemData()
if self.itemData ~= nil then
self.itemData.num = self.count
if self.refineLv and self.itemData.equipInfo then
self.itemData.equipInfo.refinelv = self.refineLv
end
end
end
function ShopMallItemData:GetItemData()
if self.itemData == nil then
self.itemData = ItemData.new("Booth", self.itemid)
self:UpdateItemData()
end
return self.itemData
end
function ShopMallItemData:GetPriceRate()
return 1 + self.upRate / 1000 - self.downRate / 1000
end
function ShopMallItemData:GetPrice()
return self.isBooth and self.price * self:GetPriceRate() or self.price
end