epr24pr42-ojanssen2/src/Environment/Game.h

47 lines
1.1 KiB
C
Raw Normal View History

#include "Maze.h"
#include "../Entities/Player.h"
#include "../Util/GameState.h"
#ifndef GAME_H
#define GAME_H
namespace game
{
/// Eine Instanz des Spiels
class Game
{
private:
/// Das Labyrinth
Maze maze;
/// Der Spieler
Player player;
/// Die Gegner des Spieles
vector<Entity> enemies;
/// Der Status des Spiels
GameState state;
///
bool infomode_enabled;
public:
explicit Game(Maze& maze);
/// Bearbeite die Eingabe des Spielers
/// @param input Die Eingabe des Nutzers
/// @return Der Bewegungsvektor, um den sich den Spieler bewegen möchte
/// @throws UnkownAction Wenn die Eingabe des Spielers unbekannt ist
void handle_user_input(const char& input);
/// Kontrolliere, ob das Spiel beendet werden sollte
bool should_end_game();
/// Starte das Spiel
void run_game();
/// Kriege den aktuellen Status des Spiels
/// @returns Den aktuellen Status
GameState get_state();
};
} // game
#endif //GAME_H