League of Legends Wiki

Want to contribute to this wiki?
Sign up for an account, and get started!
You can even turn off ads in your preferences.

Come join the LoL Wiki community Discord server!

READ MORE

League of Legends Wiki
Advertisement
-- <pre>
local p         = {}
local lib       = require('Module:Feature')
local userError = require('Dev:User error')

function p.get(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    
    local get       = require ('Module:Sandbox/Emptylord/Patch/getter')
    local champname = args['champname']     or args[1]
    local set       = tonumber(args['set']) or tonumber(args[2])
    local datatype  = args['datatype']      or args[3]
    
    local result = get[datatype](champname, set)
    
    if (datatype == "active" or dataype == "passive ") and result ~= nil then
        return frame:preprocess(result)
    elseif result == nil then
        return ""
    else
        return result
    end
end

function p.getRoster(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    
    local champData     = require('Module:Sandbox/Emptylord/Patch/data')
    local champTable    = {}
    local filter        = args['2'] or "None"
    local s             = ""
    
    
    local superclass   = {
        ["Enforcer"]    = "Fighter",
        ["Juggernaut"]  = "Fighter",
        ["Skirmisher"]  = "Fighter",
        
        ["Artillery"]   = "Slayer",
        ["Mage"]        = "Slayer",
        ["Ranger"]      = "Slayer",
        ["Rogue"]       = "Slayer",
        
        ["Disruptor"]   = "Support",
        ["Enchanter"]   = "Support",
        ["Warden"]      = "Support",
        
        ["Specialist"]  = "Specialist",
        ["Unspecified"] = "Unspecified",
    }
    
    local fulltype   = {
        ["Quality"]     = "Quality of life",
        ["Rework"]      = "Champion rework",
        ["Relaunch"]    = "Champion relaunch",
        ["Original"]    = "Original character",
        ["Imported"]    = "Imported character",
        ["Adopted"]     = "Adopted character",
        ["Unspecified"] = "Unspecified",
    }
    
    local statusflag   = {
        ["Concept"]     = "<span style='font-size: 75%; background-color: darkcyan; padding: 4px; border-radius: 4px; margin-left:1em; line-height: 18px;'>EARLY CONCEPT</span>",
        ["Draft"]      = "<span style='font-size: 75%; background-color: darkblue; padding: 4px; border-radius: 4px; margin-left:1em; line-height: 18px;'>WORK IN PROGRESS</span>",
        ["Published"]    = "<span style='font-size: 75%; background-color: darkgreen; padding: 4px; border-radius: 4px; margin-left:1em; line-height: 18px;'>COMPLETED</span>",
        ["Outdated"]    = "<span style='font-size: 75%; background-color: darkred; padding: 4px; border-radius: 4px; margin-left:1em; line-height: 18px;'>OUTDATED</span>",
        ["Retired"]     = "<span style='font-size: 75%; background-color: black; padding: 4px; border-radius: 4px; margin-left:1em; line-height: 18px;'>RETIRED</span>",
        ["Unspecified"] = "Unspecified",
    }
    
    for champname in pairs(champData) do
        table.insert(champTable, champname)
    end
    table.sort(champTable)
    
    local champcount    = #champTable
    
    local grid = mw.html.create('div')
    
    grid
        :attr('id', 'emptylord-grid')
        :addClass('centered-grid')
        :css('clear', 'both')
    
    for champion=1, champcount do
        if filter == "None" or champData[champion]["type"] == filter then
            local gridnode = mw.html.create('div')
            local _title = champData[champion]["title"] or ""
            local _disp = champData[champion]["disp_name"] or champion
            local _icon = champData[champion]["icon"] or "ChampionSquare.png"
            local _image = champData[champion]["image"] or "ChampionBanner.png"
            local _range = champData[champion]["range"] or "Missing"
            local _class = champData[champion]["class"] or "Missing"
            local _type = champData[champion]["projtype"] or "Unspecified"
            local _status = champData[champion]["projstatus"] or "Unspecified"
            local _cont = champData[champion]["contributors"] or ""
            local _desc = champData[champion]["description"] or ""
            local opacity = 1
            local s = ""
            
            if _type == "Unspecified" then opacity = 0.15 end
            
            gridnode
                :addClass('grid-icon emptylord-icon roster-icon')
                :attr('data-range', _range)
                :attr('data-class', _class)
                :attr('data-status', _status)
                :attr('data-type', _type)
                :attr('data-search', _title)
                :css('opacity', opacity)
                :wikitext("[[File:" .. _icon .. "|46px|link=]]")
                :done()
            
            if _type == "Unspecified" then 
                grid
                    :node(gridnode)
                    :newline()
            else
                local _classlist = ""
                for i in string.gmatch(_class, "([^,]+)") do
                    if i ~= "Missing" then
                        _classlist = _classlist .. "{{tip|Emptylord" .. i .. "|" .. i .. "}} "
                    else
                        _classlist = _classlist .. "{{tip|" .. i .. "}} "
                    end
                end
                
                s = s .. "<infobox>"
                    s = s .. "<header><div style='width:100%; text-align:center;'>".. (fulltype[_type] or "Unhandled type") .. " " .. (statusflag[_status] or "Unhandled status") .. "</div></header>"
                	s = s .. "<title><default>" .. _disp .. "</default></title>"
                	s = s .. "<data><default>[[File:" .. _image .. "|250px]]</default></data>"
                	s = s .. "<data><default>" .. _title .. "</default></data>"
                	s = s .. "<data><label>Range</label><default>{{tip|" .. _range .. "}}</default></data>"
                	s = s .. "<data><label>Classes</label><default>" .. _classlist .. "</default></data>"
                	s = s .. "<data><label>Contributors</label><default>" .. _cont .. "</default></data>"
                s = s .. "</infobox>"
                
                grid
                    :node(gridnode)
                    :newline()
                    :wikitext(frame:preprocess("<div class='roster-info'>" .. s .. _desc .. "</div>"))
            end
        else
            --skip champion
        end
    end
    
    return grid
end

return p
-- </pre>
-- [[Category:Lua]]
Advertisement