31#include <libcockatrice/protocol/pb/event_leave.pb.h>
32#include <libcockatrice/protocol/pb/response.pb.h>
33#include <libcockatrice/protocol/pb/serverinfo_game.pb.h>
36class GameEventContainer;
44class Event_GameStateChanged;
97 const QString &_description,
98 const QString &_password,
100 const QList<int> &_gameTypes,
102 bool _onlyRegistered,
103 bool _spectatorsAllowed,
104 bool _spectatorsNeedPassword,
105 bool _spectatorsCanTalk,
106 bool _spectatorsSeeEverything,
107 int _startingLifeTotal,
108 bool _shareDecklistsOnLoad,
115 void getInfo(ServerInfo_Game &result)
const;
130 QMap<int, Server_AbstractPlayer *>
getPlayers()
const;
176 Response::ResponseCode
177 checkJoin(ServerInfo_User *user,
const QString &_password,
bool spectator,
bool overrideRestrictions,
bool asJudge);
183 bool broadcastUpdate =
true);
215 prepareGameEvent(const ::google::protobuf::Message &gameEvent,
int playerId, GameEventContext *context = 0);
222 int privatePlayerId = -1);
@ SendToPrivate
Definition server_response_containers.h:22
@ SendToOthers
Definition server_response_containers.h:23
Definition server_response_containers.h:46
Definition server_response_containers.h:89
Definition server_abstract_participant.h:57
Definition server_abstract_player.h:19
Definition server_abstractuserinterface.h:20
int getActivePlayer() const
Definition server_game.h:190
QList< int > gameTypes
Definition server_game.h:63
void sendGameStateToPlayers()
Definition server_game.cpp:285
void stopGameIfFinished()
Definition server_game.cpp:398
int startTimeOfThisGame
Definition server_game.h:73
bool gameClosed
Definition server_game.h:58
void removeArrows(int newPhase, bool force=false)
Definition server_game.cpp:705
void gameInfoChanged(ServerInfo_Game gameInfo)
bool getSpectatorsNeedPassword() const
Definition server_game.h:156
QTimer * pingClock
Definition server_game.h:77
void storeGameInformation()
Definition server_game.cpp:136
ServerInfo_User * creatorInfo
Definition server_game.h:54
bool firstGameStarted
Definition server_game.h:74
int maxPlayers
Definition server_game.h:62
bool gameStarted
Definition server_game.h:57
bool onlyRegistered
Definition server_game.h:65
void startGameIfReady(bool forceStartGame)
Definition server_game.cpp:393
std::atomic< qint64 > nextArrowId
Definition server_game.h:52
void sendGameEventContainer(GameEventContainer *cont, GameEventStorageItem::EventRecipients recipients=GameEventStorageItem::SendToPrivate|GameEventStorageItem::SendToOthers, int privatePlayerId=-1)
Definition server_game.cpp:789
GameEventContainer * prepareGameEvent(const ::google::protobuf::Message &gameEvent, int playerId, GameEventContext *context=0)
Definition server_game.cpp:814
int getSpectatorCount() const
Definition server_game.cpp:253
bool containsUser(const QString &userName) const
Definition server_game.cpp:477
bool getSpectatorsSeeEverything() const
Definition server_game.h:164
void setActivePhase(int newPhase)
Definition server_game.cpp:688
QMap< int, Server_AbstractParticipant * > participants
Definition server_game.h:55
void nextTurn()
Definition server_game.cpp:722
QDateTime startTime
Definition server_game.h:76
QList< GameReplay * > replayList
Definition server_game.h:78
bool turnOrderReversed
Definition server_game.h:75
bool getShareDecklistsOnLoad() const
Definition server_game.h:172
const QMap< int, Server_AbstractParticipant * > & getParticipants() const
Definition server_game.h:132
QMap< int, Server_AbstractPlayer * > getPlayers() const
Definition server_game.cpp:225
bool spectatorsSeeEverything
Definition server_game.h:69
int startingLifeTotal
Definition server_game.h:70
Response::ResponseCode checkJoin(ServerInfo_User *user, const QString &_password, bool spectator, bool overrideRestrictions, bool asJudge)
Definition server_game.cpp:431
void getInfo(ServerInfo_Game &result) const
Definition server_game.cpp:831
void removeArrowsRelatedToPlayer(GameEventStorage &ges, Server_AbstractPlayer *player)
Definition server_game.cpp:598
~Server_Game() override
Definition server_game.cpp:96
bool onlyBuddies
Definition server_game.h:65
Server_Room * room
Definition server_game.h:50
bool getSpectatorsCanTalk() const
Definition server_game.h:160
Server_Game(const ServerInfo_User &_creatorInfo, int _gameId, const QString &_description, const QString &_password, int _maxPlayers, const QList< int > &_gameTypes, bool _onlyBuddies, bool _onlyRegistered, bool _spectatorsAllowed, bool _spectatorsNeedPassword, bool _spectatorsCanTalk, bool _spectatorsSeeEverything, int _startingLifeTotal, bool _shareDecklistsOnLoad, Server_Room *parent)
Definition server_game.cpp:56
QString description
Definition server_game.h:60
int secondsElapsed
Definition server_game.h:73
QSet< QString > allSpectatorsEver
Definition server_game.h:56
bool shareDecklistsOnLoad
Definition server_game.h:71
bool kickParticipant(int playerId)
Definition server_game.cpp:655
bool getSpectatorsAllowed() const
Definition server_game.h:152
bool spectatorsAllowed
Definition server_game.h:66
void removeParticipant(Server_AbstractParticipant *participant, Event_Leave::LeaveReason reason)
Definition server_game.cpp:545
bool spectatorsNeedPassword
Definition server_game.h:67
QRecursiveMutex gameMutex
Definition server_game.h:94
void sigStartGameIfReady(bool override)
Server_AbstractPlayer * getPlayer(int id) const
Definition server_game.cpp:238
QString password
Definition server_game.h:61
int getSecondsElapsed() const
Definition server_game.h:203
ServerInfo_User * getCreatorInfo() const
Definition server_game.h:120
int activePhase
Definition server_game.h:64
Server_Room * getRoom() const
Definition server_game.h:111
int getPlayerCount() const
Definition server_game.cpp:248
int getStartingLifeTotal() const
Definition server_game.h:168
void setActivePlayer(int newPlayer)
Definition server_game.cpp:673
void doStartGameIfReady(bool forceStartGame=false)
Definition server_game.cpp:323
int getActivePhase() const
Definition server_game.h:194
bool spectatorsCanTalk
Definition server_game.h:68
GameEventContext prepareGameEventContext(const ::google::protobuf::Message &gameEventContext)
bool getGameStarted() const
Definition server_game.h:124
void returnCardsFromPlayer(GameEventStorage &ges, Server_AbstractPlayer *player)
Definition server_game.cpp:862
int nextPlayerId
Definition server_game.h:51
qint64 generateArrowId()
Definition server_game.cpp:700
void createGameJoinedEvent(Server_AbstractParticipant *participant, ResponseContainer &rc, bool resuming)
Definition server_game.cpp:754
int hostId
Definition server_game.h:53
QString getDescription() const
Definition server_game.h:140
int gameId
Definition server_game.h:59
void addPlayer(Server_AbstractUserInterface *userInterface, ResponseContainer &rc, bool spectator, bool judge, bool broadcastUpdate=true)
Definition server_game.cpp:489
QSet< QString > allPlayersEver
Definition server_game.h:56
int getGameId() const
Definition server_game.h:136
void pingClockTimeout()
Definition server_game.cpp:183
int activePlayer
Definition server_game.h:64
void createGameStateChangedEvent(Event_GameStateChanged *event, Server_AbstractParticipant *recipient, bool omniscient, bool withUserInfo)
Definition server_game.cpp:266
bool reverseTurnOrder()
Definition server_game.h:207
GameReplay * currentReplay
Definition server_game.h:79
int inactivityCounter
Definition server_game.h:72
int getMaxPlayers() const
Definition server_game.h:148
int getHostId() const
Definition server_game.h:116
void unattachCards(GameEventStorage &ges, Server_AbstractPlayer *player)
Definition server_game.cpp:633
QString getPassword() const
Definition server_game.h:144
Definition server_room.h:27