73 lines
No EOL
1.5 KiB
Lua
73 lines
No EOL
1.5 KiB
Lua
XItem = XClass(nil, "XItem")
|
|
|
|
local Default = {
|
|
Id = 0,
|
|
Count = 0,
|
|
BuyTimes = 0,
|
|
RefreshTime = 0,
|
|
CreateTime = 0,
|
|
}
|
|
|
|
function XItem:Ctor(itemData, template)
|
|
for key in pairs(Default) do
|
|
self[key] = Default[key]
|
|
end
|
|
|
|
if template then
|
|
self.Template = template
|
|
self.Id = template.Id
|
|
end
|
|
|
|
self:RefreshItem(itemData)
|
|
end
|
|
|
|
function XItem:RefreshItem(itemData)
|
|
if not itemData then
|
|
return
|
|
end
|
|
|
|
if itemData.Count then
|
|
self:SetCount(itemData.Count)
|
|
end
|
|
|
|
if itemData.BuyTimes then
|
|
self:SetBuyTimes(itemData.BuyTimes)
|
|
end
|
|
|
|
if itemData.RefreshTime then
|
|
self.RefreshTime = itemData.RefreshTime
|
|
end
|
|
|
|
if itemData.CreateTime then
|
|
self.CreateTime = itemData.CreateTime
|
|
end
|
|
end
|
|
|
|
function XItem:SetCount(count)
|
|
if self.Count == count then
|
|
return
|
|
end
|
|
|
|
self.Count = count
|
|
|
|
CsXGameEventManager.Instance:Notify(XEventId.EVENT_ITEM_COUNT_UPDATE_PREFIX .. self.Id, self.Id, self.Count)
|
|
XEventManager.DispatchEvent(XEventId.EVENT_ITEM_COUNT_UPDATE_PREFIX .. self.Id, self.Id, self.Count)
|
|
end
|
|
|
|
function XItem:SetBuyTimes(buyTimes)
|
|
if buyTimes == self.BuyTimes then
|
|
return
|
|
end
|
|
|
|
self.BuyTimes = buyTimes
|
|
|
|
XEventManager.DispatchEvent(XEventId.EVENT_ITEM_BUYTIEMS_UPDATE_PREFIX .. self.Id, self.Id, self.BuyTimes)
|
|
end
|
|
|
|
function XItem:GetCount()
|
|
return self.Count
|
|
end
|
|
|
|
function XItem:GetMaxCount()
|
|
return self.Template.MaxCount
|
|
end |