MediaWiki:Test/Revamp.js: различия между версиями

Страница интерфейса MediaWiki
(Ahahahahha изменил модель содержимого страницы Шаблон:Test/Revamp.js с «вики-текст» на «JavaScript»)
Метка: изменение модели содержимого
Нет описания правки
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
document.addEventListener("DOMContentLoaded", function () {
document.addEventListener("DOMContentLoaded", function() {
     const ammo1 = document.querySelector(".AmmoTest1");
     const weaponSelect = document.getElementById('weapon-select');
     const ammo2 = document.querySelector(".AmmoTest2");
     const bulletSelect = document.getElementById('bullet-select');
     const damageDisplay = document.querySelector(".WeaponSummary");
     const dpsDisplay = document.getElementById('dps-display');
    let selectedAmmo = null;
    const damageValue = 20; // Фиксированный урон


     function updateDamageDisplay() {
     // Проверка наличия элементов
        if (selectedAmmo) {
    if (!weaponSelect || !bulletSelect || !dpsDisplay) {
            damageDisplay.textContent = `Урон: ${damageValue}`;
        console.error("Один из элементов интерфейса не найден!");
            damageDisplay.classList.add("updated");
         return;
            setTimeout(() => damageDisplay.classList.remove("updated"), 400);
         } else {
            damageDisplay.textContent = "Урон: 0";
        }
     }
     }


     function selectAmmo(ammo) {
     const WEAPONS = {
         if (selectedAmmo === ammo) {
         'Vulpaka': { fireRate: 6.6 },
            selectedAmmo.classList.remove("active");
    };
            selectedAmmo = null;
 
         } else {
    const BULLETS = {
            if (selectedAmmo) {
         'VulpakaBalls': { damage: 5 },
                selectedAmmo.classList.remove("active");
    };
            }
 
            selectedAmmo = ammo;
    let currentWeapon = weaponSelect.value || Object.keys(WEAPONS)[0];
            selectedAmmo.classList.add("active");
    let currentBullet = bulletSelect.value || Object.keys(BULLETS)[0];
         }
 
        updateDamageDisplay();
    function calculateDPS() {
        const weapon = WEAPONS[currentWeapon] || { fireRate: 0 };
        const bullet = BULLETS[currentBullet] || { damage: 0 };
       
        const dps = bullet.damage * weapon.fireRate;
         dpsDisplay.textContent = dps.toFixed(1);
     }
     }


     ammo1.addEventListener("click", function () {
     weaponSelect.addEventListener('change', function() {
         if (!ammo1.classList.contains("disabled")) {
         currentWeapon = this.value;
            selectAmmo(ammo1);
        calculateDPS();
            ammo2.classList.toggle("disabled", selectedAmmo !== null);
        }
     });
     });


     ammo2.addEventListener("click", function () {
     bulletSelect.addEventListener('change', function() {
         if (!ammo2.classList.contains("disabled")) {
         currentBullet = this.value;
            selectAmmo(ammo2);
        calculateDPS();
            ammo1.classList.toggle("disabled", selectedAmmo !== null);
        }
     });
     });
    // Первоначальный расчёт
    calculateDPS();
});
});

Текущая версия от 20:03, 17 февраля 2025

document.addEventListener("DOMContentLoaded", function() {
    const weaponSelect = document.getElementById('weapon-select');
    const bulletSelect = document.getElementById('bullet-select');
    const dpsDisplay = document.getElementById('dps-display');

    // Проверка наличия элементов
    if (!weaponSelect || !bulletSelect || !dpsDisplay) {
        console.error("Один из элементов интерфейса не найден!");
        return;
    }

    const WEAPONS = {
        'Vulpaka': { fireRate: 6.6 },
    };

    const BULLETS = {
        'VulpakaBalls': { damage: 5 },
    };

    let currentWeapon = weaponSelect.value || Object.keys(WEAPONS)[0];
    let currentBullet = bulletSelect.value || Object.keys(BULLETS)[0];

    function calculateDPS() {
        const weapon = WEAPONS[currentWeapon] || { fireRate: 0 };
        const bullet = BULLETS[currentBullet] || { damage: 0 };
        
        const dps = bullet.damage * weapon.fireRate;
        dpsDisplay.textContent = dps.toFixed(1);
    }

    weaponSelect.addEventListener('change', function() {
        currentWeapon = this.value;
        calculateDPS();
    });

    bulletSelect.addEventListener('change', function() {
        currentBullet = this.value;
        calculateDPS();
    });

    // Первоначальный расчёт
    calculateDPS();
});