diff --git a/clicker/script.js b/clicker/script.js index 0b123e8..f320694 100644 --- a/clicker/script.js +++ b/clicker/script.js @@ -105,18 +105,20 @@ function updateUI() { document.getElementById('idleCost').textContent = formatNumber(idleCost); document.getElementById('autoClickerCost').textContent = formatNumber(autoClickerCost); document.getElementById('autoClickerCount').textContent = autoClickers; - document.getElementById('autoClickerDesc').textContent = `Klickt ${(autoClickers * (doubleClick ? 2 : 1) * (clickMultiplier ? 1.5 : 1)).toFixed(1)} Mal alle 5s`; + const autoClickerInterval = fastAutoClicker ? 3 : 5; + document.getElementById('autoClickerDesc').textContent = `Klickt ${(autoClickers * (doubleClick ? 2 : 1) * (clickMultiplier ? 1.5 : 1)).toFixed(1)} Mal alle ${autoClickerInterval}s`; // Update stats tab document.getElementById('totalClicks').textContent = formatNumber(totalClicks); document.getElementById('clickPowerStat').textContent = formatNumber(clickPower * (doubleClick ? 2 : 1) * (clickMultiplier ? 1.5 : 1)); document.getElementById('idleStat').textContent = formatNumber(idlePower * (idleMultiplier ? 2 : 1) * (1 + prestigeLevel * 0.5)) + '/s'; - document.getElementById('autoClickerStat').textContent = autoClickers + ' (' + ((autoClickers * (doubleClick ? 2 : 1) * (clickMultiplier ? 1.5 : 1)) / 5).toFixed(1) + '/s)'; + const autoClickerIntervalSec = fastAutoClicker ? 3 : 5; + document.getElementById('autoClickerStat').textContent = autoClickers + ' (' + ((autoClickers * (doubleClick ? 2 : 1) * (clickMultiplier ? 1.5 : 1)) / autoClickerIntervalSec).toFixed(1) + '/s)'; document.getElementById('prestigeLevel').textContent = prestigeLevel; document.getElementById('prestigeBonusStat').textContent = (1 + prestigeLevel * 0.5).toFixed(1) + 'x'; document.getElementById('timePlayed').textContent = formatTime(secondsPlayed); document.getElementById('totalScore').textContent = formatNumber(totalScore); - document.getElementById('scoreRate').textContent = formatNumber((idlePower * (idleMultiplier ? 2 : 1) * (1 + prestigeLevel * 0.5)) + ((autoClickers * (doubleClick ? 2 : 1) * (clickMultiplier ? 1.5 : 1)) / 5)) + '/s'; + document.getElementById('scoreRate').textContent = formatNumber((idlePower * (idleMultiplier ? 2 : 1) * (1 + prestigeLevel * 0.5)) + ((autoClickers * (doubleClick ? 2 : 1) * (clickMultiplier ? 1.5 : 1)) / autoClickerIntervalSec)) + '/s'; // Update upgrades tab document.getElementById('doubleClickCost').textContent = formatNumber(doubleClickCost); @@ -408,6 +410,9 @@ function buyFastAutoClicker() { score -= fastAutoClickerCost; fastAutoClicker = true; + // Starte Auto-Clicker mit neuer Geschwindigkeit neu + startAutoClicker(); + if (notificationsOn) { showNotification('Schnelle Auto-Clicker freigeschaltet! Auto-Clicker klicken jetzt alle 3s.'); } @@ -569,6 +574,9 @@ function confirmPrestige() { showNotification(`Prestige auf Level ${prestigeLevel}! ${(0.5 + (prestigeLevel-1)*0.1).toFixed(1)}x Multiplikator erhalten.`); } + // Starte Auto-Clicker neu (behält fastAutoClicker Geschwindigkeit) + startAutoClicker(); + updateUI(); } @@ -662,6 +670,9 @@ function confirmReset() { achievement.earned = false; }); + // Starte Auto-Clicker neu (jetzt wieder mit 5s) + startAutoClicker(); + // UI aktualisieren updateUI(); renderAchievements(); @@ -840,6 +851,9 @@ function loadSaveData(data) { }); } + // Starte Auto-Clicker mit korrekter Geschwindigkeit neu + startAutoClicker(); + updateUI(); renderAchievements(); } @@ -894,38 +908,52 @@ function gameLoop() { requestAnimationFrame(gameLoop); } -// Auto clicker interval - Geschwindigkeit abhängig von fastAutoClicker -setInterval(() => { - if (autoClickers > 0) { - // Berechne Multiplikatoren - let clickMultipliers = (doubleClick ? 2 : 1) * (clickMultiplier ? 1.5 : 1); - if (megaClick) clickMultipliers *= 3; - if (autoClickerBoost) clickMultipliers *= 2; - if (superMultiplier) clickMultipliers *= 1.5; - if (ultraPower) clickMultipliers *= 1.5; +// Auto clicker interval - wird dynamisch neu gestartet +let autoClickerInterval; - // Prestige-Bonus - let prestigeBonus = 1 + prestigeLevel * 0.5; - if (prestigeBoost) prestigeBonus *= 2; - - // Zeit-Bonus - let timeMult = 1; - if (timeBonus) { - const hoursPlayed = secondsPlayed / 3600; - timeMult = 1 + (hoursPlayed * 0.05); - } - if (ultraPower) timeMult *= 1.5; - - const clicks = autoClickers * clickMultipliers * prestigeBonus * timeMult; - score += clicks; - totalScore += clicks; - - // Visual feedback - zeige Auto-Clicker-Anzeige - showScoreChange(clicks, false, true); - - updateUI(); +function startAutoClicker() { + // Stoppe altes Interval falls vorhanden + if (autoClickerInterval) { + clearInterval(autoClickerInterval); } -}, fastAutoClicker ? 3000 : 5000); + + // Starte neues Interval mit aktueller Geschwindigkeit + const interval = fastAutoClicker ? 3000 : 5000; + autoClickerInterval = setInterval(() => { + if (autoClickers > 0) { + // Berechne Multiplikatoren + let clickMultipliers = (doubleClick ? 2 : 1) * (clickMultiplier ? 1.5 : 1); + if (megaClick) clickMultipliers *= 3; + if (autoClickerBoost) clickMultipliers *= 2; + if (superMultiplier) clickMultipliers *= 1.5; + if (ultraPower) clickMultipliers *= 1.5; + + // Prestige-Bonus + let prestigeBonus = 1 + prestigeLevel * 0.5; + if (prestigeBoost) prestigeBonus *= 2; + + // Zeit-Bonus + let timeMult = 1; + if (timeBonus) { + const hoursPlayed = secondsPlayed / 3600; + timeMult = 1 + (hoursPlayed * 0.05); + } + if (ultraPower) timeMult *= 1.5; + + const clicks = autoClickers * clickMultipliers * prestigeBonus * timeMult; + score += clicks; + totalScore += clicks; + + // Visual feedback - zeige Auto-Clicker-Anzeige + showScoreChange(clicks, false, true); + + updateUI(); + } + }, interval); +} + +// Starte Auto-Clicker beim Laden +startAutoClicker(); // Time played counter setInterval(() => {