Documentation for this module may be created at Module:PromotionGains/doc
--This module is invoked by Template:PromotionGains
--<nowiki>
local p = {}
local getArgs = require('Module:Arguments').getArgs
local getColor = require('Module:Color').colorByGame
local common = require('Module:Common')
local cols = require('Module:CharStat/data').stats
function p.main(frame)
args = getArgs(frame)
if(pcall(p._main, args)) then
return p._main(args)
else
return '[[Category:Pages with script errors]]<span style="color: red">Missing \'game\' parameter. See [[Template:PromotionGains]] for more info.</span>'
end
end
function p._main(args)
local out, class, colspan, colspan1, colspan2
local nCols = 0 --number of columns
local columns = ''
local game = string.lower(args.game)
local color = getColor[game]
class = common.colorLinks(game)
-- Header columns iteration
for i = 1, #cols do
if(args[cols[i][2]] ~= nil) then
columns = columns..cols[i][3]
nCols = nCols + 1
end
end
-- Data columns iteration
columns = columns..'\n|-class="s-cells"'
for i = 1, #cols do
if(args[cols[i][2]] ~= nil) then columns = columns..'\n| '..args[cols[i][2]] end
end
-- Assigning colspan based on number of columns
if (nCols % 2 == 0) then
colspan2 = nCols / 2
colspan1 = colspan2
else
colspan2 = math.ceil(nCols / 2)
colspan1 = colspan2 - 1
end
-- Skills and weapon ranks
colspan = colspan1 + colspan2
if(args.skills ~= nil or args.wrank ~= nil) then columns=columns..'\n|-bgcolor='..color..' class='..class end
if(args.skills ~= nil and args.wrank ~= nil) then
columns=columns..
'\n!colspan='..colspan1..'|[[Skills]]'..
'\n!colspan='..colspan2..'|[[Weapon Level]]s'..
'\n|-'..
'\n|colspan='..colspan1..'| '..args.skills..
'\n|colspan='..colspan2..'| '..args.wrank
elseif(args.skills ~= nil and args.wrank == nil) then
columns=columns..
'\n!colspan='..colspan..'|[[Skills]]'..
'\n|-'..
'\n|colspan='..colspan..'| '..args.skills
elseif(args.skills == nil and args.wrank ~= nil) then
columns=columns..
'\n!colspan='..colspan..'|[[Weapon Level]]s'..
'\n|-'..
'\n|colspan='..colspan..'| '..args.wrank
end
--Final output
out =
'{| class="statbox"'..
'\n|-bgcolor='..color..' class='..class
if(args.req == nil or args.req == '-') then
out = out..
'\n!colspan='..colspan..'|Promoted Class'..
'\n|-'..
'\n|colspan='..colspan..'| '..common.setDefault(args.class)
else
out = out..
'\n!colspan='..colspan1..'|Item Required'..
'\n!colspan='..colspan2..'|Promoted Class'..
'\n|-'..
'\n|colspan='..colspan1..'| '..common.setDefault(args.req)..
'\n|colspan='..colspan2..'| '..common.setDefault(args.class)
end
out = out..'\n|-bgcolor='..color..' class='..class..columns..'\n|}'
return out
end
return p
--</nowiki>
--[[Category:Modules]]