/
axe
/
gala
Обзор
Документация
Войти
/
axe
/
gala
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
script.js
67 строк
3 KB
gusen
refactor 1
26 июн 2026, 17:15
26 июн 2026, 17:15
c828b36
Код
Авторство
О чём код?
import { calculateAndDisplayCoresToVotes } from './modules/coresToVotes.js'; import { initRubyBuilder, resetBuilder } from './modules/rubyBuilder.js'; import { initNextRankCalculator, resetCurrentBuilder } from './modules/nextRankCalculator.js'; import { saveCores, loadCores } from './modules/common/storage.js'; document.addEventListener('DOMContentLoaded', () => { // ========== ТАБЫ ========== document.querySelectorAll('.tab-btn').forEach(btn => { btn.addEventListener('click', () => { // Убираем активный класс у всех кнопок и панелей document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active')); document.querySelectorAll('.tab-pane').forEach(p => p.classList.remove('active')); // Активируем текущую кнопку и панель btn.classList.add('active'); const tabId = btn.dataset.tab; document.getElementById(tabId).classList.add('active'); }); }); // ========== ФИШКА 1: ДО СЛЕДУЮЩЕГО РАНГА ========== initNextRankCalculator('currentAuthorityBuilder', 'currentVisual', 'currentTotal'); document.getElementById('resetCurrentBuilder')?.addEventListener('click', () => { resetCurrentBuilder(); }); // ========== ФИШКА 2: КОНСТРУКТОР РУБИНОВ ========== initRubyBuilder('authorityBuilder', 'targetVisual', 'targetTotal'); document.getElementById('resetBuilder')?.addEventListener('click', () => { resetBuilder(); }); // ========== ФИШКА 3: ЯДРА В ГОЛОСА ========== const savedCores = loadCores(); const goldInput = document.getElementById('goldCores'); const fireInput = document.getElementById('fireCores'); const explosiveInput = document.getElementById('explosiveCores'); goldInput.value = savedCores.gold; fireInput.value = savedCores.fire; explosiveInput.value = savedCores.explosive; function saveCoresAndRecalc() { const gold = parseInt(goldInput.value) || 0; const fire = parseInt(fireInput.value) || 0; const explosive = parseInt(explosiveInput.value) || 0; saveCores(gold, fire, explosive); calculateAndDisplayCoresToVotes(gold, fire, explosive, 'coresResult'); } goldInput?.addEventListener('input', saveCoresAndRecalc); fireInput?.addEventListener('input', saveCoresAndRecalc); explosiveInput?.addEventListener('input', saveCoresAndRecalc); document.getElementById('resetCores')?.addEventListener('click', () => { goldInput.value = 0; fireInput.value = 0; explosiveInput.value = 0; saveCores(0, 0, 0); calculateAndDisplayCoresToVotes(0, 0, 0, 'coresResult'); }); saveCoresAndRecalc(); });