|
Метки: очистка ручная отмена |
| (не показана 21 промежуточная версия этого же участника) |
| Строка 1: |
Строка 1: |
| local p = {}
| |
|
| |
|
| local darkColors = {
| |
| border = "#338833",
| |
| bg = "#1a2a1a",
| |
| border2 = "#cc7744",
| |
| bg2 = "#2a1a12",
| |
| border3 = "#2277cc",
| |
| bg3 = "#121a26"
| |
| }
| |
|
| |
| local function renderIngredients(ingredients)
| |
| local parts = {}
| |
| for _, item in ipairs(ingredients) do
| |
| table.insert(parts, mw.html.create("div"):wikitext(item):allDone())
| |
| end
| |
| return table.concat(parts, "\n")
| |
| end
| |
|
| |
| local function renderEffect(text)
| |
| return mw.html.create("div"):addClass("alchemy-effect"):wikitext(text):allDone()
| |
| end
| |
|
| |
| local function renderRecipe(text)
| |
| return mw.html.create("div"):addClass("alchemy-recipe-block"):wikitext(text):allDone()
| |
| end
| |
|
| |
| function p.main(frame)
| |
| local args = frame:getParent().args
| |
|
| |
| local ingredients = {}
| |
| for k,v in pairs(args) do
| |
| if k:match("^ingredient%d*$") then
| |
| table.insert(ingredients, v)
| |
| end
| |
| end
| |
|
| |
| local result = args.result or "?"
| |
| local effect = args.effect or ""
| |
| local recipe = args.recipe or ""
| |
|
| |
| local html = mw.html.create("div")
| |
| :addClass("alchemy-card")
| |
|
| |
| local content = mw.html.create("div")
| |
| :addClass("alchemy-content")
| |
| :css("display", "flex")
| |
| :css("justify-content", "center")
| |
| :css("align-items", "center")
| |
|
| |
| -- Левая колонка: ингредиенты вертикально
| |
| local left = mw.html.create("div")
| |
| :addClass("alchemy-ingredients")
| |
| :css("display", "flex")
| |
| :css("flex-direction", "column")
| |
| :css("gap", "6px")
| |
| :css("min-width", "150px")
| |
| :wikitext(renderIngredients(ingredients))
| |
|
| |
| -- Центр: слово Смешайте
| |
| local center = mw.html.create("div")
| |
| :addClass("alchemy-mix")
| |
| :css("margin", "0 20px")
| |
| :css("font-weight", "bold")
| |
| :css("color", darkColors.border)
| |
| :wikitext("Смешайте")
| |
|
| |
| -- Правая колонка: результат
| |
| local right = mw.html.create("div")
| |
| :addClass("alchemy-result")
| |
| :css("display", "flex")
| |
| :css("flex-direction", "column")
| |
| :css("gap", "10px")
| |
|
| |
| right:node(mw.html.create("div"):addClass("alchemy-result-name"):wikitext(result))
| |
|
| |
| if effect ~= "" then
| |
| right:node(mw.html.create("div"):addClass("alchemy-effect-block"):wikitext(effect))
| |
| end
| |
|
| |
| if recipe ~= "" then
| |
| right:node(mw.html.create("div"):addClass("alchemy-recipe-block"):wikitext(recipe))
| |
| end
| |
|
| |
| content
| |
| :node(left)
| |
| :node(center)
| |
| :node(right)
| |
|
| |
| html
| |
| :node(content)
| |
|
| |
| return tostring(html)
| |
| end
| |
|
| |
| return p
| |