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
No edit summary
m (Protected "Module:Sandbox/Emptylord/Patch": Vandalism potential (‎[edit=autoconfirmed] (indefinite) ‎[move=autoconfirmed] (indefinite)))
(17 intermediate revisions by one other user not shown)
Line 68: Line 68:
 
local champTable = {}
 
local champTable = {}
 
local filter = args['filter'] or "None"
 
local filter = args['filter'] or "None"
  +
local filter2 = args['filter2'] or "None"
  +
local links = args['links'] or "false"
 
local gridonly = args['gridonly'] or "false"
 
local gridonly = args['gridonly'] or "false"
 
local s = ""
 
local s = ""
Line 84: Line 86:
 
 
 
for _, champion in pairs(champTable) do
 
for _, champion in pairs(champTable) do
if filter == "None" or champData[champion]["projtype"] == filter then
+
if filter == "None" or champData[champion]["projtype"] == filter or champData[champion]["projtype"] == filter2 then
 
local gridnode = mw.html.create('div')
 
local gridnode = mw.html.create('div')
 
local _title = champData[champion]["title"] or ""
 
local _title = champData[champion]["title"] or ""
Line 90: Line 92:
 
local _icon = champData[champion]["icon"] or "ChampionSquare.png"
 
local _icon = champData[champion]["icon"] or "ChampionSquare.png"
 
local _image = champData[champion]["image"] or "ChampionBanner.png"
 
local _image = champData[champion]["image"] or "ChampionBanner.png"
local _range = champData[champion]["range"] or "Missing"
+
local _range = champData[champion]["range"] or "Unspecified"
local _class = champData[champion]["class"] or "Missing"
+
local _class = champData[champion]["class"] or "Unspecified"
 
local _type = champData[champion]["projtype"] or "Unspecified"
 
local _type = champData[champion]["projtype"] or "Unspecified"
 
local _status = champData[champion]["projstatus"] or "Unspecified"
 
local _status = champData[champion]["projstatus"] or "Unspecified"
 
local _cont = champData[champion]["contributors"] or ""
 
local _cont = champData[champion]["contributors"] or ""
 
local opacity = 1
 
local opacity = 1
  +
local link = ""
  +
local cursor = "default"
 
local s = ""
 
local s = ""
 
 
 
if _type == "Unspecified" then opacity = 0.15 end
 
if _type == "Unspecified" then opacity = 0.15 end
  +
if _type ~= "Unspecified" then cursor = "pointer" end
  +
if links ~= "false" then link = "User:Emptylord/Patch/" .. champion end
  +
  +
local _classlist = ""
  +
for i in string.gmatch(_class, "([^,]+)") do
  +
_classlist = superclass[i] .. "," .. i .. ","
  +
end
 
 
 
gridnode
 
gridnode
 
:addClass('grid-icon emptylord-icon roster-icon')
 
:addClass('grid-icon emptylord-icon roster-icon')
 
:attr('data-range', _range)
 
:attr('data-range', _range)
:attr('data-class', _class)
+
:attr('data-class', _classlist)
 
:attr('data-status', _status)
 
:attr('data-status', _status)
 
:attr('data-type', _type)
 
:attr('data-type', _type)
 
:attr('data-search', _title)
 
:attr('data-search', _title)
 
:css('opacity', opacity)
 
:css('opacity', opacity)
:wikitext("[[File:" .. _icon .. "|46px|link=]]")
+
:css('cursor', cursor)
  +
:wikitext("[[File:" .. _icon .. "|46px|link=" .. link .. "]]")
 
:done()
 
:done()
 
 
Line 118: Line 130:
 
local _classlist = ""
 
local _classlist = ""
 
for i in string.gmatch(_class, "([^,]+)") do
 
for i in string.gmatch(_class, "([^,]+)") do
if i ~= "Missing" then
+
if i ~= "Unspecified" then
 
_classlist = _classlist .. "{{tip|Emptylord" .. i .. "|" .. i .. "}} "
 
_classlist = _classlist .. "{{tip|Emptylord" .. i .. "|" .. i .. "}} "
 
else
 
else
Line 135: Line 147:
 
s = s .. "</infobox>"
 
s = s .. "</infobox>"
 
 
s = s .. "{{User:Emptylord/Patch/" .. champion .. "}}"
+
s = s .. "{{:User:Emptylord/Patch/" .. champion .. "}}"
 
 
 
grid
 
grid

Revision as of 09:53, 22 May 2020

-- <pre>
local p         = {}
local lib       = require('Module:Feature')
local json      = require('Module:JSON')
local userError = require('Dev:User error')
local FN        = require('Module:Filename')

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",
}

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['filter'] or "None"
    local filter2       = args['filter2'] or "None"
    local links         = args['links'] or "false"
    local gridonly      = args['gridonly'] or "false"
    local s             = ""
    
    for champname in pairs(champData) do
        table.insert(champTable, champname)
    end
    table.sort(champTable)
    
    local grid = mw.html.create('div')
    
    grid
        :attr('id', 'emptylord-grid')
        :addClass('centered-grid')
        :css('clear', 'both')
    
    for _, champion in pairs(champTable) do
        if filter == "None" or champData[champion]["projtype"] == filter or champData[champion]["projtype"] == filter2 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 "Unspecified"
            local _class = champData[champion]["class"] or "Unspecified"
            local _type = champData[champion]["projtype"] or "Unspecified"
            local _status = champData[champion]["projstatus"] or "Unspecified"
            local _cont = champData[champion]["contributors"] or ""
            local opacity = 1
            local link = ""
            local cursor = "default"
            local s = ""
            
            if _type == "Unspecified" then opacity = 0.15 end
            if _type ~= "Unspecified" then cursor = "pointer" end
            if links ~= "false" then link = "User:Emptylord/Patch/" .. champion end
            
            local _classlist = ""
            for i in string.gmatch(_class, "([^,]+)") do
                _classlist = superclass[i] .. "," .. i .. ","
            end
            
            gridnode
                :addClass('grid-icon emptylord-icon roster-icon')
                :attr('data-range', _range)
                :attr('data-class', _classlist)
                :attr('data-status', _status)
                :attr('data-type', _type)
                :attr('data-search', _title)
                :css('opacity', opacity)
                :css('cursor', cursor)
                :wikitext("[[File:" .. _icon .. "|46px|link=" .. link .. "]]")
                :done()
            
            if _type == "Unspecified" or gridonly == "true" then 
                grid
                    :node(gridnode)
                    :newline()
            else
                local _classlist = ""
                for i in string.gmatch(_class, "([^,]+)") do
                    if i ~= "Unspecified" 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>"
                
                s = s .. "{{:User:Emptylord/Patch/" .. champion .. "}}"
                
                grid
                    :node(gridnode)
                    :newline()
                    :wikitext(frame:preprocess("<div class='roster-info'>" .. s .. "</div>"))
            end
        else
            --skip champion
        end
    end
    
    return grid
end

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