Eile Mit Weile
Loading...
Searching...
No Matches
GameInstance.hpp
1#ifndef EILE_MIT_WEILE_GAME_INSTANCE_HPP
2#define EILE_MIT_WEILE_GAME_INSTANCE_HPP
3
4#include <vector>
5#include <string>
6#include <mutex>
7
9#include "common/network/responses/FullStateResponse.hpp"
10#include "ServerGameState.hpp"
11#include "ServerNetworkManager.hpp"
12
23
24private:
27 inline static std::mutex modification_lock;
29public:
30 GameInstance();
32 std::string GetId();
36 bool IsFull();
37 bool IsStarted();
38 bool IsFinished();
40 // game update functions
41 bool TryAddPlayer(Player* new_player, std::string& err);
44 bool TryRemovePlayer(Player* player, std::string& err);
47 bool StartGame(Player* player, std::string& err);
50 bool ThrowDice(Player* player, std::string& err);
53 bool MoveFigure(Player* player, unsigned figure_id, unsigned space_id, std::string& err);
56 bool SkipTurn(Player* player, std::string& err);
59};
60
61
62#endif //EILE_MIT_WEILE_GAME_INSTANCE_HPP
Contains ServerGameState and can modify it.
Definition GameInstance.hpp:22
static std::mutex modification_lock
Definition GameInstance.hpp:27
bool StartGame(Player *player, std::string &err)
Definition GameInstance.cpp:64
bool IsFinished()
Definition GameInstance.cpp:32
bool MoveFigure(Player *player, unsigned figure_id, unsigned space_id, std::string &err)
Definition GameInstance.cpp:76
bool TryRemovePlayer(Player *player, std::string &err)
Definition GameInstance.cpp:50
GameInstance()
Definition GameInstance.cpp:3
bool IsPlayerAllowedToPlay(Player *player)
Definition GameInstance.cpp:20
bool ThrowDice(Player *player, std::string &err)
Definition GameInstance.cpp:103
bool IsFull()
Definition GameInstance.cpp:24
~GameInstance()
Definition GameInstance.cpp:7
bool TryAddPlayer(Player *new_player, std::string &err)
Definition GameInstance.cpp:36
bool SkipTurn(Player *player, std::string &err)
Definition GameInstance.cpp:90
bool IsStarted()
Definition GameInstance.cpp:28
std::string GetId()
Definition GameInstance.cpp:16
ServerGameState * GetGameState()
Definition GameInstance.cpp:12
ServerGameState * game_state
Definition GameInstance.hpp:25
Holds all relevant information of a player.
Definition Player.hpp:27
A serializable value, used for writing values into json.
Definition serializable_value.hpp:28
Extra functionality for server-side GameState.
Definition ServerGameState.hpp:7