This repository has been archived by the owner on Sep 17, 2019. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Merge this after everyone else has finished their end term merges, it's not that pressing.
Why
Games have entry conditions, you can only play them if ROS is enabled (Snapchat) or if the Internet is enabled (Akinator). Future games are likely to also have similar limitations.
ChooseGameState
must be able to handle this.What was done
Games now shall extend an abstract class GameState. This is so that we can record the entry conditions, error messages and tags in each class, rather then alter
ChooseGameState
massively. Hopefully fulfills OO principles a bit better.Furthermore, only games that can be played shall be suggested and the game shall be checked once again before entering the state.
Stuff Offloaded to GameStates
Extras
Additionally, some other features were implemented as a byproduct of this PR
Todo