diff --git a/README.md b/README.md index 9e88163f2d7..839bfa3ae45 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,14 @@ Check out [Github Issues](https://github.com/pagefaultgames/pokerogue/issues) to - Keisuke Ito - Arata Iiyoshi - Atsuhiro Ishizuna + - Pokémon HeartGold/SoulSilver - Pokémon Black/White 2 + - Pokémon X/Y + - Pokémon Omega Ruby/Alpha Sapphire + - Pokémon Sun/Moon + - Pokémon Ultra Sun/Ultra Moon + - Pokémon Sword/Shield + - Pokémon Scarlet/Violet - Firel (Custom Metropolis and Laboratory biome music) - Lmz (Custom Jungle biome music) diff --git a/public/audio/bgm/battle_legendary_arceus.mp3 b/public/audio/bgm/battle_legendary_arceus.mp3 new file mode 100644 index 00000000000..03dab3878f2 Binary files /dev/null and b/public/audio/bgm/battle_legendary_arceus.mp3 differ diff --git a/public/audio/bgm/battle_legendary_birds_galar.mp3 b/public/audio/bgm/battle_legendary_birds_galar.mp3 new file mode 100644 index 00000000000..79bedb5c500 Binary files /dev/null and b/public/audio/bgm/battle_legendary_birds_galar.mp3 differ diff --git a/public/audio/bgm/battle_legendary_calyrex.mp3 b/public/audio/bgm/battle_legendary_calyrex.mp3 new file mode 100644 index 00000000000..8d22a5df963 Binary files /dev/null and b/public/audio/bgm/battle_legendary_calyrex.mp3 differ diff --git a/public/audio/bgm/battle_legendary_deoxys.mp3 b/public/audio/bgm/battle_legendary_deoxys.mp3 new file mode 100644 index 00000000000..da91a5f76bc Binary files /dev/null and b/public/audio/bgm/battle_legendary_deoxys.mp3 differ diff --git a/public/audio/bgm/battle_legendary_dia_pal.mp3 b/public/audio/bgm/battle_legendary_dia_pal.mp3 new file mode 100644 index 00000000000..07998098afe Binary files /dev/null and b/public/audio/bgm/battle_legendary_dia_pal.mp3 differ diff --git a/public/audio/bgm/battle_legendary_dusk_dawn.mp3 b/public/audio/bgm/battle_legendary_dusk_dawn.mp3 new file mode 100644 index 00000000000..20b883a4ca7 Binary files /dev/null and b/public/audio/bgm/battle_legendary_dusk_dawn.mp3 differ diff --git a/public/audio/bgm/battle_legendary_entei.mp3 b/public/audio/bgm/battle_legendary_entei.mp3 new file mode 100644 index 00000000000..30d1f87748c Binary files /dev/null and b/public/audio/bgm/battle_legendary_entei.mp3 differ diff --git a/public/audio/bgm/battle_legendary_giratina.mp3 b/public/audio/bgm/battle_legendary_giratina.mp3 new file mode 100644 index 00000000000..87674e003ca Binary files /dev/null and b/public/audio/bgm/battle_legendary_giratina.mp3 differ diff --git a/public/audio/bgm/battle_legendary_glas_spec.mp3 b/public/audio/bgm/battle_legendary_glas_spec.mp3 new file mode 100644 index 00000000000..52988510ea6 Binary files /dev/null and b/public/audio/bgm/battle_legendary_glas_spec.mp3 differ diff --git a/public/audio/bgm/battle_legendary_gro_kyo.mp3 b/public/audio/bgm/battle_legendary_gro_kyo.mp3 new file mode 100644 index 00000000000..b3401da3f6e Binary files /dev/null and b/public/audio/bgm/battle_legendary_gro_kyo.mp3 differ diff --git a/public/audio/bgm/battle_legendary_ho_oh.mp3 b/public/audio/bgm/battle_legendary_ho_oh.mp3 new file mode 100644 index 00000000000..46740297f77 Binary files /dev/null and b/public/audio/bgm/battle_legendary_ho_oh.mp3 differ diff --git a/public/audio/bgm/battle_legendary_kanto.mp3 b/public/audio/bgm/battle_legendary_kanto.mp3 new file mode 100644 index 00000000000..0b9946ec9fe Binary files /dev/null and b/public/audio/bgm/battle_legendary_kanto.mp3 differ diff --git a/public/audio/bgm/battle_legendary_lake_trio.mp3 b/public/audio/bgm/battle_legendary_lake_trio.mp3 new file mode 100644 index 00000000000..dc6bb08d13f Binary files /dev/null and b/public/audio/bgm/battle_legendary_lake_trio.mp3 differ diff --git a/public/audio/bgm/battle_legendary_loyal_three.mp3 b/public/audio/bgm/battle_legendary_loyal_three.mp3 new file mode 100644 index 00000000000..d753e58a0a7 Binary files /dev/null and b/public/audio/bgm/battle_legendary_loyal_three.mp3 differ diff --git a/public/audio/bgm/battle_legendary_lugia.mp3 b/public/audio/bgm/battle_legendary_lugia.mp3 new file mode 100644 index 00000000000..37031c8a642 Binary files /dev/null and b/public/audio/bgm/battle_legendary_lugia.mp3 differ diff --git a/public/audio/bgm/battle_legendary_ogerpon.mp3 b/public/audio/bgm/battle_legendary_ogerpon.mp3 new file mode 100644 index 00000000000..2ac0d9756a8 Binary files /dev/null and b/public/audio/bgm/battle_legendary_ogerpon.mp3 differ diff --git a/public/audio/bgm/battle_legendary_pecharunt.mp3 b/public/audio/bgm/battle_legendary_pecharunt.mp3 new file mode 100644 index 00000000000..48f205d97d1 Binary files /dev/null and b/public/audio/bgm/battle_legendary_pecharunt.mp3 differ diff --git a/public/audio/bgm/battle_legendary_raikou.mp3 b/public/audio/bgm/battle_legendary_raikou.mp3 new file mode 100644 index 00000000000..8daa7083faa Binary files /dev/null and b/public/audio/bgm/battle_legendary_raikou.mp3 differ diff --git a/public/audio/bgm/battle_legendary_rayquaza.mp3 b/public/audio/bgm/battle_legendary_rayquaza.mp3 new file mode 100644 index 00000000000..843596779bd Binary files /dev/null and b/public/audio/bgm/battle_legendary_rayquaza.mp3 differ diff --git a/public/audio/bgm/battle_legendary_regis.mp3 b/public/audio/bgm/battle_legendary_regis_g5.mp3 similarity index 100% rename from public/audio/bgm/battle_legendary_regis.mp3 rename to public/audio/bgm/battle_legendary_regis_g5.mp3 diff --git a/public/audio/bgm/battle_legendary_regis_g6.mp3 b/public/audio/bgm/battle_legendary_regis_g6.mp3 new file mode 100644 index 00000000000..ebe1a44d18a Binary files /dev/null and b/public/audio/bgm/battle_legendary_regis_g6.mp3 differ diff --git a/public/audio/bgm/battle_legendary_ruinous.mp3 b/public/audio/bgm/battle_legendary_ruinous.mp3 new file mode 100644 index 00000000000..dc1aeeaee26 Binary files /dev/null and b/public/audio/bgm/battle_legendary_ruinous.mp3 differ diff --git a/public/audio/bgm/battle_legendary_sinnoh.mp3 b/public/audio/bgm/battle_legendary_sinnoh.mp3 new file mode 100644 index 00000000000..6332a3e1cc2 Binary files /dev/null and b/public/audio/bgm/battle_legendary_sinnoh.mp3 differ diff --git a/public/audio/bgm/battle_legendary_sol_lun.mp3 b/public/audio/bgm/battle_legendary_sol_lun.mp3 new file mode 100644 index 00000000000..4aa9d5111b8 Binary files /dev/null and b/public/audio/bgm/battle_legendary_sol_lun.mp3 differ diff --git a/public/audio/bgm/battle_legendary_suicune.mp3 b/public/audio/bgm/battle_legendary_suicune.mp3 new file mode 100644 index 00000000000..7e7e4901386 Binary files /dev/null and b/public/audio/bgm/battle_legendary_suicune.mp3 differ diff --git a/public/audio/bgm/battle_legendary_tapu.mp3 b/public/audio/bgm/battle_legendary_tapu.mp3 new file mode 100644 index 00000000000..7f251a387a2 Binary files /dev/null and b/public/audio/bgm/battle_legendary_tapu.mp3 differ diff --git a/public/audio/bgm/battle_legendary_terapagos.mp3 b/public/audio/bgm/battle_legendary_terapagos.mp3 new file mode 100644 index 00000000000..b820d7dba6a Binary files /dev/null and b/public/audio/bgm/battle_legendary_terapagos.mp3 differ diff --git a/public/audio/bgm/battle_legendary_ub.mp3 b/public/audio/bgm/battle_legendary_ub.mp3 new file mode 100644 index 00000000000..7a6bdb3a678 Binary files /dev/null and b/public/audio/bgm/battle_legendary_ub.mp3 differ diff --git a/public/audio/bgm/battle_legendary_ultra_nec.mp3 b/public/audio/bgm/battle_legendary_ultra_nec.mp3 new file mode 100644 index 00000000000..63d8b0fa505 Binary files /dev/null and b/public/audio/bgm/battle_legendary_ultra_nec.mp3 differ diff --git a/public/audio/bgm/battle_legendary_xern_yvel.mp3 b/public/audio/bgm/battle_legendary_xern_yvel.mp3 new file mode 100644 index 00000000000..856bebb0f61 Binary files /dev/null and b/public/audio/bgm/battle_legendary_xern_yvel.mp3 differ diff --git a/public/audio/bgm/battle_legendary_zac_zam.mp3 b/public/audio/bgm/battle_legendary_zac_zam.mp3 new file mode 100644 index 00000000000..6725625bedf Binary files /dev/null and b/public/audio/bgm/battle_legendary_zac_zam.mp3 differ diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 216809aae06..0a9c881fb4d 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -126,6 +126,7 @@ export default class BattleScene extends SceneBase { public uiTheme: UiTheme = UiTheme.DEFAULT; public windowType: integer = 0; public experimentalSprites: boolean = false; + public musicPreference: integer = 0; public moveAnimations: boolean = true; public expGainsSpeed: integer = 0; public skipSeenDialogues: boolean = false; @@ -1698,14 +1699,74 @@ export default class BattleScene extends SceneBase { return 13.122; case "battle_unova_gym": return 19.145; - case "battle_legendary_regis": //B2W2 Legendary Titan Battle + case "battle_legendary_kanto": //XY Kanto Legendary Battle + return 32.966; + case "battle_legendary_raikou": //HGSS Raikou Battle + return 12.632; + case "battle_legendary_entei": //HGSS Entei Battle + return 2.905; + case "battle_legendary_suicune": //HGSS Suicune Battle + return 12.636; + case "battle_legendary_lugia": //HGSS Lugia Battle + return 19.770; + case "battle_legendary_ho_oh": //HGSS Ho-oh Battle + return 17.668; + case "battle_legendary_regis_g5": //B2W2 Legendary Titan Battle return 49.500; + case "battle_legendary_regis_g6": //ORAS Legendary Titan Battle + return 21.130; + case "battle_legendary_gro_kyo": //ORAS Groudon & Kyogre Battle + return 10.547; + case "battle_legendary_rayquaza": //ORAS Rayquaza Battle + return 10.495; + case "battle_legendary_deoxys": //ORAS Deoxys Battle + return 13.333; + case "battle_legendary_lake_trio": //ORAS Lake Guardians Battle + return 16.887; + case "battle_legendary_sinnoh": //ORAS Sinnoh Legendary Battle + return 22.770; + case "battle_legendary_dia_pal": //ORAS Dialga & Palkia Battle + return 16.009; + case "battle_legendary_giratina": //ORAS Giratina Battle + return 10.451; + case "battle_legendary_arceus": //HGSS Arceus Battle + return 9.595; case "battle_legendary_unova": //BW Unova Legendary Battle return 13.855; case "battle_legendary_kyurem": //BW Kyurem Battle return 18.314; case "battle_legendary_res_zek": //BW Reshiram & Zekrom Battle return 18.329; + case "battle_legendary_xern_yvel": //XY Xerneas & Yveltal Battle + return 26.468; + case "battle_legendary_tapu": //SM Tapu Battle + return 0.000; + case "battle_legendary_sol_lun": //SM Solgaleo & Lunala Battle + return 6.525; + case "battle_legendary_ub": //SM Ultra Beast Battle + return 9.818; + case "battle_legendary_dusk_dawn": //USUM Dusk Mane & Dawn Wings Necrozma Battle + return 5.211; + case "battle_legendary_ultra_nec": //USUM Ultra Necrozma Battle + return 10.344; + case "battle_legendary_zac_zam": //SWSH Zacian & Zamazenta Battle + return 11.424; + case "battle_legendary_glas_spec": //SWSH Glastrier & Spectrier Battle + return 12.503; + case "battle_legendary_calyrex": //SWSH Calyrex Battle + return 50.641; + case "battle_legendary_birds_galar": //SWSH Galarian Legendary Birds Battle + return 0.175; + case "battle_legendary_ruinous": //SV Treasures of Ruin Battle + return 6.333; + case "battle_legendary_loyal_three": //SV Loyal Three Battle + return 6.500; + case "battle_legendary_ogerpon": //SV Ogerpon Battle + return 14.335; + case "battle_legendary_terapagos": //SV Terapagos Battle + return 24.377; + case "battle_legendary_pecharunt": //SV Pecharunt Battle + return 6.508; case "battle_rival": return 13.689; case "battle_rival_2": diff --git a/src/battle.ts b/src/battle.ts index c857a8766ed..4f941eaa653 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -209,22 +209,116 @@ export default class Battle { return "battle_final_encounter"; } if (pokemon.species.legendary || pokemon.species.subLegendary || pokemon.species.mythical) { - if (pokemon.species.speciesId === Species.REGIROCK || pokemon.species.speciesId === Species.REGICE || pokemon.species.speciesId === Species.REGISTEEL || pokemon.species.speciesId === Species.REGIGIGAS || pokemon.species.speciesId === Species.REGIELEKI || pokemon.species.speciesId === Species.REGIDRAGO) { - return "battle_legendary_regis"; - } - if (pokemon.species.speciesId === Species.COBALION || pokemon.species.speciesId === Species.TERRAKION || pokemon.species.speciesId === Species.VIRIZION || pokemon.species.speciesId === Species.TORNADUS || pokemon.species.speciesId === Species.THUNDURUS || pokemon.species.speciesId === Species.LANDORUS || pokemon.species.speciesId === Species.KELDEO || pokemon.species.speciesId === Species.MELOETTA || pokemon.species.speciesId === Species.GENESECT) { + if (scene.musicPreference === 0) { + if (pokemon.species.speciesId === Species.REGIROCK || pokemon.species.speciesId === Species.REGICE || pokemon.species.speciesId === Species.REGISTEEL || pokemon.species.speciesId === Species.REGIGIGAS || pokemon.species.speciesId === Species.REGIELEKI || pokemon.species.speciesId === Species.REGIDRAGO) { + return "battle_legendary_regis_g5"; + } + if (pokemon.species.speciesId === Species.COBALION || pokemon.species.speciesId === Species.TERRAKION || pokemon.species.speciesId === Species.VIRIZION || pokemon.species.speciesId === Species.TORNADUS || pokemon.species.speciesId === Species.THUNDURUS || pokemon.species.speciesId === Species.LANDORUS || pokemon.species.speciesId === Species.KELDEO || pokemon.species.speciesId === Species.MELOETTA || pokemon.species.speciesId === Species.GENESECT) { + return "battle_legendary_unova"; + } + if (pokemon.species.speciesId === Species.KYUREM) { + return "battle_legendary_kyurem"; + } + if (pokemon.species.legendary) { + return "battle_legendary_res_zek"; + } + return "battle_legendary_unova"; + } else { + if (pokemon.species.speciesId === Species.ARTICUNO || pokemon.species.speciesId === Species.ZAPDOS || pokemon.species.speciesId === Species.MOLTRES || pokemon.species.speciesId === Species.MEWTWO || pokemon.species.speciesId === Species.MEW) { + return "battle_legendary_kanto"; + } + if (pokemon.species.speciesId === Species.RAIKOU) { + return "battle_legendary_raikou"; + } + if (pokemon.species.speciesId === Species.ENTEI) { + return "battle_legendary_entei"; + } + if (pokemon.species.speciesId === Species.SUICUNE) { + return "battle_legendary_suicune"; + } + if (pokemon.species.speciesId === Species.LUGIA) { + return "battle_legendary_lugia"; + } + if (pokemon.species.speciesId === Species.HO_OH) { + return "battle_legendary_ho_oh"; + } + if (pokemon.species.speciesId === Species.REGIROCK || pokemon.species.speciesId === Species.REGICE || pokemon.species.speciesId === Species.REGISTEEL || pokemon.species.speciesId === Species.REGIGIGAS || pokemon.species.speciesId === Species.REGIELEKI || pokemon.species.speciesId === Species.REGIDRAGO) { + return "battle_legendary_regis_g6"; + } + if (pokemon.species.speciesId === Species.GROUDON || pokemon.species.speciesId === Species.KYOGRE) { + return "battle_legendary_gro_kyo"; + } + if (pokemon.species.speciesId === Species.RAYQUAZA) { + return "battle_legendary_rayquaza"; + } + if (pokemon.species.speciesId === Species.DEOXYS) { + return "battle_legendary_deoxys"; + } + if (pokemon.species.speciesId === Species.UXIE || pokemon.species.speciesId === Species.MESPRIT || pokemon.species.speciesId === Species.AZELF) { + return "battle_legendary_lake_trio"; + } + if (pokemon.species.speciesId === Species.HEATRAN || pokemon.species.speciesId === Species.CRESSELIA || pokemon.species.speciesId === Species.DARKRAI || pokemon.species.speciesId === Species.SHAYMIN) { + return "battle_legendary_sinnoh"; + } + if (pokemon.species.speciesId === Species.DIALGA || pokemon.species.speciesId === Species.PALKIA) { + return "battle_legendary_dia_pal"; + } + if (pokemon.species.speciesId === Species.GIRATINA) { + return "battle_legendary_giratina"; + } + if (pokemon.species.speciesId === Species.ARCEUS) { + return "battle_legendary_arceus"; + } + if (pokemon.species.speciesId === Species.COBALION || pokemon.species.speciesId === Species.TERRAKION || pokemon.species.speciesId === Species.VIRIZION || pokemon.species.speciesId === Species.TORNADUS || pokemon.species.speciesId === Species.THUNDURUS || pokemon.species.speciesId === Species.LANDORUS || pokemon.species.speciesId === Species.KELDEO || pokemon.species.speciesId === Species.MELOETTA || pokemon.species.speciesId === Species.GENESECT) { + return "battle_legendary_unova"; + } + if (pokemon.species.speciesId === Species.KYUREM) { + return "battle_legendary_kyurem"; + } + if (pokemon.species.speciesId === Species.XERNEAS || pokemon.species.speciesId === Species.YVELTAL || pokemon.species.speciesId === Species.ZYGARDE) { + return "battle_legendary_xern_yvel"; + } + if (pokemon.species.speciesId === Species.TAPU_KOKO || pokemon.species.speciesId === Species.TAPU_LELE || pokemon.species.speciesId === Species.TAPU_BULU || pokemon.species.speciesId === Species.TAPU_FINI) { + return "battle_legendary_tapu"; + } + if (pokemon.species.speciesId === Species.COSMOG || pokemon.species.speciesId === Species.COSMOEM || pokemon.species.speciesId === Species.SOLGALEO || pokemon.species.speciesId === Species.LUNALA || pokemon.species.speciesId === Species.NECROZMA) { + return "battle_legendary_sol_lun"; + } + if (pokemon.species.speciesId === Species.NIHILEGO || pokemon.species.speciesId === Species.BUZZWOLE || pokemon.species.speciesId === Species.PHEROMOSA || pokemon.species.speciesId === Species.XURKITREE || pokemon.species.speciesId === Species.CELESTEELA || pokemon.species.speciesId === Species.KARTANA || pokemon.species.speciesId === Species.GUZZLORD || pokemon.species.speciesId === Species.POIPOLE || pokemon.species.speciesId === Species.NAGANADEL || pokemon.species.speciesId === Species.STAKATAKA || pokemon.species.speciesId === Species.BLACEPHALON) { + return "battle_legendary_ub"; + } + if (pokemon.species.speciesId === Species.ZACIAN || pokemon.species.speciesId === Species.ZAMAZENTA) { + return "battle_legendary_zac_zam"; + } + if (pokemon.species.speciesId === Species.GLASTRIER || pokemon.species.speciesId === Species.SPECTRIER) { + return "battle_legendary_glas_spec"; + } + if (pokemon.species.speciesId === Species.CALYREX) { + return "battle_legendary_calyrex"; + } + if (pokemon.species.speciesId === Species.GALAR_ARTICUNO || pokemon.species.speciesId === Species.GALAR_ZAPDOS || pokemon.species.speciesId === Species.GALAR_MOLTRES) { + return "battle_legendary_birds_galar"; + } + if (pokemon.species.speciesId === Species.WO_CHIEN || pokemon.species.speciesId === Species.CHIEN_PAO || pokemon.species.speciesId === Species.TING_LU || pokemon.species.speciesId === Species.CHI_YU) { + return "battle_legendary_ruinous"; + } + if (pokemon.species.speciesId === Species.OKIDOGI || pokemon.species.speciesId === Species.MUNKIDORI || pokemon.species.speciesId === Species.FEZANDIPITI) { + return "battle_legendary_loyal_three"; + } + if (pokemon.species.speciesId === Species.OGERPON) { + return "battle_legendary_ogerpon"; + } + if (pokemon.species.speciesId === Species.TERAPAGOS) { + return "battle_legendary_terapagos"; + } + if (pokemon.species.speciesId === Species.PECHARUNT) { + return "battle_legendary_pecharunt"; + } + if (pokemon.species.legendary) { + return "battle_legendary_res_zek"; + } return "battle_legendary_unova"; } - if (pokemon.species.speciesId === Species.RESHIRAM || pokemon.species.speciesId === Species.ZEKROM) { - return "battle_legendary_res_zek"; - } - if (pokemon.species.speciesId === Species.KYUREM) { - return "battle_legendary_kyurem"; - } - if (pokemon.species.legendary) { - return "battle_legendary_res_zek"; - } - return "battle_legendary_unova"; } } diff --git a/src/system/settings/settings.ts b/src/system/settings/settings.ts index f79393dac5c..f5865c7ac9b 100644 --- a/src/system/settings/settings.ts +++ b/src/system/settings/settings.ts @@ -66,7 +66,8 @@ export const SettingKeys = { Player_Gender: "PLAYER_GENDER", Master_Volume: "MASTER_VOLUME", BGM_Volume: "BGM_VOLUME", - SE_Volume: "SE_VOLUME" + SE_Volume: "SE_VOLUME", + Music_Preference: "MUSIC_PREFERENCE" }; /** @@ -287,6 +288,14 @@ export const Setting: Array = [ options: VOLUME_OPTIONS, default: 10, type: SettingType.AUDIO + }, + { + key: SettingKeys.Music_Preference, + label: "Music Preference", + options: ["Consistent", "Mixed"], + default: 0, + type: SettingType.AUDIO, + requireReload: true } ]; @@ -335,6 +344,9 @@ export function setSetting(scene: BattleScene, setting: string, value: integer): scene.seVolume = value ? parseInt(Setting[index].options[value]) * 0.01 : 0; scene.updateSoundVolume(); break; + case SettingKeys.Music_Preference: + scene.musicPreference = value; + break; case SettingKeys.Damage_Numbers: scene.damageNumbersMode = value; break;