local function split(inputstr, sep)
    if sep == nil then
        sep = "%s"
    end
    local t={} ; local i=1
    for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
        t[i] = str
        i = i + 1
    end
    return t
end

local result = {}
local matchId       = ARGV[1]
local update        = split(ARGV[2], ",") 

local rowNo         = update[1]
local curTimeStamp  = update[2]
local totalEnemies  = update[3]
local finalMove     = update[table.getn(update)]

redis.call("HSET", "BATTLES:MATCH:{" .. matchId .. "}:row:" .. rowNo, "LASTUPDATE", curTimeStamp)
redis.call("HSET", "BATTLES:MATCH:{" .. matchId .. "}:row:" .. rowNo, "mapPieces", finalMove)

for i =1, totalEnemies, 1
do
    local enemyChange = update[3 + i]
    local change = split(enemyChange, ":")
    redis.call("HSET", "BATTLES:MATCH:{" .. matchId .. "}:row:" .. rowNo, "map:" .. change[1], 1000)
    redis.call("HDEL", "BATTLES:MATCH:{" .. matchId .. "}:row:" .. rowNo, "map:" .. change[2])
end

local result = {}
return result