Module:WeaponStat

--This module is invoked by Template:WeaponStat

local wps = {} local getArgs = require('Module:Arguments').getArgs local getColor = require('Module:Color').colorByGame local common = require('Module:Common') local cols = { --Weapon stats wlv =  '\n!WLv', rank = '\n!Rank', uses = '\n!Uses', whp =  '\n!WHp', mt =   '\n!Mt', power = '\n!Power', hit =  '\n!Hit', crt =  '\n!Crt', rng =  '\n!Rng', wt =   '\n!Wt', wex =  '\n!WEx', worth = '\n!Worth', avoid = '\n!Avoid', sp =   '\n!SP', rarity ='\n!Rarity' } local res = { 'sword', 'lance', 'axe', 'bow', 'fire', 'ice', 'thunder', 'wind', 'light', 'dark' }

function wps.main(frame) local args = getArgs(frame) if(pcall(wps._main, args)) then return wps._main(args) else return ' Missing \'game\' parameter. See Template:WeaponStat for more info. '   end end

function wps._main(args) local game = string.lower(args.game) local class = common.colorLinks(game) local color = getColor[game] local out, columns, n_cols, top_colspan, bot_colspan, maxiter, maxcnt -- HEADERS if(string.match(game, 'fe')) then - Fire Emblem games -- i = tonumber(string.sub(game, 3))  -- FE installment if (i == nil) then n_cols = 4 columns = cols.mt.. cols.rng.. cols.sp.. cols.rarity else if (i == 1 or i == 3) then n_cols = 8 columns = cols.wlv.. cols.uses.. cols.mt.. cols.hit.. cols.crt.. cols.rng.. cols.wt.. cols.worth elseif (i == 2 or i == 15) then n_cols = 5 columns = cols.mt.. cols.hit.. cols.crt.. cols.rng.. cols.wt           elseif (i == 4) then n_cols = 7 columns = cols.rank.. cols.uses.. cols.mt.. cols.hit.. cols.rng.. cols.wt.. cols.worth elseif (i >= 5 and i <= 11) then n_cols = 9 columns = cols.rank.. cols.uses.. cols.mt.. cols.hit.. cols.crt.. cols.rng.. cols.wt.. cols.wex.. cols.worth elseif (i == 12 or i == 13) then n_cols = 8 columns = cols.rank.. cols.uses.. cols.mt.. cols.hit.. cols.crt.. cols.rng.. cols.wex.. cols.worth else n_cols = 9 columns = cols.rank.. cols.uses.. cols.mt.. cols.hit.. cols.crt.. cols.avoid.. cols.rng.. cols.wex.. cols.worth end end elseif( game == 'ts' ) then - TearRing Saga --- n_cols = 8 columns = cols.wlv.. cols.whp.. cols.power.. cols.hit.. cols.crt.. cols.rng.. cols.wt.. cols.worth elseif( game == 'tms' ) then -- Tokyo Mirage Sessions --- n_cols = 1 + #res columns = cols.power for i = 1, #res do           columns = columns..'\n!'.. mw.getCurrentFrame:expandTemplate{ title = 'Weapon', args = { 'tms', res[i] } }       end end -- DATA maxiter = n_cols + 2 top_colspan = math.floor(n_cols / 2) top_colspan1 = top_colspan bot_colspan = n_cols if( n_cols % 2 ~= 0 ) then top_colspan1 = top_colspan + 1 end columns = columns..'\n|-class="s-cells"' for cnt = 3, maxiter do       columns = columns..'\n| '..common.setDefault(args[tonumber(cnt)]) maxcnt = cnt + 1 end -- OUTPUT out = '{| class="statbox" style="min-width:30%; margin-bottom: 15px; max-width:65%; text-align:center"'.. '\n|-bgcolor='..color..' class='..class.. '\n!colspan='.. top_colspan1 ..'|Name'.. '\n!colspan='.. top_colspan    ..'|Type'.. '\n|-'.. '\n|colspan='.. top_colspan1 ..'|\n'..common.setDefault(args[1]).. '\n|colspan='.. top_colspan    ..'|\n'..common.setDefault(args[2]).. '\n|-bgcolor='..color..' class='..class.. columns.. '\n|-' if( game == 'tms') then bot_colspan = math.floor(n_cols / 3) bot_colspan1 = bot_colspan + 2 out = out.. '\n!bgcolor='..color..' class='..class..' colspan='..bot_colspan..'|Effect'.. '\n!bgcolor='..color..' class='..class..' colspan='..bot_colspan..'|Skills'.. '\n!bgcolor='..color..' class='..class..' colspan='..bot_colspan1..'|Performa Required'.. '\n|-'.. '\n|colspan='..bot_colspan..'|\n'..common.setDefault(args[maxcnt]).. '\n|colspan='..bot_colspan..'|\n'..common.setDefault(args[maxcnt + 1]).. '\n|colspan='..bot_colspan1..'|\n'..common.setDefault(args[maxcnt + 2]) else out = out.. '\n!bgcolor='..color..' class='..class..' colspan='..bot_colspan..'|Effect'.. '\n|-'.. '\n|colspan='..bot_colspan..'|\n'..common.setDefault(args[maxcnt]) end return out..'\n|}' end

return wps --