Модуль:Иконка
--WARFRAME Wiki Icon Module
--http://warframe.wikia.com/
--Written by User:ChickenBar
local p = {}
local IconData = mw.loadData( 'Модуль:Иконка/Данные' )
function p.Icon(frame)
local class = frame.args[1]
local name = frame.args[2]
local text = frame.args[3]
local size = frame.args[4]
if (class=="Полярность") then return p.Pol(name, text, size)
elseif (class=="Синдикат") then return p.Syn(name, text, size)
elseif (class=="Рыба") then return p.Fish(name, text, size)
elseif (class=="Руда") then return p.Ore(name, text, size)
else return p.Item(class, name, text, size)
end
end
----------------------------------------
-----------------------иконка полярности
----------------------------------------
function p.Pol(name, text, size)
local icon = ''
local tooltip = ''
if (size == nil or size == '') then size = '20' end
if (name == nil or name == '') then return '<span style="color:red;">Название полярности не задано</span>'
elseif (name == "Заповедь" or name == "Заповедь белый") then tooltip = "Заповедь" link = "Полярность"
elseif (name == "Эксилус" or name == "Эксилус белый") then tooltip = "Эксилус" link = ""
elseif (name == "Аура" or name == "Аура белый") then tooltip = "Аура" link = "Полярность"
elseif (name == "Мадурай" or name == "Мадурай белый") then tooltip = "Мадурай" link = "Полярность"
elseif (name == "Вазарин" or name == "Вазарин белый") then tooltip = "Вазарин" link = "Полярность"
elseif (name == "Нарамон" or name == "Нарамон белый") then tooltip = "Нарамон" link = "Полярность"
elseif (name == "Зенурик" or name == "Зенурик белый") then tooltip = "Зенурик" link = "Полярность"
elseif (name == "Унайру" or name == "Унайру белый") then tooltip = "Унайру" link = "Полярность"
elseif (name == "Умбра" or name == "Умбра белый") then tooltip = "Умбра" link = "Полярность"
elseif (name == "Реквием" or name == "Реквием белый") then tooltip = "Реквием" link = "Полярность"
elseif (name == "Ядро" or name == "Ядро белый") then tooltip = "Ядро" link = "Полярность"
else return '<span style="color:red;">Неверное название полярности</span>'
end
icon = '[[Файл:'..name..'_иконка_вики.png|'..size..'x'..size..'px|'..tooltip..'|link = '..link..']]'
if (text == nil or text == '') then return icon
elseif name == ("Эксилус" or name == "Эксилус белый") then return icon..'[[:Категория:Эксилус моды|'..text..']]'
else return icon..'[[Полярность|'..text..']]'
end
end
----------------------------------------
------------------------иконка синдиката
----------------------------------------
function p.Syn(name, text, size)
local icon = ''
local tooltip = ''
if (size == nil or size == '') then size = '22' end
if (name == nil or name == '') then return '<span style="color:red;">Название синдиката не задано</span>'
elseif (name == "Арбитры Гексиса") then tooltip = "Арбитры Гексиса"
elseif (name == "Красная Вуаль") then tooltip = "Красная Вуаль"
elseif (name == "Новая Лока") then tooltip = "Новая Лока"
elseif (name == "Последовательность Перрина") then tooltip = "Последовательность Перрина"
elseif (name == "Стальной Меридиан") then tooltip = "Стальной Меридиан"
elseif (name == "Цефалон Суда") then tooltip = "Цефалон Суда"
elseif (name == "Конклав") then tooltip = "Конклав"
elseif (name == "Цефалон Симэрис") then tooltip = "Цефалон Симэрис"
elseif (name == "Дети Труб") then tooltip = "Дети Труб"
elseif (name == "Ночная Волна") then tooltip = "Ночная Волна"
else return '<span style="color:red;">Неверное название синдиката</span>'
end
icon = '[[Файл:'..name..'_иконка_вики.png|'..size..'x'..size..'px|'..tooltip..'|link='..name..']]'
if (text == nil or text == '') then return icon
else return icon..'[['..name..'|'..text..']]'
end
end
----------------------------------------
------------------------------иконка рыб
----------------------------------------
function p.Fish(name, text, size)
local icon = ''
local tooltip = ''
if (size == nil or size == '') then size = '30' end
if (name == nil or name == '') then return '<span style="color:red;">Название рыбы не задано</span>'
else tooltip = name link = "Рыбалка"
end
icon = '[[Файл:'..name..'_иконка_вики.png|'..size..'x'..size..'px|'..tooltip..'|link = '..link..']]'
if (text == nil or text == '') then return icon..'[['..name..'|'..name..']]'
else return icon..'[['..name..'|'..text..']]'
end
end
----------------------------------------
-----------------------------иконка руды
----------------------------------------
function p.Ore(name, text, size)
local icon = ''
local tooltip = ''
if (size == nil or size == '') then size = '30' end
if (name == nil or name == '') then return '<span style="color:red;">Название руды не задано</span>'
else tooltip = name link = "Горное дело"
end
icon = '[[Файл:'..name..'_иконка_вики.png|'..size..'x'..size..'px|'..tooltip..'|link = '..link..']]'
if (text == nil or text == '') then return icon..'[['..link..'|'..name..']]'
else return icon..'[['..link..'|'..text..']]'
end
end
----------------------------------------
---------------------------прочие иконки
----------------------------------------
function p.Item(name, text, size)
local icon = ''
local tooltip = ''
local link = ''
if (size == nil or size == '') then size = '25' end
if (name == nil or name == '') then return '<span style="color:red;">Название не задано</span>'
end
tooltip = name
link = name
icon = '[[Файл:'..name..'_иконка_вики.png|'..size..'x'..size..'px|'..tooltip..'|link='..link..']]'
if (text == nil or text == '') then
return icon
elseif (name == "Кредиты" or name == "Платина" or name == "Очки Синдиката") then
return icon..' '..mw.getContentLanguage():formatNum(text)
else
return icon..'[['..name..'|'..text..']]'
end
end
--------------------------------------------------------------------------------------
--все что ниже не переботанно!!! после переботки ОБЯЗАТЕЛЬНО перенести выше этой линии
--------------------------------------------------------------------------------------
function p.__Item(frame)
local iconname = frame.args[1]
local textexist = frame.args[2]
local imagesize = frame.args.imgsize
return p._Item(iconname, textexist, imagesize)
end
--Extracting out to this function allows other Modules to call item text
--Since any templates output by another module won't be parsed by the wiki
function p._Item(iconname, textexist, imagesize)
local iconname = string.gsub(" "..string.lower( iconname ), "%W%l", string.upper):sub(2)
local link = ''
if IconData["Items"][iconname] == nil then
return "<span style=\"color:red;\">Invalid</span>[[Category:Icon Module error]]"
else
link = IconData["Items"][iconname]["link"]
title = IconData["Items"][iconname]["title"]
iconname = IconData["Items"][iconname]["icon"]
if (imagesize == nil or imagesize == '') then
imagesize = 'x26'
end
local imgText = '[[File:'..iconname..'|'..imagesize..'px'
if(link ~= nil) then
imgText = imgText..'|link='..link
elseif(title~=nil) then
imgText = imgText..'|'..title
end
imgText = imgText..']]'
if (textexist == 'text' or textexist == 'Text') then
if (link ~= nil) then
return imgText..' [['..link..']]'
elseif (title ~= nil) then
return imgText..' '..title
else
return imgText
end
end
return imgText
end
end
function p.Dis( frame )
local name = frame.args[1]
local color = frame.args[2]
local size = frame.args.imgsize
return p._Dis(name, color, size)
end
function p._Dis(name, color, size)
local link = 'Riven_Mods#Disposition'
if(color == nil or color == '') then color = 'black' end
if(size == nil or size == '') then size = 27 end
if name == nil then
return "<span style=\"color:red;\">Invalid</span>"
else
name = tonumber(name)
if (name < 0.7) then return '[['..link..'|<span style="font-size:'..size..'px; color:'..color..'; display:inline; position:relative; top:2px">●○○○○</span>]]'
elseif(name < 0.9) then return '[['..link..'|<span style="font-size:'..size..'px; color:'..color..'; display:inline; position:relative; top:2px">●●○○○</span>]]'
elseif(name <= 1.1) then return '[['..link..'|<span style="font-size:'..size..'px; color:'..color..'; display:inline; position:relative; top:2px">●●●○○</span>]]'
elseif(name <= 1.3) then return '[['..link..'|<span style="font-size:'..size..'px; color:'..color..'; display:inline; position:relative; top:2px">●●●●○</span>]]'
else return '[['..link..'|<span style="font-size:'..size..'px; color:'..color..'; display:inline; position:relative; top:2px">●●●●●</span>]]' end
end
end
function p.Affinity( frame )
local iconname = frame.args[1]
local textexist = frame.args[2]
local imagesize = frame.args.imgsize
return p._Affinity(iconname, textexist, imagesize)
end
function p._Affinity(iconname, textexist, imagesize)
local link = ''
if IconData["Affinity"][iconname] == nil then
return "<span style=\"color:red;\">Invalid</span>"
else
link = IconData["Affinity"][iconname]["link"]
local imgname = IconData["Affinity"][iconname]["icon"]
if (imagesize == nil or imagesize == '') then
imagesize = 'x26'
end
if (textexist == 'text' or textexist == 'Text') then
return '[[File:'..imgname..'|'..imagesize..'px|link='..link..']] [['..link..'|'..iconname..']]'
end
return '[[File:'..imgname..'|'..imagesize..'px|link='..link..']]'
end
end
function p.Faction( frame )
local iconname = frame.args[1]
local textexist = frame.args[2]
local color = frame.args[3]
local imagesize = frame.args.imgsize
local link = ''
if IconData["Factions"][iconname] == nil then
return '[['..iconname..']]'
else
link = IconData["Factions"][iconname]["link"]
if (color == 'white' or color == 'White') then
iconname = IconData["Factions"][iconname]["icon"][2] --white icon
else
iconname = IconData["Factions"][iconname]["icon"][1] --black icon
end
if (imagesize == nil or imagesize == '') then
imagesize = 'x20'
end
if (textexist == 'text' or textexist == 'Text') then
return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']][['..link..']]'
end
return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
end
end
function p.Syndicate( frame )
local iconname = frame.args[1]
local textexist = frame.args[2]
local color = frame.args[3]
local imagesize = frame.args.imgsize
local link = ''
if IconData["Syndicates"][iconname] == nil then
return ""
end
link = IconData["Syndicates"][iconname]["link"]
if (color == 'white' or color == 'White') then
iconname = IconData["Syndicates"][iconname]["icon"][2] --white icon
else
iconname = IconData["Syndicates"][iconname]["icon"][1] --black icon
end
if (imagesize == nil or imagesize == '') then
imagesize = 'x32'
end
if (textexist == 'text' or textexist == 'Text') then
return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']][['..link..']]'
else
return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
end
end
function p.Prime(frame)
local primename = frame.args[1]
local partname = frame.args[2]
local imagesize = frame.args.imgsize
return p._Prime(primename, partname, imagesize)
end
function p._Prime(primename, partname, imagesize)
local primename = string.gsub(" "..string.lower( primename ), "%W%l", string.upper):sub(2)
if(textexist == nil) then textexist = 'text' end
local link = ''
if IconData["Primes"][primename] == nil then
return "Unconfirmed Item"
end
link = IconData["Primes"][primename]["link"]
iconname = IconData["Primes"][primename]["icon"]
if (imagesize == nil or imagesize == '') then
imagesize = '32'
end
if partname ~= nil then
partname = string.gsub(" "..string.lower( partname ), "%W%l", string.upper):sub(2)
local result = ''
if primename == "Forma" then
result = '[[File:'..iconname..'|x'..imagesize..'px|link='..link..']]'
result = result..' [['..link..'#Acquisition|'..primename.." "..partname..']]'
else
result = '[[File:'..iconname..'|x'..imagesize..'px|link='..link..']]'
result = result..' [['..link..'#Acquisition|'..primename..' Prime '..partname..']]'
end
return result
end
return '[[File:'..iconname..'|x'..imagesize..'px|link='..link..']]'
end
function p.Resource( frame )
local iconname = frame.args[1]
local textexist = frame.args[2]
local imagesize = frame.args.imgsize
return p._Resource(iconname, textexist, imagesize)
end
function p._Resource(iconname, textexist, imagesize)
local link = ''
if IconData["Resources"][iconname] == nil then
if (textexist == 'text' or textexist == 'Text') then
return '[['.. iconname ..']]'
end
-- TODO: A placeholder icon and do this for all the item types
return ""
else
link = IconData["Resources"][iconname]["link"]
iconname = IconData["Resources"][iconname]["icon"]
if (imagesize == nil or imagesize == '') then
imagesize = 'x32'
end
if (textexist == 'text' or textexist == 'Text') then
return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']] [['..link..']]'
end
return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
end
end
function p.Proc( frame )
local iconname = frame.args[1]
local textexist = frame.args[2]
local color = frame.args[3]
local imagesize = frame.args.imgsize
local ignoreColor = frame.args.ignoreColor
if(ignoreColor ~= nil and string.upper(ignoreColor) ~= "NO" and string.upper(ignoreColor) ~= "FALSE") then
ignoreColor = true
else
ignoreColor = false
end
return p._Proc(iconname, textexist, color, imagesize, ignoreColor)
end
function p._Proc(iconname, textexist, color, imagesize, ignoreTextColor)
local link = ''
local iconFile = ""
local textcolor = ''
local title = ''
local span1 = ''
local span2 = ''
if (string.upper(iconname) == "UNKNOWN") then
return ""
elseif IconData["Procs"][iconname] == nil then
return "<span style=\"color:red;\">Invalid</span>"
else
local spanTable = tooltipSpan(iconname, "Proc")
if spanTable then
span1 = spanTable[1]
span2 = spanTable[2]
end
local tooltip = IconData["Procs"][iconname]["title"]
link = IconData["Procs"][iconname]["link"]
if (color == 'white' or color == 'White') then
iconFile = IconData["Procs"][iconname]["icon"][2] --white icon
else
iconFile = IconData["Procs"][iconname]["icon"][1] --black icon
end
if (imagesize == nil or imagesize == '') then
imagesize = 'x18'
end
if (textexist == 'text' or textexist == 'Text') then
if (color == 'white' or color == 'White') then
textcolor = '#FFFFFF; text-decoration: underline'
else
textcolor = IconData["Procs"][iconname]["color"]
end
if(ignoreTextColor == nil or not ignoreTextColor) then
if(tooltip ~= nil and tooltip ~= '') then
return span1..'[[File:'..iconFile..'|'..imagesize..'px|link='..link..'|'..tooltip..']] [['..link..'|<span style=\"color:'..textcolor..';\">'..iconname..'</span>]]'..span2
else
return span1..'[[File:'..iconFile..'|'..imagesize..'px|link='..link..']] [['..link..'|<span style=\"color:'..textcolor..';\">'..iconname..'</span>]]'..span2
end
else
if(tooltip ~= nil and tooltip ~= '') then
return span1..'[[File:'..iconFile..'|'..imagesize..'px|link='..link..'|'..tooltip..']] [['..link..'|'..iconname..']]'..span2
else
return span1..'[[File:'..iconFile..'|'..imagesize..'px|link='..link..']] [['..link..'|'..iconname..']]'..span2
end
end
end
if(tooltip ~= nil and tooltip ~= '') then
return span1..'[[File:'..iconFile..'|'..imagesize..'px|link='..link..'|'..tooltip..']]'..span2
else
return span1..'[[File:'..iconFile..'|'..imagesize..'px|link='..link..']]'..span2
end
end
end
function p.Focus( frame )
local iconname = frame.args[1]
local textexist = frame.args[2]
local color = frame.args[3]
local icontype = frame.args[4]
local imagesize = frame.args.imgsize
if IconData["Focus"][iconname] == nil then
return "<span style=\"color:red;\">Invalid</span>"
else
if icontype == 'seal' then
if (color == 'white' or color == 'White') then
iconname = IconData["Focus"][iconname]["seal"][2]
else
iconname = IconData["Focus"][iconname]["seal"][1]
end
else
if (color == 'white' or color == 'White') then
iconname = IconData["Focus"][iconname]["icon"][2]
else
iconname = IconData["Focus"][iconname]["icon"][1]
end
end
if (imagesize == nil or imagesize == '') then
imagesize = 'x20'
end
if (textexist == 'text' or textexist == 'Text') then
textcolor = IconData["Focus"][frame.args[1]]["color"]
return '[[File:'..iconname..'|'..imagesize..'px|sub|link=Focus]][[Focus|'..frame.args[1]..']]'
end
return '[[File:'..iconname..'|'..imagesize..'px|link=Focus]]'
end
end
function p.Way( frame )
local iconname = frame.args[1]
local imagesize = frame.args.imgsize
local link = ''
if IconData["Ways"][iconname] == nil then
return "<span style=\"color:red;\">Missing<br>Icon</span>"
else
iconname = IconData["Ways"][iconname]
end
if (imagesize == nil or imagesize == '') then
imagesize = 'x18'
end
return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
end
function p.HUD( frame )
local iconname = frame.args[1]
local textexist = frame.args[2]
local color = frame.args[3]
local imagesize = frame.args.imgsize
local link = ''
if IconData["Heads-Up Display"][iconname] == nil then
return '[['..iconname..']]'
else
link = IconData["Heads-Up Display"][iconname]["link"]
if (color == 'white' or color == 'White') then
iconname = IconData["Heads-Up Display"][iconname]["icon"][2] --white icon
else
iconname = IconData["Heads-Up Display"][iconname]["icon"][1] --black icon
end
if (imagesize == nil or imagesize == '') then
imagesize = 'x20'
end
if (textexist == 'text' or textexist == 'Text') then
return '[[File:'..iconname..'|'..imagesize..'px|link=Heads-Up Display]][[Heads-Up Display|'..link..']]'
end
return '[[File:'..iconname..'|'..imagesize..'px|link=Heads-Up Display]]'
end
end
function p.Flag( frame )
local iconname = frame.args[1]
local tooltip = frame.args[2]
local dest = frame.args[3]
local textexist = frame.args[4]
if IconData["Flags"][iconname] == nil then
return "<span style=\"color:red;\">Invalid</span>"
else
iconname = IconData["Flags"][iconname]
if tooltip == nil then
tooltip = ''
end
if dest == nil then
dest = ''
end
if (textexist == 'text' or textexist == 'Text') then
return '[[File:'..iconname..'|'..tooltip..'|16px|link='..dest..']] [['..dest..'|'..tooltip..']]'
end
return '[[File:'..iconname..'|'..tooltip..'|16px|link='..dest..']]'
end
end
function p.Melee(frame)
local AttackType = frame.args[1]
local ProcType = frame.args[2]
local imagesize = frame.args.imgsize
return p._Melee(AttackType, ProcType, imagesize)
end
function p._Melee(AttackType, ProcType, imagesize)
if(AttackType == nil or AttackType == '') then
AttackType = "DEFAULT"
else
AttackType = string.upper(AttackType)
end
if(ProcType == nil or ProcType == '') then
ProcType = "DEFAULT"
else
ProcType = string.upper(ProcType)
end
if (imagesize == nil or imagesize == '') then
imagesize = 'x22'
end
if(IconData["Melee"][ProcType] == nil or IconData["Melee"][ProcType][AttackType] == nil) then
return "<span style=\"color:red;\">Invalid</span>"
end
local icon = IconData["Melee"][ProcType][AttackType].icon
local link = IconData["Melee"][ProcType][AttackType].link
local title = IconData["Melee"][ProcType][AttackType].title
local tooltip = IconData["Melee"][ProcType][AttackType].tooltip
if(icon == nil or icon == '') then
return "<span style=\"color:red;\">Invalid</span>"
end
local result = '[[File:'..icon
if(tooltip ~= nil and tooltip ~= '') then result = result..'|'..tooltip end
result = result..'|'..imagesize..'px'
if link ~= nil then result = result..'|link='..link end
if title ~= nil then result = result..'|'..title end
result = result..']]'
return result
end
function p.Zaw(frame)
local zawname_input = frame.args[1]
local textexist = frame.args[2]
local imagesize_input = frame.args.imgsize
return p._Zaw(zawname_input, textexist, imagesize_input)
end
function p._Zaw(zawname, textexist, imagesize)
zawname = string.gsub(" "..string.lower( zawname ), "%W%l", string.upper):sub(2)
local link = ''
if IconData["Zaws"][zawname] == nil then
return "<span style=\"color:red;\">Invalid</span>[[Category:Icon Module error]]"
else
link = IconData["Zaws"][zawname]["link"]
local title = IconData["Zaws"][zawname]["title"]
zawname = IconData["Zaws"][zawname]["icon"]
if (imagesize == nil or imagesize == '') then
imagesize = 'x26'
end
local imgText = '[[File:'..zawname..'|'..imagesize..'px'
if(link ~= nil) then
imgText = imgText..'|link='..link
elseif(title ~= nil) then
imgText = imgText..'|'..title
end
imgText = imgText..']]'
if (textexist == 'text' or textexist == 'Text') then
if (link ~= nil) then
if(title ~= nil) then
return imgText..' [['..link..'|'..title..']]'
else
return imgText..' [['..link..']]'
end
elseif(title ~= nil) then
return imgText..' '..title
else
return imgText
end
end
return imgText
end
end
function p.Buff(frame)
local iconname = frame.args[1]
local color = frame.args[2]
local imagesize = frame.args.imgsize
local link = IconData["Buff"][iconname]["link"]
local iconFile = ""
if IconData["Buff"][iconname] == nil then
return "<span style=\"color:red;\">Invalid</span>"
else
if (color == 'white' or color == 'White') then
iconFile = IconData["Buff"][iconname]["icon"][1] --white icon
else
iconFile = IconData["Buff"][iconname]["icon"][2] --black icon
end
if (imagesize == nil or imagesize == '') then
imagesize = 'x40'
end
return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..']]'
end
end
function tooltipCheck(name, typename)
local procList = {"Impact","Puncture","Slash",{"Cold","Freeze"},{"Electricity","Electric"},{"Heat","Fire"},{"Toxin","Poison"},"Void","Blast","Corrosive","Gas","Magnetic","Radiation","Viral","True"}
if typename == "Proc" then
for i, Name in pairs(procList) do
if type(Name) == 'table' then
if Name[1] == name or Name[2] == name then
name = Name[1]
return name
end
elseif type(Name) == 'string' then
if Name == name then
return name
end
end
end
end
return nil
end
function tooltipSpan(name, typename)
local iconName = tooltipCheck(name, typename)
local span = {}
if iconName and typename == 'Proc' then
span[1] = '<span class="damagetype-tooltip" data-param="'..iconName..'" style="white-space:nowrap;">'
span[2] = '</span>'
return span
end
return nil
end
function p.Test2(par1, par2)
spans = tooltipSpan(par1, par2)
return spans[1]..spans[2]
end
function p.Test(frame)
return p._Proc(frame.args[1])
end
return p