The WPF application is designed with separation of logic and presentation in mind, via implementation of a three-layer architecture: presentation layer, business logic layer, and data access layer. Delegates are used together with events to create an event-driven application.
In addition to making the application modular and maintainable, the separation of layers was important to allow interchangeability of the GUI for the game in the future. Inspiration for handling the running of the game was taken from roguelike games, using a turn-based game loop.
Game events are logged to a text file and to output. (Previous version: serialization was used to persist data in binary and XML formats, enabling the loading and saving of games from file).
A database manager class using LINQ in conjuction with a DbContext class implements SQL database functionality to allow the saving, deleting, editing and searching of games stored locally.
A simple timer and animation was used to shift colours in the banner of the main game window.