Module:Sandbox/One Bar: Difference between revisionsGive feedback
Jump to navigation
Jump to search
typo |
generated table test |
||
| Line 1: | Line 1: | ||
local p = {}; | local p = {}; | ||
local | local item_data = mw.loadJsonData("Data:ItemData.json") | ||
local heroes_data = mw.loadJsonData("Data:HeroData.json") | |||
local soul_unlocks_data = mw.loadJsonData("Data:SoulUnlockData.json") | |||
local function souls(item) | |||
return frame:expandTemplate{ title = 'Souls', args = {item}} | |||
end | |||
local function get_pi_list() | |||
local soul_pis = {} | |||
for _, v in ipairs(soul_unlocks_data) do | |||
if (v["PowerIncrease"]) then | |||
table.insert(soul_pis, v["RequiredSouls"]) | |||
end | |||
end | |||
return soul_pis | |||
end | |||
p.pi_table = function(frame) | |||
local pi_souls_list = get_pi_list() | |||
local property = frame:getParent().args[1] | |||
local createTable = mw.html.create('table'):addClass('wikitable sortable'):done() | |||
local createTableHeader = mw.html.create('tr') | |||
createTableHeader | |||
:tag('th'):wikitext('Hero'):done() | |||
:tag('th'):wikitext('Base'):done() | |||
:tag('th'):wikitext('PL Increase'):done() | |||
for _, v in ipairs(pi_souls_list) do | |||
createTableHeader:tag('th'):wikitext(souls(v)):done() | |||
end | |||
createTable:node(createTableHeader) | |||
for _, hero in pairs(heroes_data) do | |||
local base = hero[property] | |||
local shots = hero["BulletsPerShot"] | |||
local level = hero["LevelScaling"][property] | |||
local tableData = mw.html.create('tr') | |||
tableData | |||
:tag('td'):wikitext(hero["Name"]):done() | |||
:tag('td'):wikitext(base):done() | |||
:tag('td'):wikitext(level):done() | |||
for i, v in ipairs(pi_souls_list) do | |||
local total = base + level * i | |||
tableData | |||
:tag('td'):wikitext(total):done() | |||
end | |||
createTable:node(tableData) | |||
end | |||
return tostring(createTable) | |||
end | |||
local function get_disabled_items_array() | local function get_disabled_items_array() | ||
local disabledItems = {} | local disabledItems = {} | ||
for k, v in pairs( | for k, v in pairs(item_data) do | ||
if (v["IsDisabled"] == true and v["Name"] ~= nil) then | if (v["IsDisabled"] == true and v["Name"] ~= nil) then | ||
disabledItems[k] = v | disabledItems[k] = v | ||
Revision as of 19:15, 14 May 2025
Documentation for this module may be created at Module:Sandbox/One Bar/doc
local p = {};
local item_data = mw.loadJsonData("Data:ItemData.json")
local heroes_data = mw.loadJsonData("Data:HeroData.json")
local soul_unlocks_data = mw.loadJsonData("Data:SoulUnlockData.json")
local function souls(item)
return frame:expandTemplate{ title = 'Souls', args = {item}}
end
local function get_pi_list()
local soul_pis = {}
for _, v in ipairs(soul_unlocks_data) do
if (v["PowerIncrease"]) then
table.insert(soul_pis, v["RequiredSouls"])
end
end
return soul_pis
end
p.pi_table = function(frame)
local pi_souls_list = get_pi_list()
local property = frame:getParent().args[1]
local createTable = mw.html.create('table'):addClass('wikitable sortable'):done()
local createTableHeader = mw.html.create('tr')
createTableHeader
:tag('th'):wikitext('Hero'):done()
:tag('th'):wikitext('Base'):done()
:tag('th'):wikitext('PL Increase'):done()
for _, v in ipairs(pi_souls_list) do
createTableHeader:tag('th'):wikitext(souls(v)):done()
end
createTable:node(createTableHeader)
for _, hero in pairs(heroes_data) do
local base = hero[property]
local shots = hero["BulletsPerShot"]
local level = hero["LevelScaling"][property]
local tableData = mw.html.create('tr')
tableData
:tag('td'):wikitext(hero["Name"]):done()
:tag('td'):wikitext(base):done()
:tag('td'):wikitext(level):done()
for i, v in ipairs(pi_souls_list) do
local total = base + level * i
tableData
:tag('td'):wikitext(total):done()
end
createTable:node(tableData)
end
return tostring(createTable)
end
local function get_disabled_items_array()
local disabledItems = {}
for k, v in pairs(item_data) do
if (v["IsDisabled"] == true and v["Name"] ~= nil) then
disabledItems[k] = v
end
end
return disabledItems
end
p.disabledItemsTable = function(frame)
local requirements = {}
local listofItems = ""
local filteredData = {}
filteredData = get_disabled_items_array()
local createTable = mw.html.create('table')
:addClass('wikitable sortable')
:tag('caption'):wikitext("List of items"):done()
local createTableHeader = mw.html.create('tr')
createTableHeader
:tag('th'):wikitext('Variable'):done()
:tag('th'):wikitext('Name'):done()
:tag('th'):wikitext('Category'):done()
:tag('th'):wikitext('Description'):done()
createTable:node(createTableHeader)
-- query all the filtered items. itemName is the item table.
for internalName, itemName in pairs(filteredData) do
local display = itemName["Name"]
listofItems = listofItems .. itemName["Name"] .. "<br/>"
local categoryDisplay = itemName["Slot"]
local description = itemName["Description"]
local tableData = mw.html.create('tr')
tableData
:tag('td'):wikitext(internalName):done()
:tag('td'):wikitext(display):done()
:tag('td'):wikitext(categoryDisplay):done()
:tag('td'):wikitext(description):done()
table.insert(requirements, tableData)
end
for _, row in ipairs(requirements) do
createTable:node(row)
end
return tostring(createTable)
end
return p