diff --git a/frontend/src/views/minigames/Match3Game.vue b/frontend/src/views/minigames/Match3Game.vue index ee33ee8..992d972 100644 --- a/frontend/src/views/minigames/Match3Game.vue +++ b/frontend/src/views/minigames/Match3Game.vue @@ -2851,6 +2851,11 @@ export default { if (hasValidMatch) { console.log(`✅ Move erfolgreich - ${matches.length} Match(es) gefunden!`); + // WICHTIG: Zähle den erfolgreichen Zug + this.moves++; + this.movesLeft--; + console.log(`🎯 Zug gezählt: ${this.moves} Züge gemacht, ${this.movesLeft} Züge übrig`); + await this.handleMatches(matches, true); return true; } else { @@ -2915,8 +2920,7 @@ export default { await this.fillEmptyPositions(); // Erhöhe den Zug-Zähler - this.moves++; - this.movesLeft--; + this.countPowerUpMove(); return true; } @@ -2961,8 +2965,7 @@ export default { await this.fillEmptyPositions(); // Erhöhe den Zug-Zähler - this.moves++; - this.movesLeft--; + this.countPowerUpMove(); return true; }, @@ -3027,8 +3030,7 @@ export default { await this.fillEmptyPositions(); // Erhöhe den Zug-Zähler - this.moves++; - this.movesLeft--; + this.countPowerUpMove(); return true; } @@ -3092,8 +3094,7 @@ export default { await this.fillEmptyPositions(); // Erhöhe den Zug-Zähler - this.moves++; - this.movesLeft--; + this.countPowerUpMove(); return true; } @@ -4752,9 +4753,8 @@ export default { // Fülle leere Positionen mit neuen Tiles auf await this.fillEmptyPositions(); - // Erhöhe den Zug-Zähler - this.moves++; - this.movesLeft--; + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen } }, @@ -4784,9 +4784,8 @@ export default { // Fülle leere Positionen mit neuen Tiles auf await this.fillEmptyPositions(); - // Erhöhe den Zug-Zähler - this.moves++; - this.movesLeft--; + // Erhöhe den Zug-Zähler + this.countPowerUpMove(); }, // Aktiviere Regenbogen-Tile durch Doppelklick @@ -4922,11 +4921,10 @@ export default { // Fülle leere Positionen mit neuen Tiles auf await this.fillEmptyPositions(); - // Erhöhe den Zug-Zähler - this.moves++; - this.movesLeft--; - - // Punkte hinzufügen (Regenbogen-Aktivierung) + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen + + // Punkte hinzufügen (Regenbogen-Aktivierung) const points = tilesToRemove.length * 25 * this.currentLevel; this.levelScore += points; this.score += points; @@ -4949,6 +4947,7 @@ export default { // Neue Methode: Behandle Power-Up Tile Tausch async handleRainbowSwap(originalTile1, originalTile2) { // Power-Up Tausch als Zug zählen (wird auch über swapTiles aufgerufen) + // WICHTIG: Zähle den Zug nur einmal hier, nicht in den nachfolgenden Funktionen this.countPowerUpMove(); if (originalTile1.type === 'rainbow' && originalTile2.type === 'rainbow') { @@ -5140,9 +5139,8 @@ export default { // Fülle leere Positionen mit neuen Tiles auf await this.fillEmptyPositions(); - // Erhöhe den Zug-Zähler - this.moves++; - this.movesLeft--; + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen // Punkte hinzufügen (höhere Punktzahl für diese spezielle Kombination) const points = allTileIndices.length * 50 * this.currentLevel; @@ -5223,6 +5221,9 @@ export default { console.log(`🎯 Match-Zähler erhöht nach Bomben-Explosion: ${this.matchesMade} Matches gemacht`); } + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen + // Löse Kettenreaktionen nur für Power-Ups aus, die noch existieren // UND nur wenn es sich um eine manuelle Aktivierung handelt if (powerUpsToTrigger.length > 0 && isManualActivation) { @@ -5317,6 +5318,9 @@ export default { this.matchesMade += 1; console.log(`🎯 Match-Zähler erhöht nach Massen-Bomben-Explosion: ${this.matchesMade} Matches gemacht`); } + + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen }, // Neue Methode: Erstelle zufällige Raketen @@ -5369,6 +5373,9 @@ export default { this.matchesMade += 1; console.log(`🎯 Match-Zähler erhöht nach Massen-Raketen-Start: ${this.matchesMade} Matches gemacht`); } + + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen }, // Neue Methode: Behandle Rakete + Bombe Kombination @@ -5420,6 +5427,9 @@ export default { this.matchesMade += 1; console.log(`🎯 Match-Zähler erhöht nach Raketen-Bomben-Kombination: ${this.matchesMade} Matches gemacht`); } + + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen } } @@ -5454,6 +5464,9 @@ export default { this.matchesMade += 1; console.log(`🎯 Match-Zähler erhöht nach Bomben-Raketen-Landung: ${this.matchesMade} Matches gemacht`); } + + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen } }, @@ -5637,6 +5650,9 @@ export default { this.levelScore += points; this.score += points; + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen + // Starte Rakete auf zufälliges Feld this.launchRocketToRandomField(rocketIndex); } @@ -5709,6 +5725,8 @@ export default { this.levelScore += points; this.score += points; + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen } }, @@ -5780,6 +5798,9 @@ export default { console.log(`🎯 Match-Zähler erhöht nach Raketen-Verbindung: ${this.matchesMade} Matches gemacht`); } + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen + // Starte 3 Raketen auf zufällige Felder this.launchThreeRockets([rocket1Index, rocket2Index]); } @@ -5844,6 +5865,9 @@ export default { console.log(`🎯 Match-Zähler erhöht nach 3-Raketen-Start: ${this.matchesMade} Matches gemacht`); } + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen + // Löse Kettenreaktionen nur für Power-Ups aus, die noch existieren if (powerUpsToTrigger.length > 0) { setTimeout(() => { @@ -5927,6 +5951,9 @@ export default { console.log(`🎯 Match-Zähler erhöht nach Raketen-Start: ${this.matchesMade} Matches gemacht`); } + // WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal! + // this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen + // Löse Kettenreaktionen nur für Power-Ups aus, die noch existieren if (powerUpsToTrigger.length > 0) { setTimeout(() => {