此模塊的文檔可以在Module:PromotionGains/doc創建
--This module is invoked by Template:PromotionGains
local p = {}
local getArgs = require('Module:Arguments').getArgs
local getColor = require('Module:Color').colorByGame
local common = require('Module:Common')
local cols = {
-- character stats
{'lv', '\n![[Level|Lv]]'},
{'hp', '\n![[HP]]'},
{'ep', '\n![[EP]]'},
{'str', '\n![[Strength|Str]]'},
{'mag', '\n![[Magic (stat)|Mag]]'},
{'skl', '\n![[Skill (stat)|Skl]]'},
{'spd', '\n![[Speed (stat)|Spd]]'},
{'agl', '\n![[Speed (stat)|Agl]]'},
{'def', '\n![[Defense|Def]]'},
{'res', '\n![[Resistance|Res]]'},
{'con', '\n![[Constitution|Con]]'},
{'bld', '\n![[Constitution|Bld]]'},
{'wlv', '\n![[Weapon Level|Wlv]]'},
{'mov', '\n![[Movement|Mov]]'},
}
function p.main(frame)
args = getArgs(frame)
if(pcall(p._main, args)) then
return p._main(args)
else
return '<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][1]] ~= nil) then
columns = columns..cols[i][2]
nCols = nCols + 1
end
end
-- Data columns iteration
columns = columns..'\n|-class="s-cells"'
for i = 1, #cols do
if(args[cols[i][1]] ~= nil) then columns = columns..'\n| '..args[cols[i][1]] 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 Rank]]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 Rank]]s'..
'\n|-'..
'\n|colspan='..colspan..'| '..args.wrank
end
--Final output
out =
'{| class="statbox" style="text-align: center"'..
'\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
--[[Category:Modules]]