Dantes (обсуждение | вклад) Нет описания правки |
Dantes (обсуждение | вклад) Нет описания правки |
||
| Строка 35: | Строка 35: | ||
content.className = 'chem-content'; | content.className = 'chem-content'; | ||
// | // Ряд с ингредиентами и результатом | ||
var mixRow = document.createElement('div'); | |||
var | mixRow.className = 'chem-mixrow'; | ||
var inputCol = document.createElement('div'); | |||
inputCol.className = 'chem-column inputs'; | |||
recipe.inputs.forEach(function (input) { | |||
var p = document.createElement('p'); | |||
p.textContent = input; | |||
inputCol.appendChild(p); | |||
}); | |||
var arrowCol = document.createElement('div'); | |||
arrowCol.className = 'chem-column arrow'; | |||
arrowCol.innerHTML = ` | |||
<img src="/images/thumb/4/4f/Beaker.png/32px-Beaker.png" alt="Beaker" /><br/> | |||
<span class="chem-arrow-icon">→</span> | |||
`; | |||
var outputCol = document.createElement('div'); | |||
outputCol.className = 'chem-column output'; | |||
var out = document.createElement('p'); | |||
out.textContent = recipe.output; | |||
outputCol.appendChild(out); | |||
mixRow.appendChild(inputCol); | |||
mixRow.appendChild(arrowCol); | |||
mixRow.appendChild(outputCol); | |||
content.appendChild(mixRow); | |||
// Эффекты | // Эффекты | ||
| Строка 82: | Строка 87: | ||
} | } | ||
header.addEventListener('click', function () { | header.addEventListener('click', function () { | ||
content.style.display = content.style.display === 'none' ? 'block' : 'none'; | content.style.display = content.style.display === 'none' ? 'block' : 'none'; | ||
| Строка 92: | Строка 96: | ||
} | } | ||
recipes.forEach(function (recipe) { | |||
container.appendChild(createRecipeCard( | container.appendChild(createRecipeCard(recipe)); | ||
} | }); | ||
}); | }); | ||
}); | }); | ||
Версия от 23:57, 19 апреля 2025
mw.loader.using('mediawiki.util', function () {
$(function () {
var container = document.getElementById('chemistry-recipes');
if (!container) return;
var recipes = [
{
name: 'Зомби-кислота',
class: 'zombieacid',
inputs: ['Диловен [1]', 'Аммиак [1]', 'Кровь зомби [2]'],
output: 'Зомби-кислота [3]',
effects: ['Вызывает мутации и оживление тканей.'],
appearance: 'Ядовито-зелёная жидкость.'
},
{
name: 'Маннитол',
class: 'mannitol',
inputs: ['Водород [1]', 'Сахар [1]', 'Вода [1]'],
output: 'Маннитол [3]',
effects: ['Эффективно устраняет повреждения мозга.'],
appearance: 'Непрозрачное.'
}
];
function createRecipeCard(recipe) {
var card = document.createElement('div');
card.className = 'chem-recipe chem-' + recipe.class;
var header = document.createElement('div');
header.className = 'chem-header';
header.textContent = recipe.name;
card.appendChild(header);
var content = document.createElement('div');
content.className = 'chem-content';
// Ряд с ингредиентами и результатом
var mixRow = document.createElement('div');
mixRow.className = 'chem-mixrow';
var inputCol = document.createElement('div');
inputCol.className = 'chem-column inputs';
recipe.inputs.forEach(function (input) {
var p = document.createElement('p');
p.textContent = input;
inputCol.appendChild(p);
});
var arrowCol = document.createElement('div');
arrowCol.className = 'chem-column arrow';
arrowCol.innerHTML = `
<img src="/images/thumb/4/4f/Beaker.png/32px-Beaker.png" alt="Beaker" /><br/>
<span class="chem-arrow-icon">→</span>
`;
var outputCol = document.createElement('div');
outputCol.className = 'chem-column output';
var out = document.createElement('p');
out.textContent = recipe.output;
outputCol.appendChild(out);
mixRow.appendChild(inputCol);
mixRow.appendChild(arrowCol);
mixRow.appendChild(outputCol);
content.appendChild(mixRow);
// Эффекты
if (recipe.effects.length) {
var effectList = document.createElement('ul');
effectList.className = 'chem-effects';
for (var j = 0; j < recipe.effects.length; j++) {
var ef = document.createElement('li');
ef.textContent = recipe.effects[j];
effectList.appendChild(ef);
}
content.appendChild(document.createElement('hr'));
content.appendChild(document.createTextNode('Эффекты:'));
content.appendChild(effectList);
}
// Внешний вид
if (recipe.appearance) {
var ap = document.createElement('p');
ap.textContent = 'На вид: ' + recipe.appearance;
content.appendChild(ap);
}
header.addEventListener('click', function () {
content.style.display = content.style.display === 'none' ? 'block' : 'none';
});
content.style.display = 'none';
card.appendChild(content);
return card;
}
recipes.forEach(function (recipe) {
container.appendChild(createRecipeCard(recipe));
});
});
});