feat(io): GameIO music seams; push room track per turn, silence at menu

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-01 23:02:44 +02:00
parent 35ad4e6f1a
commit d0d8648bd0
4 changed files with 29 additions and 0 deletions

View File

@@ -143,5 +143,6 @@ public final class App {
new LookCommand().execute(ctx, List.of());
game.run();
io.setMusic(null); // fade music out when returning to the menu
}
}

View File

@@ -109,6 +109,7 @@ public class Game {
ctx.getPlayer().getCurrentRoom());
ctx.getIo().setMap(map);
ctx.getIo().setQuests(QuestEngine.viewOf(ctx));
ctx.getIo().setMusic(ctx.getPlayer().getCurrentRoom().getMusic());
}
/**

View File

@@ -65,6 +65,16 @@ public interface GameIO {
// no-op
}
/** Per-turn current-room music track; null/blank = silence. Console no-op; GUI plays. */
default void setMusic(String track) {
// no audio in text mode
}
/** Applies the music volume/level. Console no-op; GUI sets it. */
default void setMusicLevel(MusicLevel level) {
// no audio in text mode
}
/** On-demand quest log (the 'quests' command). Default renders styled text. */
default void showQuests(QuestView view) {
print(QuestText.render(view));