diff --git a/public/audio/bgm/abyss.mp3 b/public/audio/bgm/abyss.mp3 index fadb0a5bf..3347d89d7 100644 Binary files a/public/audio/bgm/abyss.mp3 and b/public/audio/bgm/abyss.mp3 differ diff --git a/public/audio/bgm/beach.mp3 b/public/audio/bgm/beach.mp3 index aab924c79..a22386a9d 100644 Binary files a/public/audio/bgm/beach.mp3 and b/public/audio/bgm/beach.mp3 differ diff --git a/public/audio/bgm/cave.mp3 b/public/audio/bgm/cave.mp3 index 836229ef2..f27d110d3 100644 Binary files a/public/audio/bgm/cave.mp3 and b/public/audio/bgm/cave.mp3 differ diff --git a/public/audio/bgm/city.mp3 b/public/audio/bgm/city.mp3 index 0a4186afe..2df06608e 100644 Binary files a/public/audio/bgm/city.mp3 and b/public/audio/bgm/city.mp3 differ diff --git a/public/audio/bgm/desert.mp3 b/public/audio/bgm/desert.mp3 index a8224309c..546cc0c33 100644 Binary files a/public/audio/bgm/desert.mp3 and b/public/audio/bgm/desert.mp3 differ diff --git a/public/audio/bgm/dojo.mp3 b/public/audio/bgm/dojo.mp3 index 33faffde2..cb4a67b83 100644 Binary files a/public/audio/bgm/dojo.mp3 and b/public/audio/bgm/dojo.mp3 differ diff --git a/public/audio/bgm/forest.mp3 b/public/audio/bgm/forest.mp3 index 5beb948ab..0f5af3b56 100644 Binary files a/public/audio/bgm/forest.mp3 and b/public/audio/bgm/forest.mp3 differ diff --git a/public/audio/bgm/grass.mp3 b/public/audio/bgm/grass.mp3 index 079eb3635..f9555ec2a 100644 Binary files a/public/audio/bgm/grass.mp3 and b/public/audio/bgm/grass.mp3 differ diff --git a/public/audio/bgm/graveyard.mp3 b/public/audio/bgm/graveyard.mp3 index 648d3ffd2..343ad3eda 100644 Binary files a/public/audio/bgm/graveyard.mp3 and b/public/audio/bgm/graveyard.mp3 differ diff --git a/public/audio/bgm/ice_cave.mp3 b/public/audio/bgm/ice_cave.mp3 index 848298c6f..bc23973b9 100644 Binary files a/public/audio/bgm/ice_cave.mp3 and b/public/audio/bgm/ice_cave.mp3 differ diff --git a/public/audio/bgm/lake.mp3 b/public/audio/bgm/lake.mp3 index 8d63b2377..e93228ba5 100644 Binary files a/public/audio/bgm/lake.mp3 and b/public/audio/bgm/lake.mp3 differ diff --git a/public/audio/bgm/land.mp3 b/public/audio/bgm/land.mp3 index 14f01b30e..40b3cf941 100644 Binary files a/public/audio/bgm/land.mp3 and b/public/audio/bgm/land.mp3 differ diff --git a/public/audio/bgm/meadow.mp3 b/public/audio/bgm/meadow.mp3 index 85534407a..5990f79e5 100644 Binary files a/public/audio/bgm/meadow.mp3 and b/public/audio/bgm/meadow.mp3 differ diff --git a/public/audio/bgm/menu.mp3 b/public/audio/bgm/menu.mp3 index 51ceb78ba..a57ba45bd 100644 Binary files a/public/audio/bgm/menu.mp3 and b/public/audio/bgm/menu.mp3 differ diff --git a/public/audio/bgm/mountain.mp3 b/public/audio/bgm/mountain.mp3 index 555e68a9f..d71cd6870 100644 Binary files a/public/audio/bgm/mountain.mp3 and b/public/audio/bgm/mountain.mp3 differ diff --git a/public/audio/bgm/plains.mp3 b/public/audio/bgm/plains.mp3 index bf2601649..3deb8f4b2 100644 Binary files a/public/audio/bgm/plains.mp3 and b/public/audio/bgm/plains.mp3 differ diff --git a/public/audio/bgm/power_plant.mp3 b/public/audio/bgm/power_plant.mp3 index 51d7183e9..a7ab54305 100644 Binary files a/public/audio/bgm/power_plant.mp3 and b/public/audio/bgm/power_plant.mp3 differ diff --git a/public/audio/bgm/ruins.mp3 b/public/audio/bgm/ruins.mp3 index 6cc26a69b..096161d8b 100644 Binary files a/public/audio/bgm/ruins.mp3 and b/public/audio/bgm/ruins.mp3 differ diff --git a/public/audio/bgm/sea.mp3 b/public/audio/bgm/sea.mp3 index 862422699..0bf44bcc3 100644 Binary files a/public/audio/bgm/sea.mp3 and b/public/audio/bgm/sea.mp3 differ diff --git a/public/audio/bgm/seabed.mp3 b/public/audio/bgm/seabed.mp3 index df95b4ff5..afa282cb4 100644 Binary files a/public/audio/bgm/seabed.mp3 and b/public/audio/bgm/seabed.mp3 differ diff --git a/public/audio/bgm/space.mp3 b/public/audio/bgm/space.mp3 index 66907bebe..9585351c9 100644 Binary files a/public/audio/bgm/space.mp3 and b/public/audio/bgm/space.mp3 differ diff --git a/public/audio/bgm/swamp.mp3 b/public/audio/bgm/swamp.mp3 index 074e1c3d8..e92045d18 100644 Binary files a/public/audio/bgm/swamp.mp3 and b/public/audio/bgm/swamp.mp3 differ diff --git a/public/audio/bgm/tall_grass.mp3 b/public/audio/bgm/tall_grass.mp3 index 8d6908b7d..68c587547 100644 Binary files a/public/audio/bgm/tall_grass.mp3 and b/public/audio/bgm/tall_grass.mp3 differ diff --git a/public/audio/bgm/town.mp3 b/public/audio/bgm/town.mp3 index 1a15c9957..dd8d3fa66 100644 Binary files a/public/audio/bgm/town.mp3 and b/public/audio/bgm/town.mp3 differ diff --git a/public/audio/bgm/volcano.mp3 b/public/audio/bgm/volcano.mp3 index 8f0ba65d1..8e5a6ff8d 100644 Binary files a/public/audio/bgm/volcano.mp3 and b/public/audio/bgm/volcano.mp3 differ diff --git a/public/audio/bgm/wasteland.mp3 b/public/audio/bgm/wasteland.mp3 index f056c149c..ee068ac2e 100644 Binary files a/public/audio/bgm/wasteland.mp3 and b/public/audio/bgm/wasteland.mp3 differ diff --git a/src/arena.ts b/src/arena.ts index d96591c73..40816603d 100644 --- a/src/arena.ts +++ b/src/arena.ts @@ -258,7 +258,7 @@ export class Arena { playBgm(): void { this.scene.loadBgm(this.bgm); - this.scene.load.once(Phaser.Loader.Events.COMPLETE, () => this.scene.playBgm(this.bgm)); + this.scene.load.once(Phaser.Loader.Events.COMPLETE, () => this.scene.playBgm(this.bgm, this.getBgmLoopPoint())); if (!this.scene.load.isLoading()) this.scene.load.start(); } @@ -269,4 +269,59 @@ export class Arena { const bgm = this.scene.sound.get(this.bgm); SoundFade.fadeOut(this.scene, bgm, duration, destroy); } + + getBgmLoopPoint(): number { + switch (this.biomeType) { + case Biome.TOWN: + return 7.288; + case Biome.PLAINS: + return 7.693; + case Biome.GRASS: + return 1.995; + case Biome.TALL_GRASS: + return 9.608; + case Biome.CITY: + return 1.221; + case Biome.FOREST: + return 4.294; + case Biome.SEA: + return 1.672; + case Biome.SWAMP: + return 4.461; + case Biome.BEACH: + return 3.462; + case Biome.LAKE: + return 5.350; + case Biome.SEABED: + return 2.629; + case Biome.MOUNTAIN: + return 4.018; + case Biome.LAND: + return 17.790; + case Biome.CAVE: + return 14.240; + case Biome.DESERT: + return 1.143; + case Biome.ICE_CAVE: + return 15.010; + case Biome.MEADOW: + return 3.891; + case Biome.POWER_PLANT: + return 2.810; + case Biome.VOLCANO: + return 5.116; + case Biome.GRAVEYARD: + return 3.232; + case Biome.DOJO: + return 6.205; + case Biome.RUINS: + return 2.270; + case Biome.WASTELAND: + return 6.336; + case Biome.ABYSS: + return 5.130; + case Biome.SPACE: + return 21.347; + } + } } \ No newline at end of file diff --git a/src/battle-scene.ts b/src/battle-scene.ts index a6715f5af..c5c8e7db0 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -581,7 +581,7 @@ export default class BattleScene extends Phaser.Scene { return this.buttonKeys[button].filter(k => k.isDown).length >= 1; } - playBgm(bgmName?: string): void { + playBgm(bgmName?: string, loopPoint?: number): void { if (!bgmName && this.bgm) { this.bgm.play({ volume: 1 @@ -592,6 +592,8 @@ export default class BattleScene extends Phaser.Scene { this.bgm.stop(); this.bgm = this.sound.add(bgmName, { loop: true }); this.bgm.play(); + if (loopPoint) + this.bgm.on('looped', () => this.bgm.play({ seek: loopPoint })); } pauseBgm(): void { diff --git a/src/pokemon.ts b/src/pokemon.ts index 28595d446..78cc36d1a 100644 --- a/src/pokemon.ts +++ b/src/pokemon.ts @@ -845,7 +845,7 @@ export class PlayerPokemon extends Pokemon { constructor(scene: BattleScene, species: PokemonSpecies, level: integer, abilityIndex: integer, formIndex: integer, gender?: Gender, shiny?: boolean, dataSource?: Pokemon) { super(scene, 106, 148, species, level, abilityIndex, formIndex, gender, shiny, dataSource); - this.metBiome = scene.arena.biomeType; + this.metBiome = scene.arena?.biomeType || Biome.TOWN; this.metLevel = level; this.generateCompatibleTms(); }