20#ifndef SERVER_CARDZONE_H
21#define SERVER_CARDZONE_H
26#include <libcockatrice/protocol/pb/serverinfo_zone.pb.h>
40 ServerInfo_Zone::ZoneType
type;
56 ServerInfo_Zone::ZoneType _type);
59 [[nodiscard]]
const QList<Server_Card *> &
getCards()
const
80 [[nodiscard]] ServerInfo_Zone::ZoneType
getType()
const
94 [[nodiscard]]
int getFreeGridColumn(
int x,
int y,
const QString &cardName,
bool dontStackSameName)
const;
101 void shuffle(
int start = 0,
int end = -1);
Definition server_response_containers.h:46
Definition server_abstract_participant.h:57
Definition server_abstract_player.h:19
void clear()
Definition server_cardzone.cpp:304
~Server_CardZone()
Definition server_cardzone.cpp:39
bool alwaysRevealTopCard
Definition server_cardzone.h:43
Server_AbstractPlayer * player
Definition server_cardzone.h:37
bool isCardAtPosLookedAt(int pos) const
Definition server_cardzone.cpp:177
bool has_coords
Definition server_cardzone.h:39
QString name
Definition server_cardzone.h:38
const QSet< int > & getPlayersWithWritePermission() const
Definition server_cardzone.h:104
QSet< int > playersWithWritePermission
Definition server_cardzone.h:42
ServerInfo_Zone::ZoneType getType() const
Definition server_cardzone.h:80
void insertCard(Server_Card *card, int x, int y)
Definition server_cardzone.cpp:287
int removeCard(Server_Card *card)
Definition server_cardzone.cpp:125
void setAlwaysLookAtTopCard(bool _alwaysLookAtTopCard)
Definition server_cardzone.h:120
bool getAlwaysLookAtTopCard() const
Definition server_cardzone.h:116
void setAlwaysRevealTopCard(bool _alwaysRevealTopCard)
Definition server_cardzone.h:112
void shuffle(int start=0, int end=-1)
Definition server_cardzone.cpp:45
Server_Card * getCard(int id, int *position=nullptr, bool remove=false)
Definition server_cardzone.cpp:147
void getInfo(ServerInfo_Zone *info, Server_AbstractParticipant *recipient, bool omniscient)
Definition server_cardzone.cpp:321
void insertCardIntoCoordMap(Server_Card *card, int x, int y)
Definition server_cardzone.cpp:102
bool isColumnStacked(int x, int y) const
Definition server_cardzone.cpp:224
int getCardsBeingLookedAt() const
Definition server_cardzone.h:67
const QList< Server_Card * > & getCards() const
Definition server_cardzone.h:59
int cardsBeingLookedAt
Definition server_cardzone.h:41
int getFreeGridColumn(int x, int y, const QString &cardName, bool dontStackSameName) const
Definition server_cardzone.cpp:182
QMap< int, QMap< int, Server_Card * > > coordinateMap
Definition server_cardzone.h:46
QString getName() const
Definition server_cardzone.h:84
Server_AbstractPlayer * getPlayer() const
Definition server_cardzone.h:88
void addWritePermission(int playerId)
Definition server_cardzone.cpp:316
bool getAlwaysRevealTopCard() const
Definition server_cardzone.h:108
void moveCardInRow(GameEventStorage &ges, Server_Card *card, int x, int y)
Definition server_cardzone.cpp:240
void fixFreeSpaces(GameEventStorage &ges)
Definition server_cardzone.cpp:248
QMap< int, int > freeSpaceMap
Definition server_cardzone.h:48
bool alwaysLookAtTopCard
Definition server_cardzone.h:44
void setCardsBeingLookedAt(int _cardsBeingLookedAt)
Definition server_cardzone.h:71
QMap< int, QMultiMap< QString, int > > freePilesMap
Definition server_cardzone.h:47
void removeCardFromCoordMap(Server_Card *card, int oldX, int oldY)
Definition server_cardzone.cpp:75
bool hasCoords() const
Definition server_cardzone.h:76
void updateCardCoordinates(Server_Card *card, int oldX, int oldY)
Definition server_cardzone.cpp:277
Server_CardZone(Server_AbstractPlayer *_player, const QString &_name, bool _has_coords, ServerInfo_Zone::ZoneType _type)
Definition server_cardzone.cpp:30
ServerInfo_Zone::ZoneType type
Definition server_cardzone.h:40
QList< Server_Card * > cards
Definition server_cardzone.h:45
bool isColumnEmpty(int x, int y) const
Definition server_cardzone.cpp:232
Definition server_card.h:36
Definition server_game.h:47