c1_lua/lua/app/server/data/server_bag_data.lua
2023-04-07 22:23:00 +08:00

67 lines
1.7 KiB
Lua

local ServerBagData = class("ServerBagData", ServerBaseData)
function ServerBagData:ctor()
self.ItemData = require("app/server/data/server_item_data"):create()
end
function ServerBagData:loadLocalData()
self.ItemData:loadLocalData()
end
function ServerBagData:clear()
self.ItemData:clear()
end
function ServerBagData:getItemData()
return self.ItemData:getAllItems()
end
function ServerBagData:tryAddItem(id, num)
return self.ItemData:tryAddItem(id, num)
end
function ServerBagData:tryAddItemReward(item)
local id = GFunc.getRewardId(item)
local num = GFunc.getRewardNum(item)
return self.ItemData:tryAddItem(id, num)
end
function ServerBagData:tryAddItemCost(cost)
local id = GFunc.getRewardId(cost)
local num = GFunc.getRewardNum(cost)
return self.ItemData:tryAddItem(id, -num)
end
function ServerBagData:addItemReward(item, getType)
local id = GFunc.getRewardId(item)
local num = GFunc.getRewardNum(item)
self:addItem(id, num, getType)
end
function ServerBagData:addItemCost(cost)
local id = GFunc.getRewardId(cost)
local num = GFunc.getRewardNum(cost)
self:addItem(id, -num)
end
function ServerBagData:addItem(id, num, getType)
if id == GConst.ItemConst.ITEM_ID_VIT then
local maxCount = self.ItemData:getMaxVit()
local currentCount = self.ItemData:getItemNumById(GConst.ItemConst.ITEM_ID_VIT)
local isMax = currentCount >= maxCount
self.ItemData:addItem(id, num, getType)
local currentCount = currentCount + num
local isMax1 = currentCount >= maxCount
if not isMax1 then
if isMax then
self.ItemData:resetVitRecoverTime()
else
self.ItemData:recoveryItems()
end
end
else
self.ItemData:addItem(id, num, getType)
end
end
return ServerBagData