52 lines
1.8 KiB
JavaScript
52 lines
1.8 KiB
JavaScript
export default class BootScene extends Phaser.Scene {
|
||
constructor() {
|
||
super({ key: 'BootScene' });
|
||
}
|
||
|
||
preload() {
|
||
this.load.spritesheet('symbols', 'assets/symbol_sprites.png', { frameWidth: 200, frameHeight: 100 });
|
||
this.load.image('bg-gates', 'assets/gates.png');
|
||
|
||
// Stage loop videos (stages 1–6)
|
||
for (let i = 1; i <= 6; i++) {
|
||
const pad = String(i).padStart(2, '0');
|
||
this.load.video(`stage-${pad}`, `assets/video/stage-${pad}.mp4`, true);
|
||
}
|
||
|
||
// Stage transition videos (adjacent pairs in both directions)
|
||
const pairs = [
|
||
[1,2],[2,1],[2,3],[3,2],[3,4],[4,3],[4,5],[5,4],[5,6],[6,5]
|
||
];
|
||
pairs.forEach(([a, b]) => {
|
||
const pa = String(a).padStart(2, '0');
|
||
const pb = String(b).padStart(2, '0');
|
||
this.load.video(`stage-${pa}-${pb}`, `assets/video/stage-${pa}-${pb}.mp4`, true);
|
||
});
|
||
|
||
// Victory videos
|
||
this.load.video('lord-victory', 'assets/video/lord-victory.mp4', true);
|
||
this.load.video('sin-victory', 'assets/video/sin-victory.mp4', true);
|
||
|
||
// Background music
|
||
this.load.audio('music-01-02', 'assets/music/stage-01-02.mp3');
|
||
this.load.audio('music-03-04', 'assets/music/stage-03-04.mp3');
|
||
this.load.audio('music-05-06', 'assets/music/stage-05-06.mp3');
|
||
this.load.audio('music-lord-victory', 'assets/music/lord-victory.mp3');
|
||
this.load.audio('music-sin-victory', 'assets/music/sin-victory.mp3');
|
||
|
||
// Sound effects
|
||
this.load.audio('sfx-spin', 'assets/fx/spin.mp3');
|
||
this.load.audio('sfx-stop', 'assets/fx/stop.mp3');
|
||
for (let i = 1; i <= 6; i++) {
|
||
this.load.audio(`sfx-nomatch-${i}`, `assets/fx/nomatch${i}.mp3`);
|
||
this.load.audio(`sfx-match-${i}`, `assets/fx/match${i}.mp3`);
|
||
}
|
||
this.load.audio('sfx-coins', 'assets/fx/coins.mp3');
|
||
}
|
||
|
||
create() {
|
||
this.scene.start('GameScene');
|
||
this.scene.launch('UIScene');
|
||
}
|
||
}
|