Module:Sandbox/One Bar: Difference between revisions

One Bar (talk | contribs)
typo
One Bar (talk | contribs)
generated table test
Line 1: Line 1:
local p = {};
local p = {};
local data = mw.loadJsonData("Data:ItemData.json")
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(data) do
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