Для документации этого модуля может быть создана страница Модуль: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]]