101 lines
2.8 KiB
Lua
101 lines
2.8 KiB
Lua
|
------------------------------------------------
|
|||
|
--作者:何健
|
|||
|
--日期:2019-07-05
|
|||
|
--文件:ShopItemContainer.lua
|
|||
|
--模块:ShopItemContainer
|
|||
|
--描述:各种商店的容器,包含了所有商店基本操作和数据
|
|||
|
------------------------------------------------
|
|||
|
|
|||
|
local ShopItemContainer = {
|
|||
|
--商店类型
|
|||
|
ShopType = nil,
|
|||
|
--物品容器
|
|||
|
ItemContainer = nil,
|
|||
|
--商店页面容器
|
|||
|
ShopPageList = nil,
|
|||
|
--下一个刷新时间
|
|||
|
NextTimes = nil,
|
|||
|
--当前刷新次数
|
|||
|
CurUpdateTimes = nil,
|
|||
|
}
|
|||
|
|
|||
|
--创建容器对象
|
|||
|
function ShopItemContainer:New(type)
|
|||
|
local _m = Utils.DeepCopy(self)
|
|||
|
_m.ShopType = type
|
|||
|
_m.ItemContainer = Dictionary:New()
|
|||
|
_m.ShopPageList = List:New()
|
|||
|
return _m
|
|||
|
end
|
|||
|
|
|||
|
--更新商品容器
|
|||
|
function ShopItemContainer:UpdateItem(item, page, occ)
|
|||
|
if item ~= nil then
|
|||
|
local _shopItems = nil
|
|||
|
_shopItems = self.ItemContainer[page]
|
|||
|
if _shopItems == nil then
|
|||
|
_shopItems = Dictionary:New()
|
|||
|
self.ItemContainer:Add(page, _shopItems)
|
|||
|
end
|
|||
|
if _shopItems ~= nil and item:CheckOcc(occ) and item:CheckOpenTime() then
|
|||
|
local _tmpItem = nil;
|
|||
|
_tmpItem = _shopItems[item.SellId]
|
|||
|
if _tmpItem ~= nil then
|
|||
|
_shopItems[item.SellId] = item
|
|||
|
else
|
|||
|
_shopItems:Add(item.SellId, item)
|
|||
|
end
|
|||
|
self.ItemContainer[page] = _shopItems
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function ShopItemContainer:Sort(page)
|
|||
|
local _shopItems = nil
|
|||
|
_shopItems = self.ItemContainer[page]
|
|||
|
if _shopItems ~= nil then
|
|||
|
for k, v in pairs(_shopItems) do
|
|||
|
if v.LimitType > 0 then
|
|||
|
if v.AlreadyBuyNum >= v.BuyLimit and v.BuyLimit > 0 and v.Index <= 99999 then
|
|||
|
v.Index = v.Index + 99999
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
_shopItems:SortValue(function(a, b)
|
|||
|
return a.Index < b.Index
|
|||
|
end)
|
|||
|
self.ItemContainer[page] = _shopItems
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
--删除商品
|
|||
|
function ShopItemContainer:DeleteItem(key, page)
|
|||
|
if self.ItemContainer[page] ~= nil then
|
|||
|
self.ItemContainer[page]:Remove(key)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function ShopItemContainer:AddShopPage(page)
|
|||
|
if page > 0 and not self.ShopPageList:Contains(page) then
|
|||
|
self.ShopPageList:Add(page)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function ShopItemContainer:ClearShopPage()
|
|||
|
self.ShopPageList:Clear()
|
|||
|
end
|
|||
|
|
|||
|
function ShopItemContainer:ClearShopByPage(page)
|
|||
|
if self.ItemContainer:ContainsKey(page) then
|
|||
|
self.ItemContainer[page]:Clear()
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function ShopItemContainer:GetShopItemDic(page)
|
|||
|
local _shopItems = Dictionary:New()
|
|||
|
if self.ItemContainer:ContainsKey(page) then
|
|||
|
_shopItems = self.ItemContainer[page]
|
|||
|
end
|
|||
|
return _shopItems
|
|||
|
end
|
|||
|
return ShopItemContainer
|