MediaWiki:Test/Revamp.js

Страница интерфейса MediaWiki
Версия от 00:12, 4 февраля 2025; 96flo (обсуждение | вклад) (Новая страница: «document.addEventListener('DOMContentLoaded', () => { // Конфигурация патронов const ammoConfig = { ammo1: { damage: 15, selector: '.AmmoTest1' }, ammo2: { damage: 20, selector: '.AmmoTest2' } }; // Инициализация системы боеприпасов class AmmoSystem { constructor() { this.totalDamage = 0; this.ammoElements = {}; this.initAmmo();...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.

document.addEventListener('DOMContentLoaded', () => {

   // Конфигурация патронов
   const ammoConfig = {
       ammo1: { damage: 15, selector: '.AmmoTest1' },
       ammo2: { damage: 20, selector: '.AmmoTest2' }
   };
   // Инициализация системы боеприпасов
   class AmmoSystem {
       constructor() {
           this.totalDamage = 0;
           this.ammoElements = {};
           this.initAmmo();
           this.initDamageDisplay();
       }
       initAmmo() {
           Object.entries(ammoConfig).forEach(([key, config]) => {
               const element = document.querySelector(config.selector);
               if (element) {
                   element.dataset.damage = config.damage;
                   element.addEventListener('click', () => this.toggleAmmo(element));
                   this.ammoElements[key] = element;
               }
           });
       }
       initDamageDisplay() {
           this.damageDisplay = document.createElement('div');
           this.damageDisplay.className = 'damage-display';
           document.querySelector('.WeaponSummary').appendChild(this.damageDisplay);
           this.updateDisplay();
       }
       toggleAmmo(element) {
           element.classList.toggle('active');
           this.calculateDamage();
           this.animateDamage(element);
       }
       calculateDamage() {
           this.totalDamage = Object.values(this.ammoElements)
               .filter(ammo => ammo.classList.contains('active'))
               .reduce((sum, ammo) => sum + parseInt(ammo.dataset.damage), 0);
       }
       updateDisplay() {
           this.damageDisplay.textContent = `Суммарный урон: ${this.totalDamage}`;
           this.damageDisplay.classList.toggle('updated', false);
           void this.damageDisplay.offsetWidth; // Trigger reflow
           this.damageDisplay.classList.toggle('updated', true);
       }
       animateDamage(element) {
           element.style.transform = 'scale(1.1)';
           setTimeout(() => {
               element.style.transform = 'scale(1)';
               this.updateDisplay();
           }, 150);
       }
   }
   // Запуск системы
   new AmmoSystem();

});