feat(match3): Optimierung der Zug-Zähler-Logik und Vermeidung doppelter Zählerhöhungen
- Einführung einer neuen Methode zur Zählung von Zügen, die in verschiedenen Spielereignissen aufgerufen wird, um die Anzahl der Züge konsistent zu verfolgen. - Anpassung mehrerer Methoden, um die Zug-Zähler-Logik zu zentralisieren und doppelte Erhöhungen zu vermeiden. - Verbesserung der Debug-Ausgaben zur besseren Nachverfolgbarkeit der Zug-Zähler-Updates und Spielereignisse.
This commit is contained in:
@@ -2851,6 +2851,11 @@ export default {
|
|||||||
if (hasValidMatch) {
|
if (hasValidMatch) {
|
||||||
console.log(`✅ Move erfolgreich - ${matches.length} Match(es) gefunden!`);
|
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);
|
await this.handleMatches(matches, true);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -2915,8 +2920,7 @@ export default {
|
|||||||
await this.fillEmptyPositions();
|
await this.fillEmptyPositions();
|
||||||
|
|
||||||
// Erhöhe den Zug-Zähler
|
// Erhöhe den Zug-Zähler
|
||||||
this.moves++;
|
this.countPowerUpMove();
|
||||||
this.movesLeft--;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -2961,8 +2965,7 @@ export default {
|
|||||||
await this.fillEmptyPositions();
|
await this.fillEmptyPositions();
|
||||||
|
|
||||||
// Erhöhe den Zug-Zähler
|
// Erhöhe den Zug-Zähler
|
||||||
this.moves++;
|
this.countPowerUpMove();
|
||||||
this.movesLeft--;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
@@ -3027,8 +3030,7 @@ export default {
|
|||||||
await this.fillEmptyPositions();
|
await this.fillEmptyPositions();
|
||||||
|
|
||||||
// Erhöhe den Zug-Zähler
|
// Erhöhe den Zug-Zähler
|
||||||
this.moves++;
|
this.countPowerUpMove();
|
||||||
this.movesLeft--;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -3092,8 +3094,7 @@ export default {
|
|||||||
await this.fillEmptyPositions();
|
await this.fillEmptyPositions();
|
||||||
|
|
||||||
// Erhöhe den Zug-Zähler
|
// Erhöhe den Zug-Zähler
|
||||||
this.moves++;
|
this.countPowerUpMove();
|
||||||
this.movesLeft--;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -4752,9 +4753,8 @@ export default {
|
|||||||
// Fülle leere Positionen mit neuen Tiles auf
|
// Fülle leere Positionen mit neuen Tiles auf
|
||||||
await this.fillEmptyPositions();
|
await this.fillEmptyPositions();
|
||||||
|
|
||||||
// Erhöhe den Zug-Zähler
|
// WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal!
|
||||||
this.moves++;
|
// this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen
|
||||||
this.movesLeft--;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -4784,9 +4784,8 @@ export default {
|
|||||||
// Fülle leere Positionen mit neuen Tiles auf
|
// Fülle leere Positionen mit neuen Tiles auf
|
||||||
await this.fillEmptyPositions();
|
await this.fillEmptyPositions();
|
||||||
|
|
||||||
// Erhöhe den Zug-Zähler
|
// Erhöhe den Zug-Zähler
|
||||||
this.moves++;
|
this.countPowerUpMove();
|
||||||
this.movesLeft--;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Aktiviere Regenbogen-Tile durch Doppelklick
|
// Aktiviere Regenbogen-Tile durch Doppelklick
|
||||||
@@ -4922,11 +4921,10 @@ export default {
|
|||||||
// Fülle leere Positionen mit neuen Tiles auf
|
// Fülle leere Positionen mit neuen Tiles auf
|
||||||
await this.fillEmptyPositions();
|
await this.fillEmptyPositions();
|
||||||
|
|
||||||
// Erhöhe den Zug-Zähler
|
// WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal!
|
||||||
this.moves++;
|
// this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen
|
||||||
this.movesLeft--;
|
|
||||||
|
|
||||||
// Punkte hinzufügen (Regenbogen-Aktivierung)
|
// Punkte hinzufügen (Regenbogen-Aktivierung)
|
||||||
const points = tilesToRemove.length * 25 * this.currentLevel;
|
const points = tilesToRemove.length * 25 * this.currentLevel;
|
||||||
this.levelScore += points;
|
this.levelScore += points;
|
||||||
this.score += points;
|
this.score += points;
|
||||||
@@ -4949,6 +4947,7 @@ export default {
|
|||||||
// Neue Methode: Behandle Power-Up Tile Tausch
|
// Neue Methode: Behandle Power-Up Tile Tausch
|
||||||
async handleRainbowSwap(originalTile1, originalTile2) {
|
async handleRainbowSwap(originalTile1, originalTile2) {
|
||||||
// Power-Up Tausch als Zug zählen (wird auch über swapTiles aufgerufen)
|
// 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();
|
this.countPowerUpMove();
|
||||||
|
|
||||||
if (originalTile1.type === 'rainbow' && originalTile2.type === 'rainbow') {
|
if (originalTile1.type === 'rainbow' && originalTile2.type === 'rainbow') {
|
||||||
@@ -5140,9 +5139,8 @@ export default {
|
|||||||
// Fülle leere Positionen mit neuen Tiles auf
|
// Fülle leere Positionen mit neuen Tiles auf
|
||||||
await this.fillEmptyPositions();
|
await this.fillEmptyPositions();
|
||||||
|
|
||||||
// Erhöhe den Zug-Zähler
|
// WICHTIG: Zug-Zähler wird bereits in handleRainbowSwap erhöht, nicht hier nochmal!
|
||||||
this.moves++;
|
// this.countPowerUpMove(); // ENTFERNT - wird bereits in handleRainbowSwap aufgerufen
|
||||||
this.movesLeft--;
|
|
||||||
|
|
||||||
// Punkte hinzufügen (höhere Punktzahl für diese spezielle Kombination)
|
// Punkte hinzufügen (höhere Punktzahl für diese spezielle Kombination)
|
||||||
const points = allTileIndices.length * 50 * this.currentLevel;
|
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`);
|
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
|
// Löse Kettenreaktionen nur für Power-Ups aus, die noch existieren
|
||||||
// UND nur wenn es sich um eine manuelle Aktivierung handelt
|
// UND nur wenn es sich um eine manuelle Aktivierung handelt
|
||||||
if (powerUpsToTrigger.length > 0 && isManualActivation) {
|
if (powerUpsToTrigger.length > 0 && isManualActivation) {
|
||||||
@@ -5317,6 +5318,9 @@ export default {
|
|||||||
this.matchesMade += 1;
|
this.matchesMade += 1;
|
||||||
console.log(`🎯 Match-Zähler erhöht nach Massen-Bomben-Explosion: ${this.matchesMade} Matches gemacht`);
|
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
|
// Neue Methode: Erstelle zufällige Raketen
|
||||||
@@ -5369,6 +5373,9 @@ export default {
|
|||||||
this.matchesMade += 1;
|
this.matchesMade += 1;
|
||||||
console.log(`🎯 Match-Zähler erhöht nach Massen-Raketen-Start: ${this.matchesMade} Matches gemacht`);
|
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
|
// Neue Methode: Behandle Rakete + Bombe Kombination
|
||||||
@@ -5420,6 +5427,9 @@ export default {
|
|||||||
this.matchesMade += 1;
|
this.matchesMade += 1;
|
||||||
console.log(`🎯 Match-Zähler erhöht nach Raketen-Bomben-Kombination: ${this.matchesMade} Matches gemacht`);
|
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;
|
this.matchesMade += 1;
|
||||||
console.log(`🎯 Match-Zähler erhöht nach Bomben-Raketen-Landung: ${this.matchesMade} Matches gemacht`);
|
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.levelScore += points;
|
||||||
this.score += 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
|
// Starte Rakete auf zufälliges Feld
|
||||||
this.launchRocketToRandomField(rocketIndex);
|
this.launchRocketToRandomField(rocketIndex);
|
||||||
}
|
}
|
||||||
@@ -5709,6 +5725,8 @@ export default {
|
|||||||
this.levelScore += points;
|
this.levelScore += points;
|
||||||
this.score += 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`);
|
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
|
// Starte 3 Raketen auf zufällige Felder
|
||||||
this.launchThreeRockets([rocket1Index, rocket2Index]);
|
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`);
|
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
|
// Löse Kettenreaktionen nur für Power-Ups aus, die noch existieren
|
||||||
if (powerUpsToTrigger.length > 0) {
|
if (powerUpsToTrigger.length > 0) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -5927,6 +5951,9 @@ export default {
|
|||||||
console.log(`🎯 Match-Zähler erhöht nach Raketen-Start: ${this.matchesMade} Matches gemacht`);
|
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
|
// Löse Kettenreaktionen nur für Power-Ups aus, die noch existieren
|
||||||
if (powerUpsToTrigger.length > 0) {
|
if (powerUpsToTrigger.length > 0) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user