import { Direction } from '../core/Define'; import { LevelConfig } from './LevelTypes'; import { LEVELS_600 } from './levels-600.generated'; /** 额外关卡(多人等) */ const EXTRA_LEVELS: Record = { 601: { levelID: 601, boundary: { x: 20, y: 20 }, spawns: [ { x: 0, y: 0, kind: 'player', playerDirection: Direction.North }, { x: 6, y: 6, kind: 'prop' }, { x: -1, y: 2, kind: 'prop' }, ], }, 999001: { levelID: 999001, boundary: { x: 999, y: 999 }, spawns: [ { x: -9, y: -9, kind: 'player', playerDirection: Direction.South }, { x: 9, y: 9, kind: 'player', playerDirection: Direction.North }, { x: -9, y: -10, kind: 'vehicle', vehicleDirection: Direction.North }, { x: 9, y: 10, kind: 'vehicle', vehicleDirection: Direction.South }, ], }, }; const allLevels: Record = { ...LEVELS_600, ...EXTRA_LEVELS, }; export function getLevelConfig(levelID: number): LevelConfig | null { return allLevels[levelID] ?? null; } export function hasLevel(levelID: number): boolean { return levelID in allLevels; } export function registerLevel(config: LevelConfig) { allLevels[config.levelID] = config; } export function getLevelCount(): number { return Object.keys(allLevels).length; }