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