League of Legends Wiki
Advertisement
League of Legends Wiki

Для документации этого модуля может быть создана страница Модуль:Color/doc

-- <pre>
-- Используется для парсера слов и перекрашивания текста на основе рещультата.
-- Используется шаблонами [[Шаблон:Keyword color]] (основа для [[Шаблон:As]] и [[Шаблон:Skin tier]]
local p = {}
local lib = require('Модуль:Feature')

local anyToNominative = {
    {"здоровь",             "здоровье"},
    
    -- Исцеление/Исцелить и др.
    {"исцел",               "исцеление"},
    {"лечени",              "исцеление"},
    
    {"сила атаки",          "сила атаки"},
    {"силы атаки",          "сила атаки"},
    {"силе атаки",          "сила атаки"},
    {"силу атаки",          "сила атаки"},
    {"силой атаки",         "сила атаки"},
    
    {"физическ",            "физический"},
    
    {"сила умений",         "сила умений"},
    {"силы умений",         "сила умений"},
    {"силе умений",         "сила умений"},
    {"силу умений",         "сила умений"},
    {"силой умений",        "сила умений"},
    
    {"магический урон",     "магический урон"},
    {"магического урона",   "магический урон"},
    {"магическому урону",   "магический урон"},
    {"магическим уроном",   "магический урон"},
    {"магическом уроне",    "магический урон"},
    
    {"чистый",              "чистый"},
    {"чистого",             "чистый"},
    {"чистому",             "чистый"},
    {"чистым",              "чистый"},
    {"чистом",              "чистый"},
    
    {"скорость атаки",      "скорость атаки"},
    {"скорости атаки",      "скорость атаки"},
    {"скоростью атаки",     "скорость атаки"},
    
    {"пробивание брони",    "пробивание брони"},
    {"пробивания брони",    "пробивание брони"},
    {"пробиванию брони",    "пробивание брони"},
    {"пробиванием брони",   "пробивание брони"},
    {"пробивании брони",    "пробивание брони"},
    {"смертоносност",      "смертоносность"},
    
    {"броня",               "броня"},
    {"брони",               "броня"},
    {"броне",               "броня"},
    {"броню",               "броня"},
    {"броней",              "броня"},
    
    -- сопротивление магии
    {"сопротивление",       "сопротивление магии"},
    {"сопротивления",       "сопротивление магии"},
    {"сопротивлению",       "сопротивление магии"},
    {"сопротивлением",      "сопротивление магии"},
    {"сопротивлении",       "сопротивление магии"},
    
    {"магическое пробивание",  "магическое пробивание"},
    {"магического пробивания", "магическое пробивание"},
    {"магическому пробиванию", "магическое пробивание"},
    {"магическим пробиванием", "магическое пробивание"},
    {"магическом пробивании",  "магическое пробивание"},
    
    {"мана",                "мана"},
    {"маны",                "мана"},
    {"мане",                "мана"},
    {"ману",                "мана"},
    {"маной",               "мана"},
    
    {"энерги",              "энергия"},
    {"ярост",               "ярость"},
    
    
    {"шанс",                "шанс критического удара"},
    {"шанса",               "шанс критического удара"},
    {"шансу",               "шанс критического удара"},
    {"шансом",              "шанс критического удара"},
    {"шансе",               "шанс критического удара"},
    
    {"критический урон",    "критический урон"},
    {"критического урона",  "критический урон"},
    {"критическому урону",  "критический урон"},
    {"критическим уроном",  "критический урон"},
    {"критическом уроне",   "критический урон"},
    
    {"скорость передвижения",  "скорость передвижения"},
    {"скорости передвижения",  "скорость передвижения"},
    {"скоростью передвижения", "скорость передвижения"},
    
    {"золот",                "золото"},
    
    {"опыт",                 "опыт"},
    
    -- Насус
    {"вытягивающий удар",  "вытягивающий удар"},
    {"вытягивающего удара",  "вытягивающий удар"},
    {"вытягивающему удару",  "вытягивающий удар"},
    {"вытягивающим ударом",  "вытягивающий удар"},
    {"вытягивающем ударе",   "вытягивающий удар"},
    
    -- Стихии Кианы
    {"реки",                 "река"},
    {"реке",                 "река"},
    {"реку",                 "река"},
    {"рекой",                "река"},
    {"воды",                 "вода"},
    {"воде",                 "вода"},
    {"воду",                 "вода"},
    {"водой",                "вода"},
    
    {"камен",                "камень"},
    {"камня",                "камень"},
    {"камню",                "камень"},
    {"камне",                "камень"},
    {"природн",              "природа"},
    {"природы",              "природа"},
    {"природе",              "природа"},
    {"природу",              "природа"},
    {"природой",             "природа"},
    {"куст",                 "природа"},
    
    -- Сенна / Треш
    {"душа",                 "душа"},
    {"души",                 "душа"},
    {"душу",                 "душа"},
    {"душе",                 "душа"},
    {"душой",                "душа"},
    
    -- Ёнэ
    {"сталь",                "сталь"},
    {"азакана",              "азакана"},
    {"азаканы",              "азакана"},
    {"азакане",              "азакана"},
    {"азакану",              "азакана"},
    {"азаканой",             "азакана"},
    
    -- TFT
    {"очки жизни",           "очки жизни"}
}
 
local nominativeToColor = {
    {"здоровье",                "#1F995C"},
    {"исцеление",               "#1F995C"},
    {"сила атаки",              "orange"},
    {"сила умений",             "#7A6DFF"},
    {"физический",              "#FF8C34"},
    {"магический урон",         "#00B0F0"},
    {"чистый",                  "#F9966B"},
    {"скорость атаки",          "orangered"},
    {"броня",                   "yellow"},
    {"сопротивление магии",     "deeppink"},
    {"пробивание брони",        "tomato"},
    {"смертоносность",          "tomato"},
    {"магическое пробивание",   "turquoise"},
    {"мана",                    "#0099CC"},
    {"энергия",                 "yellow"},
    {"ярость",                  "#FA6533"},
    {"шанс критического удара", "#E56013"},
    {"критический урон",        "#944B00"},
    {"скорость передвижения",   "#F5EE99"},
    {"опыт",                    "#883FD1"},
    {"золото",                  "#FFD700"},
    {"вытягивающий удар",       "#5C58C9"},
    {"buzzword3",               "#E34D4C"},
    {"buzzword2",               "#56C456"},
    {"buzzword",                "#A01D7A"},
    {"река",                    "#43D9FB"},
    {"вода",                    "#43D9FB"},
    {"камень",                  "#B36F21"},
    {"природа",                 "#96FB97"},
    {"куст",                    "#96FB97"},
    {"туман",                   "turquoise"},
    {"душа",                    "turquoise"},
    {"сталь",                   "#ADD8E6"},
    {"азакана",                 "#EA001B"},
    {"очки жизни",              "#56C456"}
}
 
local skincolor = {
    {"ultimate",              "#FFA500"}, -- orange
    {"3250",                  "#FFA500"}, -- orange
    {"2775",                  "#FFA500"}, -- orange
    {"абсолютн",              "#FFA500"}, -- orange
    {"legendary",             "#FF3232"},
    {"легендарн",             "#FF3232"},
    {"1820",                  "#FF3232"},
    {"loot",                  "#7943ED"},
    {"gem",                   "#7943ED"},
    {"mythic",                "#7943ED"},
    {"мифическ",              "#7943ED"},
    {"2450",                  "#7943ED"},
    {"10",                    "#7943ED"},
    {"epic",                  "#00C8FF"},
    {"эпическ",               "#00C8FF"},
    {"1350",                  "#00C8FF"},
    {"standard",              "#228B22"}, -- forestgreen
    {"обычн",                 "#228B22"}, -- forestgreen
    {"superior",              "#228B22"}, -- forestgreen
    {"975",                   "#228B22"}, -- forestgreen
    {"budget",                "#FFFFFF"}, -- white
    {"бюджетн",               "#FFFFFF"}, -- white
    {"deluxe",                "#FFFFFF"}, -- white
    {"750",                   "#FFFFFF"}, -- white
    {"classic",               "#808080"}, -- grey
    {"классическ",            "#808080"}, -- grey
    {"timeworn",              "#808080"}, -- grey
    {"ветх",                  "#808080"}, -- grey
    {"520",                   "#808080"}, -- grey
    {"460",                   "#808080"}, -- grey
    {"390",                   "#808080"}, -- grey
    {"chroma",                "#FFFFFF"}, -- white
    {"цветовая схема",        "#FFFFFF"}, -- white
    {"290",                   "#FFFFFF"}, -- white
    {"195",                   "#FFFFFF"}  -- white
}

-- Возвращает цвет в HEX или HTML формате после парсера переданного текста
function p.keyword(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
        
    local text = args[1]
    return mw.text.nowiki(_findColor(text))
end

-- Приватная функция для p.keyword()
-- Сначала находит ключевое слово и сводит его к именительной форме
-- Затем по именительной форме находит соответствующий цвет
-- Если совпадение не найдено вернет CSS свойство "inherit"
function _findColor(text)
    local nominative = mw.ustring.lower(text)
    local color = "inherit"
    
    for i, v in ipairs(anyToNominative) do
        if(mw.ustring.find(nominative, v[1])) then
            nominative = v[2]
            break
        end
    end
    
    for i, v in ipairs(nominativeToColor) do
        if(nominative == v[1]) then 
            color = v[2]
            break
        end
    end
    
    return color
end
 
function p.skin(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
 
    for _, color in ipairs(skincolor) do 
        result = mw.ustring.find(mw.ustring.lower(args[1]), color[1])
        if result ~= nil then
            return color[2]
        end
    end
    return "inherit"
end
 
return p
 
-- </pre>
-- [[Category:Lua]]
Advertisement