feat(match3): Verbesserung der Drag & Drop-Funktionalität und Hinzufügen von Soundeffekten

- Anpassungen an der Match3Game-Komponente zur Verbesserung der Drag & Drop-Interaktionen, einschließlich neuer Event-Handler für Maus- und Touch-Eingaben.
- Einführung von Soundeffekten für Bewegungen, Bomben, Raketen und Regenbogen-Animationen zur Steigerung des Spielerlebnisses.
- Erweiterung der CSS-Animationen für Tiles, um neue visuelle Effekte bei Bewegungen und Erscheinen zu implementieren.
- Aktualisierung der Animationseffekte für Explosionen und andere Spielereignisse zur Verbesserung der Benutzeroberfläche.
This commit is contained in:
Torsten Schulz (local)
2025-08-25 21:33:20 +02:00
parent 79d6004332
commit 285607a3ee
12 changed files with 2163 additions and 563 deletions

View File

@@ -296,7 +296,8 @@ class Match3Service {
if (isCompleted) {
// Nur wenn das Level abgeschlossen ist, setze currentLevel auf das nächste Level
newCurrentLevel = levelsCompleted + 1;
// WICHTIG: currentLevel ist das nächste zu spielende Level (nicht das letzte abgeschlossene)
newCurrentLevel = Math.max(userProgress.currentLevel, levelsCompleted + 1);
}
await userProgress.update({

View File

@@ -42,7 +42,32 @@ const syncModels = async (models) => {
// Intelligente Schema-Synchronisation - prüft ob Updates nötig sind
const syncModelsWithUpdates = async (models) => {
console.log('🔍 Prüfe ob Schema-Updates nötig sind...');
// Prüfe ob wir im Entwicklungsmodus sind
if (process.env.STAGE !== 'dev') {
console.log('🚫 Nicht im Entwicklungsmodus - überspringe Schema-Updates');
console.log('📊 Aktueller Stage:', process.env.STAGE || 'nicht gesetzt');
console.log('💡 Setze STAGE=dev in der .env Datei für automatische Schema-Updates');
console.log('🔒 Sicherheitsmodus: Schema-Updates sind deaktiviert');
// Normale Synchronisation ohne Updates
for (const model of Object.values(models)) {
await model.sync({ alter: false, force: false });
}
return;
}
// Zusätzliche Sicherheitsabfrage für Produktionsumgebungen
if (process.env.NODE_ENV === 'production' && process.env.STAGE !== 'dev') {
console.log('🚨 PRODUKTIONSWARNUNG: Schema-Updates sind in Produktionsumgebungen deaktiviert!');
console.log('🔒 Verwende nur normale Synchronisation ohne Schema-Änderungen');
for (const model of Object.values(models)) {
await model.sync({ alter: false, force: false });
}
return;
}
console.log('🔍 Entwicklungsmodus aktiv - prüfe ob Schema-Updates nötig sind...');
try {
// Prüfe ob neue Felder existieren müssen

View File

@@ -16,6 +16,18 @@ import updateExistingMatch3Levels from './updateExistingMatch3Levels.js';
const syncDatabase = async () => {
try {
// Zeige den aktuellen Stage an
const currentStage = process.env.STAGE || 'nicht gesetzt';
console.log(`🚀 Starte Datenbank-Synchronisation (Stage: ${currentStage})`);
if (currentStage !== 'dev') {
console.log('⚠️ WARNUNG: Automatische Schema-Updates sind deaktiviert');
console.log('💡 Setze STAGE=dev in der .env Datei für automatische Schema-Updates');
console.log('🔒 Produktionsmodus: Nur normale Synchronisation ohne Schema-Änderungen');
} else {
console.log('✅ Entwicklungsmodus aktiv - Schema-Updates sind aktiviert');
}
console.log("Initializing database schemas...");
await initializeDatabase();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -4,8 +4,8 @@
<head>
<meta charset="UTF-8" />
<title>YourPart</title>
<script type="module" crossorigin src="/assets/index-C2z2YL6l.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BLkCbvUa.css">
<script type="module" crossorigin src="/assets/index-B4fysdFj.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-B7qXuEZt.css">
</head>
<body>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff