Module:BTD6 stats: Difference between revisions

mNo edit summary
changed to the new system
Line 11: Line 11:


local template_names = {
local template_names = {
attacks = "BTD6 attack",
attacks ="BTD6 attack",
projectiles = "BTD6 projectile",
projectiles ="BTD6 projectile",
abilities = "BTD6 ability",
collectables="BTD6 collectable",
effects = "BTD6 effect",
abilities ="BTD6 ability",
zones = "BTD6 zone",
effects ="BTD6 effect",
subtowers = "BTD6 tower",
buffs ="BTD6 buff",
buffs = "BTD6 buff"
zones ="BTD6 zone",
subtowers ="BTD6 tower"
}
}


Line 33: Line 34:
if type(v) == "table" and ssub(k, 1, 1) ~= "_" then
if type(v) == "table" and ssub(k, 1, 1) ~= "_" then
template[k] = {}
template[k] = {}
if prev_data[k] == nil then prev_data[k] = {} end
if prev_data[k] == nil then prev_data[k] = {} end
-- iterate through attacks/abilities/subtowers
-- iterate through attacks/abilities/subtowers
for kk, vv in pairs(v) do
for _, i in ipairs(v["_order"]) do
if k == "subtowers" then tinsert(template[k], sformat(header, kk)) end
if k == "subtowers" then tinsert(template[k], sformat(header, i)) end
if prev_data[k][kk] == nil then prev_data[k][kk] = {} end
if prev_data[k][i] == nil then prev_data[k][i] = {} end
-- parse sub-table of table
-- parse sub-table of table
tinsert(template[k], parse_stats(frame, kk, vv, prev_data[k][kk], template_names[k]))
tinsert(template[k], parse_stats(frame, i, v[i], prev_data[k][i], template_names[k]))
end
end
Line 78: Line 78:
-- iterate through attacks/abilities/subtowers
-- iterate through attacks/abilities/subtowers
for kk, vv in pairs(v) do
for _, i in ipairs(v["_order"]) do
if prev_data[k][kk] == nil then prev_data[k][kk] = {} end
if prev_data[k][i] == nil then prev_data[k][i] = {} end
-- parse sub-table of table
-- parse sub-table of table
tinsert(template[k], parse_stats(frame, kk, vv, prev_data[k][kk], template_names[k]))
tinsert(template[k], parse_stats(frame, i, v[i], prev_data[k][i], template_names[k]))
end
end
Line 116: Line 116:
if type(v) == "table" and ssub(k, 1, 1) ~= "_" then
if type(v) == "table" and ssub(k, 1, 1) ~= "_" then
if template[k] == nil then template[k] = {} end
if template[k] == nil then template[k] = {} end
if prev_data[k] == nil then prev_data[k] = {} end
if prev_data[k] == nil then prev_data[k] = {} end
-- iterate through attacks/abilities/subtowers
-- iterate through attacks/abilities/subtowers
for kk, vv in pairs(v) do
for _, i in ipairs(v["_order"]) do
if prev_data[k][kk] == nil then prev_data[k][kk] = {} end
if prev_data[k][i] == nil then prev_data[k][i] = {} end
-- parse sub-table of table
-- parse sub-table of table
parse_stats_full(frame, kk, vv, prev_data[k][kk], template_names[k])
parse_stats_full(frame, i, v[i], prev_data[k][i], template_names[k])
end
end
Line 138: Line 137:
-- iterate through attacks/abilities/subtowers
-- iterate through attacks/abilities/subtowers
for kk, vv in pairs(v) do
for _, i in ipairs(v["_order"]) do
if k == "subtowers" then tinsert(template[k], sformat(header, kk)) end
if k == "subtowers" then tinsert(template[k], sformat(header, i)) end
tinsert(template[k], parse_stats_full(frame, kk, nil, vv, template_names[k]))
tinsert(template[k], parse_stats_full(frame, i, nil, v[i], template_names[k]))
end
end
Line 169: Line 168:
-- iterate through attacks/abilities/subtowers
-- iterate through attacks/abilities/subtowers
for kk, vv in pairs(v) do
for _, i in ipairs(v["_order"]) do
if prev_data[k][kk] == nil then prev_data[k][kk] = {} end
if prev_data[k][i] == nil then prev_data[k][i] = {} end
-- parse sub-table of table
-- parse sub-table of table
parse_stats_full(frame, kk, vv, prev_data[k][kk], template_names[k])
parse_stats_full(frame, i, v[i], prev_data[k][i], template_names[k])
end
end
Line 186: Line 185:
-- iterate through attacks/abilities/subtowers
-- iterate through attacks/abilities/subtowers
for kk, vv in pairs(v) do
for _, i in ipairs(v["_order"]) do
if prev_data[k][kk] == nil then prev_data[k][kk] = {} end
if prev_data[k][i] == nil then prev_data[k][i] = {} end
-- parse sub-table of table
-- parse sub-table of table
tinsert(template[k], parse_stats_full(frame, kk, nil, vv, template_names[k]))
tinsert(template[k], parse_stats_full(frame, i, nil, v[i], template_names[k]))
end
end
Line 204: Line 203:
-- stats of a single tower
-- stats of a single tower
function p.base_stats(frame)
function p.base_stats(frame)
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s", frame.args[1]))
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s/new", frame.args[1]))
local header_level = frame.args["header level"] ~= nil and frame.args["header level"] or "3"
local header_level = frame.args["header level"] ~= nil and frame.args["header level"] or "3"
local header = "<h" .. header_level .. ">%s</h" .. header_level .. ">"
local header = "<h" .. header_level .. ">%s</h" .. header_level .. ">"
Line 221: Line 220:
-- stats of a paragon
-- stats of a paragon
function p.paragon(frame)
function p.paragon(frame)
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s", frame.args[1]))
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s/new", frame.args[1]))
local out = parse_tower(frame, data, my_data, "<h3>%s</h3>")
local out = parse_tower(frame, data, my_data, "<h3>%s</h3>")
Line 229: Line 228:
-- stat changes of a tower
-- stat changes of a tower
function p.tower_upgrade_stats(frame)
function p.tower_upgrade_stats(frame)
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s", frame.args[1]))
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s/new", frame.args[1]))
local ret = {}
local ret = {}
Line 241: Line 240:
local upgrade_crosspaths = {
local upgrade_crosspaths = {
--["100"] = {{"_110", "_120", "_130", "_140", "_150"}, {"_101", "_102", "_103", "_104", "_105"}},
["_100"] = {{"_110"}, {"_101"}},
--["200"] = {{"_210", "_220", "_230", "_240", "_250"}, {"_201", "_202", "_203", "_204", "_205"}},
["_200"] = {{"_210", "_220"}, {"_201", "_202"}},
--["010"] = {{"_110", "_210", "_310", "_410", "_510"}, {"_011", "_012", "_013", "_014", "_015"}},
["_010"] = {{"_110"}, {"_011"}},
--["020"] = {{"_120", "_220", "_320", "_420", "_520"}, {"_021", "_022", "_023", "_024", "_025"}},
["_020"] = {{"_120", "_220"}, {"_021", "_022"}},
--["001"] = {{"_101", "_201", "_301", "_401", "_501"}, {"_011", "_021", "_031", "_041", "_051"}},
["_001"] = {{"_101"}, {"_011"}},
--["002"] = {{"_102", "_202", "_302", "_402", "_502"}, {"_012", "_022", "_032", "_042", "_052"}},
["_002"] = {{"_102", "_202"}, {"_012", "_022"}},
["_100"] = {{}},
["_200"] = {{}},
["_010"] = {{}},
["_020"] = {{}},
["_001"] = {{}},
["_002"] = {{}},
["_300"] = {{"_310", "_320"}, {"_301", "_302"}},
["_300"] = {{"_310", "_320"}, {"_301", "_302"}},
["_400"] = {{"_410", "_420"}, {"_401", "_402"}},
["_400"] = {{"_410", "_420"}, {"_401", "_402"}},
Line 282: Line 275:
-- stat changes of a hero
-- stat changes of a hero
function p.hero_level_changes(frame)
function p.hero_level_changes(frame)
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s", frame.args[1]))
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s/new", frame.args[1]))
local ret = {}
local ret = {}
Line 303: Line 296:
-- stat changes of a hero
-- stat changes of a hero
function p.hero_level_stats(frame)
function p.hero_level_stats(frame)
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s", frame.args[1]))
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s/new", frame.args[1]))
local ret = {}
local ret = {}
Line 323: Line 316:


function p.last_updated(frame)
function p.last_updated(frame)
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s", frame.args[1]))
local data = mw.loadJsonData(string.format("Module:BTD6 stats/%s/new", frame.args[1]))
return string.format("<div class='hatnote'>This data was last updated for: [[Bloons TD 6 v%s|version %s]]</div>", data["_last_updated"], data["_last_updated"])
return string.format("<div class='hatnote'>This data was last updated for: [[Bloons TD 6 v%s|version %s]]</div>", data["_last_updated"], data["_last_updated"])
end
end


return p
return p