Module:Face

From Elwiki

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

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

function p.main(frame)
    local args = getArgs(frame);

    local CHARACTER_ID = {
        Elsword = 1,
        Aisha = 2,
        Rena = 3,
        Raven = 4,
        Eve = 5,
        Chung = 6,
        Ara = 7,
        Elesis = 8,
        Add = 9,
        LuCiel = 10,
        Rose = 11,
        Ain = 12,
        Laby = 13,
        Noah = 14,
        Lithia = 15
    }

    local character = args[1]
    local data = args[2]
    local isBase = not data or data == "base";
    local pathIndex = ""
    local jobIndex = ""
    local transString = ""
    local link = args.link and (isBase and character or args.link) or ""
    local lang = args.link and args.lang and ("/" .. args.lang) or ""
    local scale = args.scale or 1
    local id = CHARACTER_ID[character]
    local charId = string.len(id) == 1 and ("0" .. id) or id

    if isBase then
        jobIndex = "NO_OCCUPATION"
    else
        local arr = split(data, "x");
        if not #arr then
            arr[1] = data
        end
        pathIndex = arr[1] .. "LINE_"
        if string.find(pathIndex, "t") then
            transString = "_T"
            pathIndex = pathIndex:gsub("t", "")
            arr[2] = "2"
        end
        jobIndex = arr[2] and ("0" .. arr[2]) or ""
    end

    local image = mw.html.create('div'):addClass('image-cropped')
    image:tag('div'):addClass('image-wrap image-face')
        :attr("style", "width: " .. 116 * scale .. "px; height: " .. 60 * scale .. "px;")
        :wikitext("[[File:Character Face " .. charId .. "-FACE " .. pathIndex .. jobIndex .. transString .. ".png|link=" .. link .. lang .. "]]")

    return tostring(image)
end

return p