forked from University/epr24pr42-ojanssen2
54 lines
1.3 KiB
C++
54 lines
1.3 KiB
C++
#include "Environment/Maze.h"
|
|
#include "Player.h"
|
|
#include "GameState.h"
|
|
#include "Entity.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() const;
|
|
|
|
/// Starte das Spiel
|
|
void run_game();
|
|
|
|
/// Kriege den aktuellen Status des Spiels
|
|
/// @returns Den aktuellen Status
|
|
GameState get_state() const;
|
|
|
|
/// Krontroliere ob ein Geist sich an einer Position befindet
|
|
/// @param position Die Position
|
|
/// @returns Ob sich dort ein Geist aufhält
|
|
bool is_enemy_at_pos(const Vector2d& position) const ;
|
|
};
|
|
} // game
|
|
|
|
#endif //GAME_H
|