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;
93#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
100 const QString &_description,
101 const QString &_password,
103 const QList<int> &_gameTypes,
105 bool _onlyRegistered,
106 bool _spectatorsAllowed,
107 bool _spectatorsNeedPassword,
108 bool _spectatorsCanTalk,
109 bool _spectatorsSeeEverything,
110 int _startingLifeTotal,
111 bool _shareDecklistsOnLoad,
118 void getInfo(ServerInfo_Game &result)
const;
133 QMap<int, Server_AbstractPlayer *>
getPlayers()
const;
179 Response::ResponseCode
180 checkJoin(ServerInfo_User *user,
const QString &_password,
bool spectator,
bool overrideRestrictions,
bool asJudge);
186 bool broadcastUpdate =
true);
217 prepareGameEvent(const ::google::protobuf::Message &gameEvent,
int playerId, GameEventContext *context = 0);
224 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:193
QList< int > gameTypes
Definition server_game.h:62
void sendGameStateToPlayers()
Definition server_game.cpp:281
void stopGameIfFinished()
Definition server_game.cpp:393
int startTimeOfThisGame
Definition server_game.h:72
bool gameClosed
Definition server_game.h:57
void removeArrows(int newPhase, bool force=false)
Definition server_game.cpp:678
void gameInfoChanged(ServerInfo_Game gameInfo)
bool getSpectatorsNeedPassword() const
Definition server_game.h:159
QTimer * pingClock
Definition server_game.h:76
void storeGameInformation()
Definition server_game.cpp:137
ServerInfo_User * creatorInfo
Definition server_game.h:53
bool firstGameStarted
Definition server_game.h:73
int maxPlayers
Definition server_game.h:61
bool gameStarted
Definition server_game.h:56
bool onlyRegistered
Definition server_game.h:64
void startGameIfReady(bool forceStartGame)
Definition server_game.cpp:388
void sendGameEventContainer(GameEventContainer *cont, GameEventStorageItem::EventRecipients recipients=GameEventStorageItem::SendToPrivate|GameEventStorageItem::SendToOthers, int privatePlayerId=-1)
Definition server_game.cpp:762
GameEventContainer * prepareGameEvent(const ::google::protobuf::Message &gameEvent, int playerId, GameEventContext *context=0)
Definition server_game.cpp:787
int getSpectatorCount() const
Definition server_game.cpp:251
bool containsUser(const QString &userName) const
Definition server_game.cpp:462
bool getSpectatorsSeeEverything() const
Definition server_game.h:167
void setActivePhase(int newPhase)
Definition server_game.cpp:666
QMap< int, Server_AbstractParticipant * > participants
Definition server_game.h:54
void nextTurn()
Definition server_game.cpp:695
QDateTime startTime
Definition server_game.h:75
QList< GameReplay * > replayList
Definition server_game.h:77
bool turnOrderReversed
Definition server_game.h:74
bool getShareDecklistsOnLoad() const
Definition server_game.h:175
const QMap< int, Server_AbstractParticipant * > & getParticipants() const
Definition server_game.h:135
QMap< int, Server_AbstractPlayer * > getPlayers() const
Definition server_game.cpp:223
bool spectatorsSeeEverything
Definition server_game.h:68
int startingLifeTotal
Definition server_game.h:69
Response::ResponseCode checkJoin(ServerInfo_User *user, const QString &_password, bool spectator, bool overrideRestrictions, bool asJudge)
Definition server_game.cpp:424
void getInfo(ServerInfo_Game &result) const
Definition server_game.cpp:802
void removeArrowsRelatedToPlayer(GameEventStorage &ges, Server_AbstractPlayer *player)
Definition server_game.cpp:580
~Server_Game() override
Definition server_game.cpp:97
bool onlyBuddies
Definition server_game.h:64
Server_Room * room
Definition server_game.h:50
bool getSpectatorsCanTalk() const
Definition server_game.h:163
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:53
QString description
Definition server_game.h:59
int secondsElapsed
Definition server_game.h:72
QSet< QString > allSpectatorsEver
Definition server_game.h:55
bool shareDecklistsOnLoad
Definition server_game.h:70
bool kickParticipant(int playerId)
Definition server_game.cpp:634
bool getSpectatorsAllowed() const
Definition server_game.h:155
bool spectatorsAllowed
Definition server_game.h:65
void removeParticipant(Server_AbstractParticipant *participant, Event_Leave::LeaveReason reason)
Definition server_game.cpp:528
bool spectatorsNeedPassword
Definition server_game.h:66
QRecursiveMutex gameMutex
Definition server_game.h:94
void sigStartGameIfReady(bool override)
Server_AbstractPlayer * getPlayer(int id) const
Definition server_game.cpp:236
QString password
Definition server_game.h:60
int getSecondsElapsed() const
Definition server_game.h:205
ServerInfo_User * getCreatorInfo() const
Definition server_game.h:123
int activePhase
Definition server_game.h:63
Server_Room * getRoom() const
Definition server_game.h:114
int getPlayerCount() const
Definition server_game.cpp:246
int getStartingLifeTotal() const
Definition server_game.h:171
void setActivePlayer(int newPlayer)
Definition server_game.cpp:651
void doStartGameIfReady(bool forceStartGame=false)
Definition server_game.cpp:319
int getActivePhase() const
Definition server_game.h:197
bool spectatorsCanTalk
Definition server_game.h:67
GameEventContext prepareGameEventContext(const ::google::protobuf::Message &gameEventContext)
bool getGameStarted() const
Definition server_game.h:127
int nextPlayerId
Definition server_game.h:51
void createGameJoinedEvent(Server_AbstractParticipant *participant, ResponseContainer &rc, bool resuming)
Definition server_game.cpp:727
int hostId
Definition server_game.h:52
QString getDescription() const
Definition server_game.h:143
int gameId
Definition server_game.h:58
void addPlayer(Server_AbstractUserInterface *userInterface, ResponseContainer &rc, bool spectator, bool judge, bool broadcastUpdate=true)
Definition server_game.cpp:473
QSet< QString > allPlayersEver
Definition server_game.h:55
int getGameId() const
Definition server_game.h:139
void pingClockTimeout()
Definition server_game.cpp:182
int activePlayer
Definition server_game.h:63
void createGameStateChangedEvent(Event_GameStateChanged *event, Server_AbstractParticipant *recipient, bool omniscient, bool withUserInfo)
Definition server_game.cpp:263
bool reverseTurnOrder()
Definition server_game.h:209
GameReplay * currentReplay
Definition server_game.h:78
int inactivityCounter
Definition server_game.h:71
int getMaxPlayers() const
Definition server_game.h:151
int getHostId() const
Definition server_game.h:119
void unattachCards(GameEventStorage &ges, Server_AbstractPlayer *player)
Definition server_game.cpp:612
QString getPassword() const
Definition server_game.h:147
Definition server_room.h:27