diff --git a/lib/features/screens/episode_screen.dart b/lib/features/screens/episode_screen.dart index f56fdfd..51d9621 100644 --- a/lib/features/screens/episode_screen.dart +++ b/lib/features/screens/episode_screen.dart @@ -36,10 +36,7 @@ class _EpisodeScreenState extends State { @override Widget build(BuildContext context) { - final int numberOfEpisodes = (Wolf3d.I.levels.length / 10).floor().clamp( - 1, - 6, - ); + final int numberOfEpisodes = Wolf3d.I.activeGame.numberOfEpisodes; return Scaffold( backgroundColor: Colors.black, diff --git a/packages/wolf_3d_data_types/lib/src/wolfenstein_data.dart b/packages/wolf_3d_data_types/lib/src/wolfenstein_data.dart index eee6f88..2cc058d 100644 --- a/packages/wolf_3d_data_types/lib/src/wolfenstein_data.dart +++ b/packages/wolf_3d_data_types/lib/src/wolfenstein_data.dart @@ -10,6 +10,11 @@ class WolfensteinData { final List levels; final List vgaImages; + // --- Derived Properties --- + /// Calculates the number of available episodes based on the loaded levels. + /// (Each episode consists of exactly 10 levels). + int get numberOfEpisodes => (levels.length / 10).floor().clamp(1, 6); + const WolfensteinData({ required this.version, required this.walls,