105 lines
2.6 KiB
JavaScript
105 lines
2.6 KiB
JavaScript
import Match3Campaign from '../models/match3/campaign.js';
|
|
import Match3Level from '../models/match3/level.js';
|
|
import Match3Objective from '../models/match3/objective.js';
|
|
|
|
export const initializeMatch3Data = async () => {
|
|
try {
|
|
// Prüfe ob bereits Daten vorhanden sind
|
|
const existingCampaigns = await Match3Campaign.count();
|
|
if (existingCampaigns > 0) {
|
|
console.log('Match3 data already exists, skipping initialization');
|
|
return;
|
|
}
|
|
|
|
console.log('Initializing Match3 data...');
|
|
|
|
// Erstelle erste Kampagne
|
|
const campaign = await Match3Campaign.create({
|
|
name: 'Juwelen-Meister',
|
|
description: 'Meistere die Kunst des Juwelen-Matchings',
|
|
isActive: true,
|
|
order: 1
|
|
});
|
|
|
|
// Erstelle erste Level
|
|
const level1 = await Match3Level.create({
|
|
campaignId: campaign.id,
|
|
name: 'Der Anfang',
|
|
description: 'Lerne die Grundlagen des Spiels',
|
|
order: 1,
|
|
boardSize: 6,
|
|
tileTypes: ['gem', 'star', 'heart'],
|
|
moveLimit: 15,
|
|
isActive: true
|
|
});
|
|
|
|
const level2 = await Match3Level.create({
|
|
campaignId: campaign.id,
|
|
name: 'Erste Herausforderung',
|
|
description: 'Erweitere deine Fähigkeiten',
|
|
order: 2,
|
|
boardSize: 7,
|
|
tileTypes: ['gem', 'star', 'heart', 'diamond'],
|
|
moveLimit: 20,
|
|
isActive: true
|
|
});
|
|
|
|
// Erstelle Objectives für Level 1
|
|
await Match3Objective.bulkCreate([
|
|
{
|
|
levelId: level1.id,
|
|
type: 'score',
|
|
description: 'Sammle 100 Punkte',
|
|
target: 100,
|
|
operator: '>=',
|
|
order: 1,
|
|
isRequired: true
|
|
},
|
|
{
|
|
levelId: level1.id,
|
|
type: 'matches',
|
|
description: 'Mache 3 Matches',
|
|
target: 3,
|
|
operator: '>=',
|
|
order: 2,
|
|
isRequired: true
|
|
}
|
|
]);
|
|
|
|
// Erstelle Objectives für Level 2
|
|
await Match3Objective.bulkCreate([
|
|
{
|
|
levelId: level2.id,
|
|
type: 'score',
|
|
description: 'Sammle 200 Punkte',
|
|
target: 200,
|
|
operator: '>=',
|
|
order: 1,
|
|
isRequired: true
|
|
},
|
|
{
|
|
levelId: level2.id,
|
|
type: 'matches',
|
|
description: 'Mache 5 Matches',
|
|
target: 5,
|
|
operator: '>=',
|
|
order: 2,
|
|
isRequired: true
|
|
},
|
|
{
|
|
levelId: level2.id,
|
|
type: 'moves',
|
|
description: 'Verwende weniger als 20 Züge',
|
|
target: 20,
|
|
operator: '<=',
|
|
order: 3,
|
|
isRequired: true
|
|
}
|
|
]);
|
|
|
|
console.log('Match3 data initialized successfully');
|
|
} catch (error) {
|
|
console.error('Error initializing Match3 data:', error);
|
|
}
|
|
};
|