204 lines
5.5 KiB
TypeScript
204 lines
5.5 KiB
TypeScript
import { Track } from '@core/racing/domain/entities/Track';
|
|
|
|
export class RacingTrackFactory {
|
|
create(): Track[] {
|
|
return [
|
|
// Road tracks - various difficulties
|
|
Track.create({
|
|
id: 'track-spa',
|
|
name: 'Spa-Francorchamps',
|
|
shortName: 'SPA',
|
|
country: 'Belgium',
|
|
category: 'road',
|
|
difficulty: 'advanced',
|
|
lengthKm: 7.004,
|
|
turns: 19,
|
|
imageUrl: '/images/tracks/spa.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-monza',
|
|
name: 'Autodromo Nazionale Monza',
|
|
shortName: 'MON',
|
|
country: 'Italy',
|
|
category: 'road',
|
|
difficulty: 'intermediate',
|
|
lengthKm: 5.793,
|
|
turns: 11,
|
|
imageUrl: '/images/tracks/monza.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-nurburgring',
|
|
name: 'Nürburgring Grand Prix',
|
|
shortName: 'NUR',
|
|
country: 'Germany',
|
|
category: 'road',
|
|
difficulty: 'advanced',
|
|
lengthKm: 5.148,
|
|
turns: 15,
|
|
imageUrl: '/images/tracks/nurburgring.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-silverstone',
|
|
name: 'Silverstone Circuit',
|
|
shortName: 'SIL',
|
|
country: 'United Kingdom',
|
|
category: 'road',
|
|
difficulty: 'intermediate',
|
|
lengthKm: 5.891,
|
|
turns: 18,
|
|
imageUrl: '/images/tracks/silverstone.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-suzuka',
|
|
name: 'Suzuka International Racing Course',
|
|
shortName: 'SUZ',
|
|
country: 'Japan',
|
|
category: 'road',
|
|
difficulty: 'expert',
|
|
lengthKm: 5.807,
|
|
turns: 18,
|
|
imageUrl: '/images/tracks/suzuka.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-laguna',
|
|
name: 'WeatherTech Raceway Laguna Seca',
|
|
shortName: 'LAG',
|
|
country: 'United States',
|
|
category: 'road',
|
|
difficulty: 'advanced',
|
|
lengthKm: 3.602,
|
|
turns: 11,
|
|
imageUrl: '/images/tracks/laguna.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-zandvoort',
|
|
name: 'Circuit Zandvoort',
|
|
shortName: 'ZAN',
|
|
country: 'Netherlands',
|
|
category: 'road',
|
|
difficulty: 'intermediate',
|
|
lengthKm: 4.259,
|
|
turns: 14,
|
|
imageUrl: '/images/tracks/zandvoort.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-imola',
|
|
name: 'Autodromo Enzo e Dino Ferrari',
|
|
shortName: 'IMO',
|
|
country: 'Italy',
|
|
category: 'road',
|
|
difficulty: 'advanced',
|
|
lengthKm: 4.909,
|
|
turns: 19,
|
|
imageUrl: '/images/tracks/imola.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-le-mans',
|
|
name: 'Circuit de la Sarthe',
|
|
shortName: 'LEM',
|
|
country: 'France',
|
|
category: 'road',
|
|
difficulty: 'expert',
|
|
lengthKm: 13.626,
|
|
turns: 38,
|
|
imageUrl: '/images/tracks/le-mans.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-hockenheim',
|
|
name: 'Hockenheimring',
|
|
shortName: 'HOC',
|
|
country: 'Germany',
|
|
category: 'road',
|
|
difficulty: 'intermediate',
|
|
lengthKm: 4.574,
|
|
turns: 17,
|
|
imageUrl: '/images/tracks/hockenheim.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
// Oval tracks
|
|
Track.create({
|
|
id: 'track-daytona',
|
|
name: 'Daytona International Speedway',
|
|
shortName: 'DAY',
|
|
country: 'United States',
|
|
category: 'oval',
|
|
difficulty: 'intermediate',
|
|
lengthKm: 4.023,
|
|
turns: 4,
|
|
imageUrl: '/images/tracks/daytona.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-indianapolis',
|
|
name: 'Indianapolis Motor Speedway',
|
|
shortName: 'IMS',
|
|
country: 'United States',
|
|
category: 'oval',
|
|
difficulty: 'advanced',
|
|
lengthKm: 4.192,
|
|
turns: 4,
|
|
imageUrl: '/images/tracks/indianapolis.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-talladega',
|
|
name: 'Talladega Superspeedway',
|
|
shortName: 'TAL',
|
|
country: 'United States',
|
|
category: 'oval',
|
|
difficulty: 'beginner',
|
|
lengthKm: 4.280,
|
|
turns: 4,
|
|
imageUrl: '/images/tracks/talladega.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
// Street tracks
|
|
Track.create({
|
|
id: 'track-miami',
|
|
name: 'Miami Street Circuit',
|
|
shortName: 'MIA',
|
|
country: 'United States',
|
|
category: 'street',
|
|
difficulty: 'intermediate',
|
|
lengthKm: 5.410,
|
|
turns: 19,
|
|
imageUrl: '/images/tracks/miami.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
Track.create({
|
|
id: 'track-las-vegas',
|
|
name: 'Las Vegas Street Circuit',
|
|
shortName: 'VEG',
|
|
country: 'United States',
|
|
category: 'street',
|
|
difficulty: 'advanced',
|
|
lengthKm: 6.201,
|
|
turns: 17,
|
|
imageUrl: '/images/tracks/las-vegas.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
// Dirt tracks
|
|
Track.create({
|
|
id: 'track-eldo',
|
|
name: 'Eldora Speedway',
|
|
shortName: 'ELD',
|
|
country: 'United States',
|
|
category: 'dirt',
|
|
difficulty: 'beginner',
|
|
lengthKm: 0.805,
|
|
turns: 4,
|
|
imageUrl: '/images/tracks/eldora.jpg',
|
|
gameId: 'iracing',
|
|
}),
|
|
];
|
|
}
|
|
} |