Skip to content

Chore System

Ben Jackson edited this page Oct 22, 2021 · 5 revisions

Chore System

The chore system introduces a level of complexity to gameplay. The chore system will generate and track chore tasks given to the player to complete every level. The player cannot progress through the level (sleep on the bed) until all their chores are complete (unlike in real life). The chores are assigned and generated based on the level, and will increase in difficulty at higher levels.

Key Components and Classes

  • Controller: ChoreController Is a service that will decide, given the level number and difficulty, how many chores must be completed by the Player to complete the level. The controller will create a Chore (See below) for each chore-type entity as they are spawned into the level. It will then keep track of each of these entities as they are interacted with, and will then check whether this completes the Chore. Can be accessed via ServiceLocator.
  • Chore: Chore Class specifying the chore object type, it's description, the number of entities associated with it, and whether or not it is active or not. Similar operation to a struct.
  • Chore types: ChoreList An Enum that holds a list of chore types, i.e. TV, PUDDLE, etc. to simplify tasks with ChoreController and Chore. It also, more importantly, holds two getDescription methods, which will either return a singular or plural description of a chore to display to the UI. Singular example: "Turn off the TV". Plural example: "Turn off n TVs" (where n is the number of tv entities in the game).
  • UI: ChoreUI Asks the ChoreController for a list of chores have been assigned to the player on a given level, and display them to the screen. Will update the display as the player completes these chores. Can be toggled on or off with the 'o' key.

UML Diagram

Operation

  • Chore Generation: When the level is loaded, the level, and each chore entity spawned is passed to the ChoreController which then puts together a list of all the chores to complete, and removes random chores until there is an appropriate number of chores for the level (0 chores at lvl 1, 2 at lvl 2, 4 at lvl 3, etc.)
Clone this wiki locally