Fire Emblem Wiki
Advertisement
Fire Emblem Wiki

Documentation for this module may be created at Module:ClassInfo/doc

--This module is invoked by Template:Classstat, Template:ClassPromotions
--and Template:ClassSkills

local getArgs = require('Module:Arguments').getArgs
local getColor = require('Module:Color').colorByGame
local common = require('Module:Common')
local p = {}

local games = {
    fe1= '[[Fire Emblem: Shadow Dragon and the Blade of Light|FE1]]',
    fe2= '[[Fire Emblem Gaiden|FE2]]',
    fe3= '[[Fire Emblem: Mystery of the Emblem|FE3]]',
    fe4= '[[Fire Emblem: Genealogy of the Holy War|FE4]]',
    fe5= '[[Fire Emblem: Thracia 776|FE5]]',
    fe6= '[[Fire Emblem: The Binding Blade|FE6]]',
    fe7= '[[Fire Emblem: The Blazing Blade|FE7]]',
    fe8= '[[Fire Emblem: The Sacred Stones|FE8]]',
    fe9= '[[Fire Emblem: Path of Radiance|FE9]]',
    fe10='[[Fire Emblem: Radiant Dawn|FE10]]',
    fe11='[[Fire Emblem: Shadow Dragon|FE11]]',
    fe12='[[Fire Emblem: New Mystery of the Emblem|FE12]]',
    fe13='[[Fire Emblem Awakening|FE13]]',
    fe14='[[Fire Emblem Fates|FE14]]',
    ts=  '[[TearRing Saga: Utna Heroes Saga|TS]]',
    tms= '[[Tokyo Mirage Sessions ♯FE|TMS♯FE]]',
}

local function setRow(arg, game, ext)
    local class = common.colorLinks(game)
    local color = getColor[game]
    local val
    if(ext ~= nil) then
        val = string.gsub(arg[game..'-'..ext], '*', '||')
    else
        val = '\n| '..string.gsub(arg[game], '*', '||')
    end
    
    return
        '\n|style="background:'..color..'" class='..class..
        '|<b>'..games[game]..'</b> '..val..
        '\n|-'
end

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
    local out, cols
    local rows = ''
    local nP = 5      -- number of extended parameters
    local nFEG = 14 -- number of FE games
    
    -- COLUMNS
    if(args.type ==  'stat') then
        cols =
            '!![[HP]]  !! [[Str]] !! [[Mag]] !! [[Skl]] !! [[Spd]]'..
            '!![[Lck]] !! [[Def]] !! [[Res]] !! [[Mov]] !! [[Con]]'..
            '!![[Weight (character stat)|Wt.]]'..
            '!![[Weapon Rank|Wp.Rank]]'
    elseif(args.type == 'promotion') then
        cols = '!!Base Class !!width=50%|Promotion Method !!Promoted Class(es)'
    else
        cols = '!!Skill !!Requirements'
    end
    
    -- ROWS
    -- FE games
    for i = 1, nFEG do
        if(args['fe'..i] ~= nil) then rows = rows..setRow(args, 'fe'..i) end
        for j = 1, nP do
            if(args['fe'..i..'-'..j] ~= nil) then
                rows = rows..setRow(args, 'fe'..i, j) end
        end
    end
    
    -- TearRing Saga
    if(args['ts'] ~= nil) then rows = rows..setRow(args, 'ts') end
    for j = 1, nP do
        if(args['ts-'..j] ~= nil) then
            rows = rows..setRow(args, 'ts', j) end
    end
    
    -- TMS♯FE
    if(args['tms'] ~= nil) then rows = rows..setRow(args, 'tms') end
    for j = 1, nP do
        if(args['tms-'..j] ~= nil) then
            rows = rows..setRow(args, 'tms', j) end
    end
    
    -- FINAL OUTPUT
    out =
    '\n{|class="wikitable" style="text-align:center"'..
    '\n|-\n! '..
        cols..
    '\n|-'..
        rows..
    '\n|}'
    
    return out
end


return p
--[[Category:Modules]]
Advertisement