33#include <QScopedPointer>
36#include <libcockatrice/protocol/pb/event_leave.pb.h>
37#include <libcockatrice/protocol/pb/response.pb.h>
38#include <libcockatrice/protocol/pb/serverinfo_game.pb.h>
127 QMap<int, Server_AbstractPlayer *>
getPlayers()
const;
174 checkJoin(
ServerInfo_User *user,
const QString &_password,
bool spectator,
bool overrideRestrictions,
bool asJudge);
180 bool broadcastUpdate =
true);
219 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:58
Definition server_abstract_player.h:19
Definition server_abstractuserinterface.h:20
Strategy for validating a player's deck before it is loaded into a game.
Definition server_deck_validation_strategy.h:18
Strategy hook invoked around a game's lifecycle transitions.
Definition server_game_lifecycle_strategy.h:13
int getActivePlayer() const
Definition server_game.h:187
QList< int > gameTypes
Definition server_game.h:68
void sendGameStateToPlayers()
Definition server_game.cpp:273
void stopGameIfFinished()
Definition server_game.cpp:391
int startTimeOfThisGame
Definition server_game.h:78
bool gameClosed
Definition server_game.h:63
void removeArrows(int newPhase, bool force=false)
Definition server_game.cpp:704
void gameInfoChanged(ServerInfo_Game gameInfo)
bool getSpectatorsNeedPassword() const
Definition server_game.h:153
QTimer * pingClock
Definition server_game.h:82
void storeGameInformation()
Definition server_game.cpp:124
ServerInfo_User * creatorInfo
Definition server_game.h:59
bool firstGameStarted
Definition server_game.h:79
int maxPlayers
Definition server_game.h:67
bool gameStarted
Definition server_game.h:62
bool onlyRegistered
Definition server_game.h:70
void startGameIfReady(bool forceStartGame)
Definition server_game.cpp:386
std::atomic< qint64 > nextArrowId
Definition server_game.h:57
void sendGameEventContainer(GameEventContainer *cont, GameEventStorageItem::EventRecipients recipients=GameEventStorageItem::SendToPrivate|GameEventStorageItem::SendToOthers, int privatePlayerId=-1)
Definition server_game.cpp:788
GameEventContainer * prepareGameEvent(const ::google::protobuf::Message &gameEvent, int playerId, GameEventContext *context=0)
Definition server_game.cpp:813
int getSpectatorCount() const
Definition server_game.cpp:241
bool containsUser(const QString &userName) const
Definition server_game.cpp:482
bool getSpectatorsSeeEverything() const
Definition server_game.h:161
void setActivePhase(int newPhase)
Definition server_game.cpp:687
QMap< int, Server_AbstractParticipant * > participants
Definition server_game.h:60
void nextTurn()
Definition server_game.cpp:721
QDateTime startTime
Definition server_game.h:81
QList< GameReplay * > replayList
Definition server_game.h:83
bool turnOrderReversed
Definition server_game.h:80
bool getShareDecklistsOnLoad() const
Definition server_game.h:169
const QMap< int, Server_AbstractParticipant * > & getParticipants() const
Definition server_game.h:129
QMap< int, Server_AbstractPlayer * > getPlayers() const
Definition server_game.cpp:213
bool spectatorsSeeEverything
Definition server_game.h:74
int startingLifeTotal
Definition server_game.h:75
Response::ResponseCode checkJoin(ServerInfo_User *user, const QString &_password, bool spectator, bool overrideRestrictions, bool asJudge)
Definition server_game.cpp:436
void getInfo(ServerInfo_Game &result) const
Definition server_game.cpp:830
Server_GameLifecycleStrategy * getLifecycleStrategy() const
Get the current game lifecycle strategy (non-owning).
Definition server_game.h:231
void removeArrowsRelatedToPlayer(GameEventStorage &ges, Server_AbstractPlayer *player)
Definition server_game.cpp:597
~Server_Game() override
Definition server_game.cpp:84
QScopedPointer< Server_GameLifecycleStrategy > lifecycleStrategy
Definition server_game.h:88
bool onlyBuddies
Definition server_game.h:70
Server_Room * room
Definition server_game.h:55
bool getSpectatorsCanTalk() const
Definition server_game.h:157
QString description
Definition server_game.h:65
int secondsElapsed
Definition server_game.h:78
QSet< QString > allSpectatorsEver
Definition server_game.h:61
bool shareDecklistsOnLoad
Definition server_game.h:76
bool kickParticipant(int playerId)
Definition server_game.cpp:654
bool getSpectatorsAllowed() const
Definition server_game.h:149
bool spectatorsAllowed
Definition server_game.h:71
void removeParticipant(Server_AbstractParticipant *participant, Event_Leave::LeaveReason reason)
Definition server_game.cpp:547
bool spectatorsNeedPassword
Definition server_game.h:72
QRecursiveMutex gameMutex
Definition server_game.h:105
void sigStartGameIfReady(bool override)
Server_AbstractPlayer * getPlayer(int id) const
Definition server_game.cpp:226
QString password
Definition server_game.h:66
int getSecondsElapsed() const
Definition server_game.h:200
ServerInfo_User * getCreatorInfo() const
Definition server_game.h:117
int activePhase
Definition server_game.h:69
Server_Room * getRoom() const
Definition server_game.h:108
int getPlayerCount() const
Definition server_game.cpp:236
int getStartingLifeTotal() const
Definition server_game.h:165
void setActivePlayer(int newPlayer)
Definition server_game.cpp:672
void doStartGameIfReady(bool forceStartGame=false)
Definition server_game.cpp:311
int getActivePhase() const
Definition server_game.h:191
bool spectatorsCanTalk
Definition server_game.h:73
GameEventContext prepareGameEventContext(const ::google::protobuf::Message &gameEventContext)
bool getGameStarted() const
Definition server_game.h:121
Server_Game(const GameConfig &config, Server_Room *parent)
Definition server_game.cpp:56
Server_DeckValidationStrategy * getDeckValidationStrategy() const
Get the current deck validation strategy (non-owning).
Definition server_game.h:223
void returnCardsFromPlayer(GameEventStorage &ges, Server_AbstractPlayer *player)
Definition server_game.cpp:867
int nextPlayerId
Definition server_game.h:56
qint64 generateArrowId()
Definition server_game.cpp:699
void createGameJoinedEvent(Server_AbstractParticipant *participant, ResponseContainer &rc, bool resuming)
Definition server_game.cpp:753
QScopedPointer< Server_DeckValidationStrategy > deckValidationStrategy
Definition server_game.h:86
QScopedPointer< Server_MatchResultStrategy > matchResultStrategy
Definition server_game.h:90
int hostId
Definition server_game.h:58
QString getDescription() const
Definition server_game.h:137
int gameId
Definition server_game.h:64
void addPlayer(Server_AbstractUserInterface *userInterface, ResponseContainer &rc, bool spectator, bool judge, bool broadcastUpdate=true)
Definition server_game.cpp:494
QSet< QString > allPlayersEver
Definition server_game.h:61
int getGameId() const
Definition server_game.h:133
void pingClockTimeout()
Definition server_game.cpp:171
int activePlayer
Definition server_game.h:69
void createGameStateChangedEvent(Event_GameStateChanged *event, Server_AbstractParticipant *recipient, bool omniscient, bool withUserInfo)
Definition server_game.cpp:254
bool reverseTurnOrder()
Definition server_game.h:204
GameReplay * currentReplay
Definition server_game.h:84
int inactivityCounter
Definition server_game.h:77
int getMaxPlayers() const
Definition server_game.h:145
int getHostId() const
Definition server_game.h:113
void unattachCards(GameEventStorage &ges, Server_AbstractPlayer *player)
Definition server_game.cpp:632
QString getPassword() const
Definition server_game.h:141
void setDeckValidationStrategy(Server_DeckValidationStrategy *strategy)
Replace the deck validation strategy; takes ownership of strategy.
Definition server_game.cpp:910
Definition server_room.h:27
Definition event_game_state_changed.proto:8
LeaveReason
Definition event_leave.proto:7
Definition game_config.h:9
Definition game_event_container.proto:4
Definition game_event_context.proto:2
Definition game_replay.proto:4
ResponseCode
Definition response.proto:14
Definition serverinfo_game.proto:5
Definition serverinfo_user.proto:2