Модуль:Tools: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 85: | Строка 85: | ||
if i < 6 then | if i < 6 then | ||
str = str .. mw.ustring.format('{{SimpleIconHero|hero=%s|size=60px}}', v[1]) | str = str .. mw.ustring.format('{{SimpleIconHero|hero=%s|size=60px}}', v[1]) | ||
break | break | ||
end | end | ||
Строка 206: | Строка 204: | ||
if i < 6 then | if i < 6 then | ||
str = str .. mw.ustring.format('{{SimpleIconBoss|boss=%s|size=60px|border=3px ridge #3d8ac2}}', v[1]) | str = str .. mw.ustring.format('{{SimpleIconBoss|boss=%s|size=60px|border=3px ridge #3d8ac2}}', v[1]) | ||
end | end | ||
end | end | ||
Строка 234: | Строка 229: | ||
if i < 6 then | if i < 6 then | ||
str = str .. mw.ustring.format('{{SimpleIconItem|item=%s|size=60px}}', v[1]) | str = str .. mw.ustring.format('{{SimpleIconItem|item=%s|size=60px}}', v[1]) | ||
end | end | ||
end | end | ||
Строка 262: | Строка 254: | ||
if i < 6 then | if i < 6 then | ||
str = str .. mw.ustring.format('{{SimpleIconItem|item=%s|size=60px}}', v[1]) | str = str .. mw.ustring.format('{{SimpleIconItem|item=%s|size=60px}}', v[1]) | ||
end | end | ||
end | end | ||
Строка 273: | Строка 262: | ||
return frame:preprocess(tostring(divNode)) | return frame:preprocess(tostring(divNode)) | ||
end | |||
function p.getEventTodayIngame(frame) | |||
local divNode = mw.html.create('div') | |||
divNode | |||
:cssText('display: flex; flex-flow: row wrap; justify-content: space-evenly;') | |||
:newline() | |||
local data = mw.loadData('Module:Tools/today') | |||
end | end | ||
return p | return p |
Версия от 20:05, 11 ноября 2023
local p = {} local lib = require('Module:Feature') local icons_data = require ('Module:IconData/alliances') function p.getTodoTable(frame) local tableNode = mw.html.create('table') tableNode :addClass('pc-block service-table') :cssText('width: 100%; display: table; margin: 0 auto; text-align: center;') :newline() tableNode :tag('tr') :css('white-space', 'nowrap') :tag('th') :wikitext('Задача') :done() :tag('th') :wikitext('Описание') :done() :tag('th') :wikitext('Ответственный') :done() :tag('th') :wikitext('Статус') :done() :done() local list = mw.loadData('Module:Tools/todo') local statuses = mw.loadData('Module:Tools/todo/statuses') local member = "" local status = "" for k, v in ipairs(list) do if v[3] == "" or v[3] == nil then member = "Все желающие" else member = mw.ustring.format('[[Участник:%s|%s]]', v[3], v[3]) end if v[4] == 1 then status = mw.ustring.format('{{Цвет|обы|%s}}', statuses[v[4]]) elseif v[4] == 2 then status = mw.ustring.format('{{Цвет|жел|%s}}', statuses[v[4]]) elseif v[4] == 3 then status = mw.ustring.format('{{Цвет|зел|%s}}', statuses[v[4]]) end local rowNode = mw.html.create('tr') rowNode :tag('td') :css('color', '#25a6f2') :wikitext(mw.ustring.format('%s', v[1])) :done() :tag('td') :css('text-align', 'left') :wikitext(mw.ustring.format('%s', v[2])) :done() :tag('td') :wikitext(mw.ustring.format('%s', member)) :done() :tag('td') :wikitext(mw.ustring.format('%s', status)) :done() :done() tableNode:node(rowNode):newline() end return frame:preprocess(tostring(tableNode)) end function p.getNoveltyHeroes(frame) local divNode = mw.html.create('div') local str = "" local i = 0 divNode :cssText('display: flex; flex-flow: row wrap; justify-content: space-evenly;') :newline() local data = mw.loadData('Module:Tools/novelty') for k, v in lib.pairsByAlphabeticalKeys(data['heroes'], function(a, b) return a > b end) do i = i + 1 if i < 6 then str = str .. mw.ustring.format('{{SimpleIconHero|hero=%s|size=60px}}', v[1]) break end end divNode :wikitext(mw.ustring.format('%s', str)) :done() return frame:preprocess(tostring(divNode)) end function p.getFullNoveltyHeroes(frame) local tableNode = mw.html.create('table') tableNode :addClass('custom-table') :cssText('width: 100%; display: table; margin: 0 auto; text-align: center;') :newline() tableNode :tag('tr') :css('white-space', 'nowrap') :tag('th') :wikitext('Дата') :done() :tag('th') :wikitext('Имя героя') :done() :tag('th') :wikitext('Иконка') :done() :tag('th') :wikitext('Раса') :done() :tag('th') :wikitext('Класс') :done() :tag('th') :wikitext('Альянс') :done() :done() local data = mw.loadData('Module:Tools/novelty') local data_heroes = mw.loadData('Module:HeroData/data') local races = mw.loadData('Module:HeroData/races') local classes = mw.loadData('Module:HeroData/classes') local alliances = mw.loadData('Module:HeroData/alliances') local icon = "" for k, v in lib.pairsByAlphabeticalKeys(data['heroes'], function(a, b) return a > b end) do if data_heroes[v[1]]['race'] ~= nil then race = races[data_heroes[v[1]]['race']] else race = "-" end if data_heroes[v[1]]['class'] ~= nil then class = classes[data_heroes[v[1]]['class']] else class = "-" end if data_heroes[v[1]]['alliance'] ~= nil then alliance = alliances[data_heroes[v[1]]['alliance']] else alliance = "-" end if icons_data[alliance] ~= nil then icon = icons_data[alliance] else return "-" end local rowNode = mw.html.create('tr') rowNode :tag('td') :wikitext(mw.ustring.format('%s', v[2])) :done() :tag('td') :wikitext(mw.ustring.format('[[%s]]', v[1])) :done() :tag('td') :wikitext(mw.ustring.format('{{SimpleIconHero|hero=%s|size=45px}}', v[1])) :done() :tag('td') :wikitext(mw.ustring.format('[[:Категория:%s (раса)|%s]]', race, race)) :done() :tag('td') :wikitext(mw.ustring.format('[[:Категория:%s (класс)|%s]]', class, class)) :done() :tag('td') :wikitext(mw.ustring.format('[[Файл:%s|%s|link=:Категория:%s (альянс)]]', icon, "45px", alliance)) :done() :done() tableNode:node(rowNode):newline() end return frame:preprocess(tostring(tableNode)) end function p.getNoveltyBosses(frame) local divNode = mw.html.create('div') local str = "" local i = 0 divNode :cssText('display: flex; flex-flow: row wrap; justify-content: space-evenly;') :newline() local data = mw.loadData('Module:Tools/novelty') for k, v in lib.pairsByAlphabeticalKeys(data['bosses'], function(a, b) return a > b end) do i = i + 1 if i < 6 then str = str .. mw.ustring.format('{{SimpleIconBoss|boss=%s|size=60px|border=3px ridge #3d8ac2}}', v[1]) end end divNode :wikitext(mw.ustring.format('%s', str)) :done() return frame:preprocess(tostring(divNode)) end function p.getNoveltyItems(frame) local divNode = mw.html.create('div') local str = "" local i = 0 divNode :cssText('display: flex; flex-flow: row wrap; justify-content: space-evenly;') :newline() local data = mw.loadData('Module:Tools/novelty') for k, v in lib.pairsByAlphabeticalKeys(data['items'], function(a, b) return a > b end) do i = i + 1 if i < 6 then str = str .. mw.ustring.format('{{SimpleIconItem|item=%s|size=60px}}', v[1]) end end divNode :wikitext(mw.ustring.format('%s', str)) :done() return frame:preprocess(tostring(divNode)) end function p.getNoveltyRecipes(frame) local divNode = mw.html.create('div') local str = "" local i = 0 divNode :cssText('display: flex; flex-flow: row wrap; justify-content: space-evenly;') :newline() local data = mw.loadData('Module:Tools/novelty') for k, v in lib.pairsByAlphabeticalKeys(data['recipes'], function(a, b) return a > b end) do i = i + 1 if i < 6 then str = str .. mw.ustring.format('{{SimpleIconItem|item=%s|size=60px}}', v[1]) end end divNode :wikitext(mw.ustring.format('%s', str)) :done() return frame:preprocess(tostring(divNode)) end function p.getEventTodayIngame(frame) local divNode = mw.html.create('div') divNode :cssText('display: flex; flex-flow: row wrap; justify-content: space-evenly;') :newline() local data = mw.loadData('Module:Tools/today') end return p