Quantcast
loadfile("load-all-item-info.lua")()

local itemText = {}

for itemNum, itemInfo in pairs(item_info) do
	if itemInfo[1] then
		local itemName = itemInfo[1].left
		itemText[itemName] = itemText[itemName] or {}
		for i = 2, #(itemInfo) do
			local text = itemInfo[i].left
			itemText[itemName][text] = itemText[itemName][text] or {}
			itemText[itemName][text][itemNum] = true
		end
	end
end

local invalidItems = {}

for itemName, text in pairs(itemText) do
	local shouldCompare = false
	for line, itemLinks in pairs(text) do
		if line:find("Matches ") and line:find(" Socket") then
			shouldCompare = true
			break
		end
	end
	if shouldCompare then
		local compareText
		for line, itemLinks in pairs(text) do
			if line ~= " " then
				compareText = line
				break
			end
		end
		for line, itemLinks in pairs(text) do
			if line ~= " " then
				if #(itemLinks) == #(text[compareText]) then
					for link in pairs(itemLinks) do
						if not text[compareText][link] then
							invalidItems[itemName] = text
							break
						end
					end
					for link in pairs(text[compareText]) do
						if not itemLinks[link] then
							invalidItems[itemName] = text
							break
						end
					end
				else
					invalidItems[itemName] = text
				end
			end
		end
	end
end

loadfile("sort.lua")()

io.output("inconsistent-gems.lua")
sort(invalidItems, "invalidItems")
io.close()