local L=game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")local p=L:WaitForChild("\099\111\109\109\111\110")local A=require(p:WaitForChild("\065\115\115\101\116\067\097\116\097\103\111\114\105\101\115"))local C=require(script:WaitForChild("\101\113\117\105\112\109\101\110\116\067\097\116\097\103\111\114\121"))return function(L,p)L=L or{}local K={}for A,f in pairs(A.all)do K[f.id]=C(L[f.id],p,f.id)end return K end
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local common = ReplicatedStorage:WaitForChild("common")

local AssetCatagories = require(common:WaitForChild("AssetCatagories"))

local equipmentCatagory = require(script:WaitForChild("equipmentCatagory"))

return function(state, action)
    state = state or {}

    local newState = {}
    for _,cata in pairs(AssetCatagories.all) do
        newState[cata.id] = equipmentCatagory(state[cata.id], action, cata.id)
    end

    return newState
end