All Classes and Interfaces
Class
Description
The AbstractFood class manages the amount of hunger points (provided from food items) is added to the hunger bar
This classes applies the effect of the nutrition points towards the animal hunger bar
Abstract base class for items that can be used by a player.
Represents an achievement.
Represents the type of achievement.
The
AchievementDisplay
class manages the display of achievements in the achievements screenManages the achievements in the game by loading them from a config file,
AchievementPopup is an UIComponent that displays whenever the player completes a new achievement and then disappears.
A data struct that contains other data structs to be saved to JSONs by SaveHandler.
This class is responsible for managing the playback of air-animal-related sounds,
focusing on sounds such as wings flapping and bird screeching.
Task-based AI component.
A customizable alert box that displays a message and an "OK" button to dismiss.
Cast a ray against all colliders that match the layer mask.
AnglerFish represents a non-playable character (NPC) in the maze mini-game.
Renders animations from a texture atlas on an entity.
Represents an apple in the Snake game.
Renders the apple on the grid in the Snake mini-game.
Contains file paths for the assets used in the Snake mini-game,
including images for the apple, snake, and grid.
Represents an attack move in combat.
AudioManager is a service for managing all game audio, including music and sound effects.
Moves away from a target entity until a safe distance is reached or line of sight is lost
This claass makes a moving background for the Birdie Dash Mini-Game
Represents a background image to be displayed on the stage.
Rendering for the background of birdie dash mini-game
This class listens to events relevant to a chicken entity's state and plays the animation when one
of the events is triggered.
Defines a basic set of properties stored in entities config files to be loaded by Entity Factories.
Defines a basic set of properties stored in entities config files to be loaded by Entity Factories.
Defines a basic set of properties stored in entities config files to be loaded by Entity Factories.
BaseLootTable is a concrete class representing a basic loot table used to manage and generate loot items.
Class for the bird in the mini-game birdie dash
Class for the birdie dash game mechanics
Class for Birdie Dash Game Screen
Class for rendering the bird with animation in the birdie dash mini-game.
Wander around by moving a random position within a range of the starting position.
POJO which contains the custom data attached to each box2D entity.
This class listens to events related to the Boss entity's state and plays the appropriate animation
when one of the events is triggered.
The CCell class holds the possible tiles for the cell.
Chases a target entity until they get too far away or line of sight is lost
ChatbotService handles predefined responses for the chatbot.
A class that handles the chatbot UI and its functionality.
Class for the coin in the birdie dash mini-game
Renderer for the coins in the birdie dash mini-game
Attaches a physics collider to an entity.
Class to detect and track collisions in birdie dash mini-game
This class listens to events relevant to the combat screen and does something when one of the
events is triggered.
Factory to create display entities in the Combat Screen with predefined components.
This class listens to events relevant to an entity's state in combat and plays the animation when one
of the events is triggered.
CombatAnimationDisplay represents the UI displayed during combat, such as attack animations.
Forest area for the demo game with trees, a player, and some enemies.
This is a config class for the CombatArea.
Displays a button to exit the Main Game screen to the Main Menu screen.
Displays two buttons during combat to exit the Main Game screen and return to the Main Menu screen.
The CombatManager class is responsible for managing the turn-based combat loop between two entities (player and enemy).
Enum representing the possible actions in combat: ATTACK, GUARD, SLEEP, SPECIAL, or ITEM.
Represents an abstract combat move in the game.
Represents changes to combat stats resulting from a move.
The CombatMoveComponent class manages a set of combat moves for an entity.
The game screen containing the combat feature.
A popup UI that displays multiple popup messages when stats change.
Component used to store information related to combat such as health, attack, etc.
Displays the stats bars of both the player and the enemy on the CombatScreen.
Factory for creating game terrains.
This enum should contain the different terrains in your game, e.g.
A generic command class.
Core component class from which all components inherit.
Internal type system for components.
A component that holds and manages configuration data for an entity.
Base class for consumable type items that can be used by a player.
A customizable button class that combines a button with a label and hover/click effects.
Represents the cutscene screen that displays
a cutscene before transitioning to the next game state.
Handles ambient lighting for the game to produce a day/night cycle effect.
A command for toggling debug mode on and off.
Provides functionality to draw lines/shapes to the screen for debug purposes.
A default task implementation that stores the associated entity and updates status when
starting/stopping a task.
The
DefensePotion
class represents a specific type of potion that temporarily increases the defense a
player.Represents a chat overlay UI component that displays a series of hint messages
and allows navigation between them using forward and backward buttons.
Key to identify dialogues based on the NPC's.
Enum representing the 4 cardinal directions or no direction
DogSoundPlayer class responsible for managing the playback of dog-related sounds.
Eel represents a non-playable character (NPC) in the maze mini-game.
The game screen for winning the game.
Makes a new screen when the snake game is over.
Generalised animation controller for enemies.
Factory to create non-playable character (NPC) entities with predefined components.
Screen that handles the display of an enemy transition cutscene.
When this entity touches a valid enemy's hitbox, deal damage to them and apply a knockback.
Core entity class.
Provides a global access point for entities to register themselves.
Send and receive events between objects.
An event listener which is notified when events occur.
An event listener with 0 arguments
An event listener with 1 argument
An event listener with 2 arguments
An event listener with 3 arguments
Enum representing possible events in the Snake mini-game, such as restarting the game or
exiting to the menu.
Component that fades out .
Wrapper for reading Java objects from JSON files.
Component for firefly visual effects.
FishEgg represents an entity in the maze mini-game that can be collected or interacted with.
Apple class manages the apple fields inherited from AbstractFood
Candy class manages the apple fields inherited from AbstractFood
Carrot class manages the apple fields inherited from AbstractFood
ChickenLeg class manages the apple fields inherited from AbstractFood
CloudCookie class manages the cloud cookies fields inherited from AbstractFood
CloudCupcake class manages the cloud cookies fields inherited from AbstractFood
CottonCloud class manages the cloud cookies fields inherited from AbstractFood
FriedFish class manages the fried fish fields inherited from AbstractFood
Meat class manages the apple fields inherited from AbstractFood
Milk class manages the milk fields inherited from AbstractFood
Shrimp class manages the shrimp fields inherited from AbstractFood
Sushi class manages the caviar fields inherited from AbstractFood
Forest area for the demo game with trees, a player, and some enemies.
Config class containing all information related to the forest game area.
This class listens to events relevant to a friendlyNPCs entity's state and plays the animation when one
of the events is triggered.
Represents an area in the game, such as a level, indoor area, etc.
Displays the player icon and a larger minimap frame based on the player's image corresponding to its kingdom.
This class listens to events relevant to the Main Menu Screen and does something when one of the
events is triggered.
A UI component for displaying the Game Over win screen.
The game screen for losing the game.
A data struct that contains other data structs to be saved to JSONs by SaveHandler.
Controls the game time
Entry point of the non-platform-specific game logic.
types of screens
GreenJellyfish represents a non-playable character (NPC) in the maze minigame.
Represents a grid composed of GridCells.
Represents a single cell on the grid.
Contains additional utility constants and functions for common GridPoint2 operations.
Renders the grid for the Snake mini-game.
Represents a task for a Griffin entity that manages its movement towards a target
and allows it to shoot gusts of wind at the target.
The GuardMove class represents a move where the attacker guards, reducing damage from incoming attacks.
The
HealingPotion
class represents a specific type of potion that heals a player or game entity.HelpWindow manages the display of the help screen with multiple slides
and handles navigation between the slides.
Physics comp
This class listens to events relevant to a chicken entity's state and plays the animation when one
of the events is triggered.
Task for a Hive entity to periodically spawn bees after a specified waiting period.
A Priority task which listens to stun events and forces the AI to sleep for a duration
Manages the in-game time, which can be paused and resumed independently
of the global game time.
An InputComponent that supports keyboard and touch input and touch gestures.
Generic class to wrap an InputProcessor so that it acts like an InputComponent.
InputFactory creates inputType-specific inputFactories which can handle various types of input.
Input device types
Provides a global access point for handling user input and creating input handlers.
The Inventory class manages a collection of items, allowing for storage, retrieval, and
manipulation.
Data class to store the player's inventory separately from the display components.
Abstract class for displaying an inventory.
Represents player's inventory.
A factory class for creating various item entities in the game.
The ItemMove class represents a increase stat move where the entity takes a moment to increase or restore one of
their stats (health, hunger, defense, strength)
A task that monitors when the proximity of a player to an item and handles item pick-up interactions.
Represents the context containing inputs for using an item.
Jellyfish represents a non-playable character (NPC) in the maze minigame.
A job system provides a general-purpose way to run multi-threaded code.
A task that allows an entity to wait for a set time and then spawn a small kangaroo joey entity near the owner.
CLass for keyboard inputs for birdie dash
Input handler for combat for keyboard and touch (mouse) input.
KeyboardInputFactory creates input handlers that process keyboard and touch support.
Input handler for the snake mini-game.
Input handler for the player for keyboard and touch (mouse) input.
Input handler for the snake mini-game.
Input handler for the debug terminal for keyboard and touch (mouse) input.
A task that allows an entity to chase the player and fire projectiles at the player when within range.
Provides a global access point to the lighting engine.
Some helpful utils to work with colors and lighting.
A UI component for displaying the loading screen with a moon representing the loading progress.
The game screen containing the settings.
A custom button class that extends
ImageButton
.This class represents the login and registration display for the game.
Factory class responsible for creating different types of loot boxes based on a JSON configuration file.
LootBoxOverlayComponent is responsible for displaying a UI overlay that shows items
received from a loot box on the player's screen.
LootItemConfig is a configuration class representing a specific loot item, including its class type,
weight, constructor parameters, and how to instantiate it.
This class listens to events relevant to the Main Game Screen and does something when one of the
events is triggered.
Displays a button to exit the Main Game screen to the Main Menu screen.
The game screen containing the main game.
This class listens to events relevant to the Main Menu Screen and does something when one of the
events is triggered.
A UI component for displaying the Main menu.
The game screen containing the main menu.
Map types
Component responsible for displaying and handling the game map when the player presses 'M'.
Represents a maze on a 2d grid.
Chases a target entity until they get too far away or line of sight is lost.
Component used to store information related to combat such as health, attack, etc.
This class increases the Maze difficulty as the player gets closer to a high score
MazeEntity is an abstract base class for all non-playable character (NPC) entities
in the maze minigame.
This class listens to events relevant to a maze entity's state and plays the animation when one
of the events is triggered.
Defines a basic set of properties stored in entities config files to be loaded by Entity Factories.
Forest area for the demo game with trees, a player, and some enemies.
Displays the name of the mini-game maze game area.
A class to manage the maze mini-game most notably the score.
Class for Underwater Maze Mini-Game Screen
Move to a given position, finishing when you get close enough.
Some utility functions to help with movement tasks in the maze.
Defines all NPC configs to be loaded by the NPC Factory.
Factory to create non-playable character (NPC) entities with predefined components.
Factory to create obstacle entities.
This class listens to events relevant to a maze entity's state and plays the animation when one
of the events is triggered.
Move to a given position, finishing when you get close enough.
Useful utility functions for physics in the maze mini-game.
MazePlayer represents the player entity in the maze mini-game.
Action component for interacting with the player.
Defines the properties stored in player config files to be loaded by the Player Factory.
Factory to create a player entity.
Class to show the score and medal thresholds on the game screen
A UI component for displaying player stats, e.g.
Factory for creating game terrain for the maze mini-game.
When this entity touches a valid enemy's hitbox, deal damage to them and apply a knockback.
Class to hold all medal constants for all Mini-games.
Represents the leaderboard display for mini-games in the game.
Enum to represent the medal scoring system
CLass for the MiniGame Menu Screen.
An enum to define each mini-game
Class to help render minigame things for snake and birdie dash.
The MiniMapDisplay class is a UI component responsible for displaying a minimap
on the screen.
An actor representing the moon, which fills up as the loading progresses.
A movement controller moves something to a given a target.
Move to a given position, finishing when you get close enough.
Defines all NPC configs to be loaded by the NPC Factory.
Factory to create non-playable character (NPC) entities with predefined components.
Class for the NPC stun affect
Factory to create obstacle entities.
Config class containing tile information related to the game area.
AnglerFish represents a non-playable character (NPC) in the maze mini-game.
This class listens to events relevant to a frog entity's state and plays the animation when one
of the events is triggered.
Represents a general overlay in the game that manages a collection of entities.
Enumeration of different types of overlays.
This class adds a particle effect to track an NPC in the game e.g.
Renders a particle effect and frees it when completed.
Provides a global access point to create particle effects.
Enum of the different types of particle effects that can be played.
Chases a target entity until they get too far away or line of sight is lost.
Settings menu display and logic.
Represents an overlay that is displayed when the game is paused.
Pauses near a target entity until they move too far away or out of sight.
Displays performance stats about the game for debugging purposes.
Lets an entity be controlled by physics.
Box2D collision events fire globally on the physics world, not per-object.
Process game physics using the Box2D library.
Movement controller for a physics-based entity.
Provides a global access point to the physics engine.
Class for the pipes in birdie dash mini-game
Pipe render for birdie dash mini-game
This class listens to events relevant to a monkey entity's state and plays the animation when one
of the events is triggered.
Defines the properties stored in player config files to be loaded by the Player Factory.
Factory to create a player entity.
Class for the Octopus Ink affect on player.
PlayerInventoryDisplay extends InventoryDisplay and adds features like hotbar and drag-and-drop functionality.
A UI component for displaying player stats, such as health, hunger, and experience.
Class for the NPC stun affect
The PlayFab class handles user registration, login, and leaderboard management via
PlayFab's client API.
A class used to return the result of a user action (registration/login).
A helper class for displaying popup dialogs.
Manages the cutscene for Enemy and Boss NPCs displayed before transitioning to the combat screen.
A priority task is a task that also has a priority.
A component that allows an entity to attack other entities upon collision, dealing damage and applying knockback.
Factory to create non-playable projectile entities with predefined components.
Chases a target entity until they get too far away or line of sight is lost
Component class for spawning enemies when the player gets within a certain proximity.
An abstract task that monitors the proximity of a specified target entity.
Wander around by moving a random position within a range of the starting position.
A basic Quest class that stores quest and subtask progression (# of
subtasks completed), descriptions and hints.
A builder class for the quest, wrapping the private constructor.
A public class that represents the settings menu display and logic for managing and showing quests onto the screen.
Manages, tracks and updates the quests within the game.
Represents an overlay that displays quest-related information.
A popup UI that displays a popup message when a quest is completed.
Record data structure representing a quick-time event.
A screen dedicated to practicing quick-time events
used in main-game combat
Stores information about a raycast hit.
Can be rendered onto the screen given a Sprite batch.
A generic component for rendering an entity.
Core rendering system for the game.
Globally accessible service for registering renderable components.
Service for loading resources, e.g.
Task for enemy entity to run away from the target entity until
they get too far away or line of sight is lost
Wrapper for FileLoader that has default interactions with various data structs.
UI component for displaying the scoreboard for mini-game Snake and BirdieDash
Manages score and medal display with dynamic scaling based on screen size.
A container class that stores all of the services for a screen.
A simplified implementation of the Service Locator pattern:
https://martinfowler.com/articles/injection.html#UsingAServiceLocator
Settings menu display and logic.
Represents the settings overlay displayed in the game.
A task that allows an entity to wait for a set time and then shoot a projectile at a target.
Cast a ray against all colliders that match the layermask.
The SleepMove class represents a defensive move where the entity takes a rest, restoring a percentage of
both hunger and health.
Slide displaying Combat instructions.
Slide displaying Minigames information.
Slide displaying Stats information.
Slide displaying Storyline information.
Represents the snake in the Snake mini-game, managing its position, movement, and growth.
Record that represents a segment of the snake's body
Manages the logic and state of the Snake mini-game, including snake movement, scoring, and
game-over conditions.
Renders all elements of the Snake mini-game, including the grid, apple, snake, and scoreboard.
Represents a specialised grid for the Snake game.
Renders the snake and its segments on the grid in the Snake mini-game.
Represents the screen for the Snake game.
A map sorted by the value of key with O(1) iteration.
A task that spawns an entity at a specified position after a certain duration.
The SpecialAirMove class represents Air boss's special combat move, which inflicts debuffs
on the player and buffs Air boss's own stats.
The SpecialKangaMove class represents Kanga's special combat move, which inflicts debuffs
on the player and buffs Kanga's own stats.
The SpecialMove class defines an abstract base for all special combat moves in the game.
Wander around by moving a random position within a range of the starting position.
The SpecialWaterMove class represents Water boss's special combat move, which inflicts debuffs
on the player and buffs Water boss's own stats.
Class for the spikes in the birdie dash game
Render for the spikes in the birdie dash mini-game
A simple class to hold values for stats to be tracked through the game.
Define types for end game stats
Display detailed stats after defeating the final boss of the game.
Class to store Stats and listen for events to update them.
A status effect that can be applied to an entity.
Component that allows status effects to be applied to an entity and trigger effects for a
limited or unlimited amount of time.
A task for an entity to "steal" items, represented by dynamically placed entities in the game world.
This class listens to events relevant to the Main Menu Screen and handles transitions between story screens.
Holds story dialogue for different stories like Dog, Croc, and Bird.
A UI component for displaying the story screen.
The game screen for the introduction story.
Apply a custom toString() for a class without overriding the class, using a decorator.
A custom tab button class that extends
ImageButton
and provides additional
functionality to display a label with a customizable background.An AI task can be started and stopped at any time.
Handles the tasks for each quest
State tracker for a debug terminal.
A ui component for displaying the debug terminal.
A chunk of terrain in the game world.
Render a tiled terrain for a given tiled map and orientation.
Factory for creating game terrains.
TerrainResource class to store all possible tiles and their edge tiles.
Custom terrain tile implementation for tiled map terrain that stores additional properties we
may want to have in the game, such as audio, walking speed, traversability by AI, etc.
Render a static texture.
Tile class to store tile data.
Displays the current in-game time on the screen with a toggle between 24-hour and 12-hour format.
The
AbstractPotion
class serves as abstract base class for all-potion types items in the game
A potion is a type of consumable item that can apply one or more effects to a player's animalWhen this entity touches a valid enemy's hitbox, deal damage to them and apply a knockback.
Input handler for combat for keyboard and touch (mouse) input.
Input handler for the player for keyboard and touch (mouse) input.
Input handler for the debug terminal for keyboard and touch (mouse) input.
Turtle represents a non-playable character (NPC) in the maze minigame.
A component that let's turtles carry around an object on their backs.
A generic component for rendering onto the ui.
Reading, Writing, and applying user settings in the game.
Reading, Writing, and applying user settings in the game.
Stores chosen display settings.
Stores chosen display settings.
Stores game settings, can be serialised/deserialised.
Stores game settings, can be serialised/deserialised.
Contains additional utility constants and functions for common Vector2 operations.
Task that does nothing other than waiting for a given time.
A Priority task which listens to stun events and forces the ai to sleep for a duration
Wander around by moving a random position within a range of the starting position.
This class is responsible for managing the playback of water-animal-related sounds,
specifically focusing on swimming sounds.
This class listens to events relevant to the Water Spiral projectile's movement and plays the
corresponding animation when the event is triggered.
This class listens to events relevant to the Wind Gust projectile's movement and plays the
corresponding animation when the event is triggered.