-
Notifications
You must be signed in to change notification settings - Fork 7
Mission UI
The mission UI can be accessed in game through interacting with the Questgiver NPC.
The Questgiver NPC entity is an entity that the player can interact with to access the mission display. This is done by pressing E when the player is close to (in range of) the questgiver.
The MissionDisplay
is a component added to the Questgiver entity and serves as a UI for viewing & interacting with missions.
The display contains 4 screens:
This is the first screen that shows when the Questgiver is interacted with and contains a story related blurb plus navigation buttons.
This screen takes all the achievements returned by the MissionManager
's getAchievements()
method and maps them to a table of Complete & Incomplete achievements.
This screen takes all the quests returned by the MissionManager
's getSelectableQuests()
& getActiveQuests()
methods and maps them to an interactive table. Active quests can either be in progress or expired, while inactive quests are either selectable or complete. The status of the quest affects the action button displayed next to it.
This contains the full description for the chosen quest as well as the same action button as in the Quest Menu.
The UI components of the MissionDisplay
are able to be unit tested by mocking the Stage
class and capturing the Actor
passed into the Stage
's addActor()
method. The captured Actor
can then be checked for all necessary components. The full test suite is found in MissionDisplayTest.java
.
In addition to the unit tests, user testing was completed to ensure the full mission functionality currently present in game was available in the UI, and that the elements were styled and visually displayed correctly. This was done by manually adding extra quests & achievements to the MissionManager
with various expiry times & completion requirements, having the player walk up to the Questgiver & press e
, then verifying the mission menu showed up and all screens had the expected state. The menu images in the previous section are an example of what was shown during user testing.