From 2bfa491b6a594d6c1d95b2111b97a03e4dfc1626 Mon Sep 17 00:00:00 2001 From: Shane McGovern Date: Mon, 3 Aug 2026 00:52:46 +0100 Subject: [PATCH] Start champion theme when rival dialogue ends, not at battle The Elite Four champion script showed the rival's intro text and then jumped straight into the battle; the wipe-time playBattle('final') started Music_FinalBattle only when the battle began. The original (ChampionsRoomRivalReadyToBattleScript) plays MUSIC_FINAL_BATTLE right after the dialogue ends, before the battle. Add a play_music Music_FinalBattle row between the intro text and the battle, and bump the two past-the-end jump targets 25 -> 26 for the new row count. pushBattle's wipe-time playBattle('final') no-ops on the already-playing song, so the theme stays continuous into the fight. Fixes #706 --- data/scripts/story.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/data/scripts/story.lua b/data/scripts/story.lua index 53be89c5..99aecc4c 100644 --- a/data/scripts/story.lua +++ b/data/scripts/story.lua @@ -981,10 +981,15 @@ M.VICTORY_ROAD_3F = { local championsRoomRivalScript = { { "face_player" }, -- 1 { "check_flag", "EVENT_BEAT_CHAMPION_RIVAL_THIS_RUN" }, -- 2 - { "jump_if_true", 25 }, -- 3 past end + { "jump_if_true", 26 }, -- 3 past end { "show_text", "_ChampionsRoomRivalIntroText" }, -- 4 - { "rival_battle", "OPP_RIVAL3", 1 }, -- 5 - { "jump_if_false", 25 }, -- 6 past end + -- ChampionsRoomRivalReadyToBattleScript plays MUSIC_FINAL_BATTLE after + -- the intro text, before the battle itself (#706); pushBattle's wipe-time + -- playBattle("final") then no-ops on the same song, so the theme stays + -- continuous into the fight + { "play_music", "Music_FinalBattle" }, -- 5 + { "rival_battle", "OPP_RIVAL3", 1 }, -- 6 + { "jump_if_false", 26 }, -- 6 past end { "set_flag", "EVENT_BEAT_CHAMPION_RIVAL_THIS_RUN" }, -- 7 { "set_flag", "EVENT_BEAT_CHAMPION_RIVAL" }, -- 8 -- ChampionsRoomRivalDefeatedScript re-displays TEXT_CHAMPIONSROOM_RIVAL,