No edit summary |
(Undo testing) Tag: Manual revert |
||
(29 intermediate revisions by 2 users not shown) | |||
Line 18: | Line 18: | ||
-- 17 |?Module:Effect10 | -- 17 |?Module:Effect10 | ||
local moduleCalculateCost = require('Module:ModuleCalculateCost') | |||
local p = {} | local p = {} | ||
Line 43: | Line 40: | ||
local tableContents = "" | local tableContents = "" | ||
local maxLevel = splitArray[4] | local maxLevel = tonumber(splitArray[4]) | ||
if maxLevel == nil then | |||
maxLevel = 10 --This is a safety in case the value has not been entered. Assume the max. | |||
end | |||
for i = 0,maxLevel do | for i = 0,maxLevel do | ||
local row = | local row = | ||
"\n|-\n" .. | "\n|-\n" .. | ||
"| ".. i.. | "| ".. i.. | ||
" || " .. | " || " .. moduleCalculateCost.calculate_module_cost(splitArray[5], i, splitArray[6]) .. --cost, level, exclusivecategory | ||
" || " .. | " || " .. splitArray[7 + i] --Effect0 is element 7, plus whatever element level we're looking at | ||
tableContents = tableContents .. row | tableContents = tableContents .. row | ||
Line 57: | Line 57: | ||
local tabContent = tableHeader .. tableContents .. tableFooter | local tabContent = tableHeader .. tableContents .. tableFooter | ||
return | return tabContent | ||
end | end | ||
Line 66: | Line 66: | ||
split(frame.args.csv) | split(frame.args.csv) | ||
local | local completedTable = generateTable() | ||
return frame:preprocess( | return frame:preprocess(completedTable) | ||
end | end | ||
return p | return p |
Latest revision as of 15:28, 30 June 2024
Documentation for this module may be created at Module:ModuleUniqueStatTable/doc
-- IMPORTANT! This assumes data is structured EXACTLY in this order! -- 1 Useless page identifier -- 2 |?Module:Name -- 3 |?Module:Class -- 4 |?Module:MaxEnhancementLevel -- 5 |?Module:CapacityCost0 -- 6 |?Module:ExclusiveCategory -- 7 |?Module:Effect0 -- 8 |?Module:Effect1 -- 9 |?Module:Effect2 -- 10 |?Module:Effect3 -- 11 |?Module:Effect4 -- 12 |?Module:Effect5 -- 13 |?Module:Effect6 -- 14 |?Module:Effect7 -- 15 |?Module:Effect8 -- 16 |?Module:Effect9 -- 17 |?Module:Effect10 local moduleCalculateCost = require('Module:ModuleCalculateCost') local p = {} local splitArray = {} local function split(str) splitArray = {} for match in (str.."@"):gmatch("(.-)".."@") do table.insert(splitArray, match) end end local function generateTable() local tableHeader = [[ {| class="wikitable" style="width:100%;" |- ! Level !! Cost !! Effect ]] local tableContents = "" local maxLevel = tonumber(splitArray[4]) if maxLevel == nil then maxLevel = 10 --This is a safety in case the value has not been entered. Assume the max. end for i = 0,maxLevel do local row = "\n|-\n" .. "| ".. i.. " || " .. moduleCalculateCost.calculate_module_cost(splitArray[5], i, splitArray[6]) .. --cost, level, exclusivecategory " || " .. splitArray[7 + i] --Effect0 is element 7, plus whatever element level we're looking at tableContents = tableContents .. row end local tableFooter = "\n|}" local tabContent = tableHeader .. tableContents .. tableFooter return tabContent end function p.processData(frame) if frame.args.csv == nil then return "ERROR: Module:ModuleUniqueStatTable got no csv string! Please tell us on Discord!" end split(frame.args.csv) local completedTable = generateTable() return frame:preprocess(completedTable) end return p