Skip to content

doctor-g/ThunderstoneQuestRandomizer

Repository files navigation

Thunderstone Quest Randomizer

This application is a randomizer for Thunderstone Quest. You can use it to generate randomized tableaus for playing the game in competitive mode.

Use the Web app now!

Building

This app uses source_gen to process the SettingsModel implementation. Before the rest of the application can be built, build_runner has to be invoked. This is done with the command:

dart run build_runner build

That can be invoked in VSCode via Ctrl-Shift-B.

Using the watch command instead will start a process that rebuilds on changes, as in:

dart run build_runner watch

Automatic building in Visual Studio Code

.vscode/tasks.json is configured so that the build_runner watcher will start when the folder opens. However, each VSCode instance needs to be configured to allow this to happen. Do this through the command palette (Ctrl-Shift-P) and running "Tasks: Configure Automatic Tasks in Folder", which will give an option to enable to tasks.

Localization

The cards.yml file can be localized into different languages. See that files for translation instructions. To enable a language in the settings page, add (or uncomment) an appropriate line in the definition of _supportedLanguages in settings.dart

The rest of the app also supports localization using the Intl package as described in the docs. A new language could be added by creating a new .arb for the given language (e.g. app_fr.erb for French).

Background

In 2019, I created TSQR, which is another randomizer for Thunderstone Quest. It was created using a different technology stack I was investigating at the time. The original TSQR is still available online, if you prefer to use it.

In Summer 2020, I decided to learn Flutter with an eye toward using it in a Fall 2020 course. I was inspired by the release of the New Horizons set to revisit the problem domain with a new technology stack. I was able to add Quests 8–9 to TSQR without too much difficulty except that my original randomizer contained assumptions that prevented the inclusion of the new Ally cards—at least, without requiring a significant reimplementation effort. Hence, I decided to spend some time getting deeper into Flutter, and the result is this application.

Third-party assets

Acknowledgements

Thunderstone Quest is a property of Alderac Entertainment Group.

Thanks to Alex for his invaluable assistance with encoding the card data.

Legal

©2020–2024 Paul Gestwicki

This application is licensed under GNU GPL v3.

About

Flutter implementation of a Thunderstone Quest Randomizer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published