DinerAction.lua 1.29 KB
local ipairs = ipairs
local table = table
local math = math
local redisproxy = redisproxy
local MsgPack = MsgPack

local _M = {}

function _M.addSellRpc( agent, data )
	local role = agent.role
	local msg = MsgPack.unpack(data)

	local slot = msg.slot
	if math.illegalNum(slot, 1, role.dinerData:getMaxSlots()) then
		return
	end
	if slot > role.dinerData:getMaxSlots() then
		return
	end
	local dish = msg.dish
	local dishSet = csvdb["diner_dishCsv"][dish]
	if not dishSet then
		return
	end
	local count = msg.count
	if math.illegalNum(count, 1, role.dinerData:getMaxDishs()) then
		return
	end

end

function _M.getSellRewardRpc( agent, data )
	
end

function _M.levelUpRpc( agent, data )
	local role = agent.role
	local msg = MsgPack.unpack(data)

	local index = msg.index
	local buildingData = csvdb["diner_buildingCsv"][index]
	if not buildingData then
		return
	end

	local buildL = role.dinerData:getProperty("buildL")
	local curLevel = buildL:getv(index, 1)
	if curLevel >= #buildingData then
		return
	end

	local cost = buildingData[curLevel].starCost:toNumMap()
	if not role:checkItemEnough(cost) then
		return 
	end

	role:costItems(cost, {})
	role.dinerData:updateProperty({field = "level", value = buildL:setv(index, curLevel + 1)})

	SendPacket(actionCodes.Diner_levelUpRpc, '')
	return true
end

return _M