Module:CharStats: Difference between revisions

From Elwiki
(Created page with "require('Module:CommonFunctions') local getArgs = require('Module:Arguments').getArgs local p = {} -- Main process function p.main(frame, title) local args = getArgs(fram...")
 
No edit summary
 
(12 intermediate revisions by 2 users not shown)
Line 7: Line 7:
     local args = getArgs(frame);
     local args = getArgs(frame);


     local speed = args.l_slow;
     local stats = {};
     if args['Speed'] == '2' then
     function readStats(stat, value1, value2, value3)
        speed = args.l_average;
        stats[stat] = args[value1]
    elseif args['Speed'] == '3' then
        if args[stat] == '2' then
        speed = args.l_fast;
            stats[stat] = args[value2]
        elseif args[stat] == '3' then
            stats[stat] = args[value3]
        elseif args[stat] == '0' or args[stat] == nil then
            stats[stat] = args['l_unk']
        end
     end
     end


     local range = args.l_short;
     readStats('Speed', 'l_slow', 'l_average', 'l_fast');
    if args['Range'] == '2' then
     readStats('Range', 'l_short', 'l_medium', 'l_long');
        range = args.l_medium;
     readStats('Difficulty', 'l_easy', 'l_normal', 'l_hard');
     elseif args['Range'] == '3' then
        range = args.l_long;
     end
 
    local difficulty = args.l_easy;
    if args['Difficulty'] == '2' then
        difficulty = args.l_normal;
    elseif args['Difficulty'] == '3' then
        difficulty = args.l_hard;
    end


     local type = args.l_magical;
     local type = args.l_magical;
Line 36: Line 31:


     local char_stats = mw.html.create('div'):addClass('char-stats');
     local char_stats = mw.html.create('div'):addClass('char-stats');
     char_stats:tag('div').addClass('.char-stats-cat'):tag('span'):wikitext(args.l_speed);
 
    char_stats:tag('div').addClass('.char-stats-active'):wikitext(speed);
     function addCell(cell_class, wikitext, has_span)
     char_stats:tag('div').addClass('.char-stats-attack'):wikitext(type_img);
        local cell = char_stats:tag('div'):addClass(cell_class);
     char_stats:tag('div').addClass('.char-stats-cat'):tag('span'):wikitext(args.l_range);
        if (has_span) then
     char_stats:tag('div').addClass('.char-stats-active'):wikitext(range);
            cell:tag('span'):wikitext(wikitext);
     char_stats:tag('div').addClass('.char-stats-cat'):tag('span'):wikitext(args.l_difficulty);
        else
     char_stats:tag('div').addClass('.char-stats-active'):wikitext(difficulty);
            cell:wikitext(wikitext);
     char_stats:tag('div').addClass('.char-stats-attack-caption'):tag('span'):wikitext(type);
        end
    end
 
    addCell('char-stats-cat', args.l_speed, true);
     addCell('char-stats-active', stats['Speed']);
    addCell('char-stats-attack', type_img);
     addCell('char-stats-cat', args.l_range, true);
     addCell('char-stats-active', stats['Range']);
     addCell('char-stats-cat', args.l_difficulty, true);
     addCell('char-stats-active', stats['Difficulty']);
     addCell('char-stats-attack-caption', type, true);


     return char_stats;
     return char_stats;

Latest revision as of 15:39, 7 July 2022

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

require('Module:CommonFunctions')
local getArgs = require('Module:Arguments').getArgs
local p = {}

-- Main process
function p.main(frame, title)
    local args = getArgs(frame);

    local stats = {};
    function readStats(stat, value1, value2, value3)
        stats[stat] = args[value1]
        if args[stat] == '2' then
            stats[stat] = args[value2]
        elseif args[stat] == '3' then
            stats[stat] = args[value3]
        elseif args[stat] == '0' or args[stat] == nil then
            stats[stat] = args['l_unk']
        end
    end

    readStats('Speed', 'l_slow', 'l_average', 'l_fast');
    readStats('Range', 'l_short', 'l_medium', 'l_long');
    readStats('Difficulty', 'l_easy', 'l_normal', 'l_hard');

    local type = args.l_magical;
    local type_img = '[[File:UI - Magical Class.png]]';
    if args['Damage'] == 'P' then
        type = args.l_physical;
        type_img = '[[File:UI - Physical Class.png]]';
    end

    local char_stats = mw.html.create('div'):addClass('char-stats');

    function addCell(cell_class, wikitext, has_span)
        local cell = char_stats:tag('div'):addClass(cell_class);
        if (has_span) then
            cell:tag('span'):wikitext(wikitext);
        else
            cell:wikitext(wikitext);
        end
    end

    addCell('char-stats-cat', args.l_speed, true);
    addCell('char-stats-active', stats['Speed']);
    addCell('char-stats-attack', type_img);
    addCell('char-stats-cat', args.l_range, true);
    addCell('char-stats-active', stats['Range']);
    addCell('char-stats-cat', args.l_difficulty, true);
    addCell('char-stats-active', stats['Difficulty']);
    addCell('char-stats-attack-caption', type, true);

    return char_stats;

end

return p