Модуль:AlchemyRecipesGrid: различия между версиями

Материал из Space Stories Wiki
Нет описания правки
Нет описания правки
 
(не показано 8 промежуточных версий этого же участника)
Строка 1: Строка 1:
local p = {}
local p = {}


local recipesData = {
function p.recipe(frame)
    {
local args = frame:getParent().args
        title = "Иодид калия",
local name = args.name or 'Неизвестно'
        materials = {"Йод [1]", "Калий [1]"},
local color = args.color or '#cccccc'
        result = "Иодид калия [2]",
local product = args.product or ''
        effects = "Medicine (0.5 единиц в секунду). Наносит 2 Toxin за единицу, когда больше чем 20ед. Вызывает защиту от радиации минимум на 2 секунды, эффект накапливается. Снижает разрушительное воздействие радиации на 90%. Используется только в профилактических целях. На вид зернистое."
local description = args.description or ''
    },
local effect = args.effect or ''
    {
local recipe = args.recipe or ''
        title = "Амбузол",
        materials = {"Диловен [1]", "Аммиак [1]", "Кровь зомби [2]"},
        result = "Амбузол [4]",
        effects = "Medicine (0.5 единиц в секунду). Лечит зомби-вирус, когда больше чем 10ед. Высокотехнологичный препарат, способный остановить развитие зомби-вируса. На вид хрустящее."
    },
    {
        title = "Сидерлак",
        materials = {"Стеллибинин [1]", "Алоэ [1]"},
        result = "Сидерлак [2]",
        effects = "Medicine (0.5 единиц в секунду). Лечит 10 Caustic за единицу. Мощное противокоррозийное средство, получаемое из растений. На вид молочное."
    },
    {
        title = "Когнизин",
        materials = {"Карпотоксин [1]", "Ацетон [1]", "Сидерлак [1]"},
        result = "Когнизин [1]",
        effects = "Medicine (0.5 единиц в секунду). Делает употребившего разумным, когда больше чем 5ед. Таинственное химическое вещество, способное сделать любое неразумное существо разумным. На вид загадочное."
    }
}


function p.renderRecipes()
local function collapse(title, content)
    local html = mw.html.create('div')
return string.format(
        :addClass('alchemy-recipes-grid')
'<div class="alchemy-collapse">' ..
'<div class="alchemy-toggle" onclick="this.classList.toggle(\'open\')">%s</div>' ..
'<div class="alchemy-content">%s</div>' ..
'</div>',
title, content
)
end


    for _, recipe in ipairs(recipesData) do
local recipeBlock = collapse('Рецепт', recipe)
        local card = html:tag('div'):addClass('alchemy-recipe-card')
local effectBlock = collapse('Эффекты', effect)


        card:tag('div'):addClass('alchemy-recipe-title'):wikitext(recipe.title)
return string.format([[
 
<div class="alchemy-block" style="border-color:%s">
        local recipeBlock = card:tag('div'):addClass('alchemy-recipe-block')
<div class="alchemy-header" style="background:%s">%s</div>
 
<div class="alchemy-body">
        local materialsDiv = recipeBlock:tag('div'):addClass('alchemy-recipe-materials')
<div class="alchemy-product">%s</div>
        for _, material in ipairs(recipe.materials) do
%s
            materialsDiv:tag('div'):wikitext(material)
%s
        end
<div class="alchemy-description">%s</div>
 
</div>
        recipeBlock:tag('div'):addClass('alchemy-recipe-mix'):wikitext('Смешайте')
</div>
 
]], color, color, name, product, recipeBlock, effectBlock, description)
        recipeBlock:tag('div'):addClass('alchemy-recipe-result'):wikitext(recipe.result)
 
        card:tag('div'):addClass('alchemy-recipe-effects-title'):wikitext('Эффекты')
        card:tag('div'):addClass('alchemy-recipe-effects'):wikitext(recipe.effects)
    end
 
    return tostring(html)
end
end


return p
return p

Текущая версия от 02:45, 17 июня 2025

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

local p = {}

function p.recipe(frame)
	local args = frame:getParent().args
	local name = args.name or 'Неизвестно'
	local color = args.color or '#cccccc'
	local product = args.product or ''
	local description = args.description or ''
	local effect = args.effect or ''
	local recipe = args.recipe or ''

	local function collapse(title, content)
		return string.format(
			'<div class="alchemy-collapse">' ..
				'<div class="alchemy-toggle" onclick="this.classList.toggle(\'open\')">%s</div>' ..
				'<div class="alchemy-content">%s</div>' ..
			'</div>',
			title, content
		)
	end

	local recipeBlock = collapse('Рецепт', recipe)
	local effectBlock = collapse('Эффекты', effect)

	return string.format([[
<div class="alchemy-block" style="border-color:%s">
	<div class="alchemy-header" style="background:%s">%s</div>
	<div class="alchemy-body">
		<div class="alchemy-product">%s</div>
		%s
		%s
		<div class="alchemy-description">%s</div>
	</div>
</div>
]], color, color, name, product, recipeBlock, effectBlock, description)
end

return p