19
правок
Нет описания правки |
Нет описания правки |
||
| Строка 26: | Строка 26: | ||
<script> | <script> | ||
/* Оборачиваем в RLQ, чтобы ждать загрузки ядра MediaWiki */ | |||
(window.RLQ = window.RLQ || []).push(function() { | |||
mw.loader.using('jquery', function() { | |||
/* Этот код сработает только когда jQuery и mw будут готовы */ | |||
$ | // Используем класс .gang-calc-wrapper, чтобы скрипт работал | ||
// даже если виджет вставлен несколько раз или внутри сложных шаблонов | |||
var containerId = 'gang-calc-<!--{$id|default:'1'}-->'; | |||
// Ждем полной отрисовки DOM (на всякий случай) | |||
$(function() { | |||
var $container = $('#' + containerId); | |||
// Если контейнер не найден (например, id конфликтует), ищем по классу внутри родителя | |||
if ($container.length === 0) { | |||
// Фолбэк на случай проблем с ID | |||
return; | |||
} | |||
$container.find('.gc-btn').click(function() { | |||
var $btn = $(this); | |||
// Ищем поля именно внутри этого контейнера | |||
var coins = parseInt($container.find('.gc-coins').val()); | |||
var players = parseInt($container.find('.gc-players').val()); | |||
var $error = $container.find('.gc-error'); | |||
var $result = $container.find('.gc-result'); | |||
$error.hide(); | |||
$result.hide(); | |||
if (isNaN(coins) || coins < 0) { | |||
$error.text('Введите корректную сумму монет.').fadeIn(); | |||
return; | |||
} | |||
if (isNaN(players) || players < 2 || players > 10) { | |||
$error.text('Игроков должно быть от 2 до 10.').fadeIn(); | |||
return; | |||
} | |||
var percent = 0; | |||
if (players >= 2 && players <= 5) percent = 0.10; | |||
else if (players >= 6 && players <= 9) percent = 0.20; | |||
else if (players === 10) percent = 0.30; | |||
var buyerPoints = Math.round(coins * percent); | |||
var othersPoints = Math.round((coins * percent) / (players - 1)); | |||
$container.find('.res-buyer').text(buyerPoints); | |||
$container.find('.res-others').text(othersPoints); | |||
$container.find('.res-percent').text((percent * 100) + '%'); | |||
$result.fadeIn(); | |||
}); | |||
}); | |||
}); | }); | ||
}); | }); | ||
</script> | </script> | ||
</includeonly> | </includeonly> | ||