Jump to content

The wiki is in the process of updating to the latest major game changes. Any contributions are appreciated!
Start here to learn how to edit and join our Discord server to make suggestions.

Module:ItemsByStat: Difference between revisions

From The Deadlock Wiki
mNo edit summary
No edit summary
Line 4: Line 4:
local selectByStat = function(stat)
local selectByStat = function(stat)
-- List properties to grab and set up data structure to hold values
-- List properties to grab and set up data structure to hold values
local inKeys = {"Name","Tier","Cost","Slot",stat}
local inKeys = {"Name","Tier","Cost","Slot",stat,"Components"}
local outData = {}
local outData = {}
for x=1,#inKeys do
for x=1,#inKeys do
Line 12: Line 12:
local i = 1
local i = 1
for m,itemData in pairs(AllItemData) do
for m,itemData in pairs(AllItemData) do
if itemData[stat] ~= nil then -- If Item has given stat in its keys,
if itemData[stat] ~= nil and itemData[stat] ~= "0" then -- If Item has given stat in its keys,
for x = 1,#inKeys do
for x = 1,#inKeys do
outData[x][i] = itemData[inKeys[x]] -- grab stat and other values
outData[x][i] = itemData[inKeys[x]] -- grab stat and other values
Line 21: Line 21:
return outData
return outData
end
end
local colorBySlot = {}
colorBySlot["Weapon"] = "#A36202"
colorBySlot["Vitality"] = "#507A11"
colorBySlot["Spirit"] = "#704491"


p.tablefy = function(frame)
p.tablefy = function(frame)
local stat = frame.args[1]
local stat = frame.args[1]
local tableData = selectByStat(stat)
local tableData = selectByStat(stat)
local outString = '{| class="wikitable sortable"\n|-\n!Item!!Tier!!Cost!!Slot!!Value\n|-\n'
local outString = '{| class="wikitable sortable"\n|-\n!Item!!Tier!!Cost!!Slot!!Value\n'
for i=1,#tableData[1] do
for i=1,#tableData[1] do
outString = outString.."|-\n|[["..tableData[1][i].."]]||"..tableData[2][i].."||"..tableData[3][i].."||"..tableData[4][i].."||"..tableData[5][i].."\n"
outString = outString..'|-style="background: #A36202;"\n|{{ItemIcon|'..tableData[1][i].."}}||"..tableData[2][i].."||"..tableData[3][i].."||"..tableData[4][i].."||"..tableData[5][i].."\n"
end
end
return outString.."|}"
return outString.."|}"

Revision as of 17:18, 27 September 2024

Documentation for this module may be created at Module:ItemsByStat/doc

local p = {}
local AllItemData = mw.loadJsonData("Data:ItemData.json")

local selectByStat = function(stat)
	-- List properties to grab and set up data structure to hold values
	local inKeys = {"Name","Tier","Cost","Slot",stat,"Components"}
	local outData = {}
	for x=1,#inKeys do
		outData[x] = {}
	end
	
	local i = 1
	for m,itemData in pairs(AllItemData) do
		if itemData[stat] ~= nil and itemData[stat] ~= "0" then -- If Item has given stat in its keys,
			for x = 1,#inKeys do
				outData[x][i] = itemData[inKeys[x]] -- grab stat and other values
			end
			i = i+1
		end
	end
	return outData
end

local colorBySlot = {}
colorBySlot["Weapon"] = "#A36202"
colorBySlot["Vitality"] = "#507A11"
colorBySlot["Spirit"] = "#704491"

p.tablefy = function(frame)
	local stat = frame.args[1]
	local tableData = selectByStat(stat)
	local outString = '{| class="wikitable sortable"\n|-\n!Item!!Tier!!Cost!!Slot!!Value\n'
	for i=1,#tableData[1] do
		outString = outString..'|-style="background: #A36202;"\n|{{ItemIcon|'..tableData[1][i].."}}||"..tableData[2][i].."||"..tableData[3][i].."||"..tableData[4][i].."||"..tableData[5][i].."\n"
	end
	return outString.."|}"
end

return p