Cockatrice 2026-06-27-Development-3.1.0-beta.3
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
server_abstract_player.h
Go to the documentation of this file.
1#ifndef ABSTRACT_PLAYER_H
2#define ABSTRACT_PLAYER_H
3
6
7#include <QMap>
8#include <QString>
9
10class CardToMove;
11class DeckList;
12class Server_Arrow;
13class Server_Card;
14class Server_CardZone;
15class Server_Counter;
16struct MoveCardStruct;
17
19{
20 Q_OBJECT
21private:
22 class MoveCardCompareFunctor;
23 QMap<int, Server_Arrow *> arrows;
24
25 void sendCreateTokenEvents(Server_CardZone *zone, Server_Card *card, int xCoord, int yCoord, GameEventStorage &ges);
26 void getPlayerProperties(ServerInfo_PlayerProperties &result) override;
27
28protected:
32 QMap<QString, Server_CardZone *> zones;
35
37
38public:
40 int _playerId,
41 const ServerInfo_User &_userInfo,
42 bool _judge,
45 void prepareDestroy() override;
46 const DeckList *getDeckList() const
47 {
48 return deck;
49 }
50 bool getReadyStart() const
51 {
52 return readyStart;
53 }
54 void setReadyStart(bool _readyStart)
55 {
56 readyStart = _readyStart;
57 }
58 bool getConceded() const
59 {
60 return conceded;
61 }
62 void setConceded(bool _conceded)
63 {
64 conceded = _conceded;
65 }
66
67 const QMap<QString, Server_CardZone *> &getZones() const
68 {
69 return zones;
70 }
71 const QMap<int, Server_Arrow *> &getArrows() const
72 {
73 return arrows;
74 }
75
76 int newCardId();
77
78 void addZone(Server_CardZone *zone);
79 void addArrow(Server_Arrow *arrow);
80 void updateArrowId(int id);
81 bool deleteArrow(int arrowId);
82
83 virtual void setupZones();
84 virtual void clearZones();
85
86 Response::ResponseCode moveCard(GameEventStorage &ges,
87 Server_CardZone *startzone,
88 const QList<const CardToMove *> &_cards,
89 Server_CardZone *targetzone,
90 int xCoord,
91 int yCoord,
92 bool fixFreeSpaces = true,
93 bool undoingDraw = false,
94 bool isReversed = false);
95
97 Server_CardZone *startzone,
98 Server_CardZone *targetzone,
99 MoveCardStruct cardStruct,
100 int xCoord,
101 int yCoord,
102 int &xIndex,
103 bool &revealTopStart,
104 bool &revealTopTarget,
105 bool isReversed,
106 bool undoingDraw);
107
108 virtual void onCardBeingMoved(GameEventStorage &ges,
109 const MoveCardStruct &cardStruct,
110 Server_CardZone *startzone,
111 Server_CardZone *targetzone,
112 bool undoingDraw);
113
114 void unattachCard(GameEventStorage &ges, Server_Card *card);
115 Response::ResponseCode setCardAttrHelper(GameEventStorage &ges,
116 int targetPlayerId,
117 const QString &zone,
118 int cardId,
119 CardAttribute attribute,
120 const QString &attrValue,
121 Server_Card *unzonedCard = nullptr);
122
123 virtual Response::ResponseCode
124 cmdConcede(const Command_Concede &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
125 virtual Response::ResponseCode
126 cmdUnconcede(const Command_Unconcede &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
127 virtual Response::ResponseCode
128 cmdReadyStart(const Command_ReadyStart &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
129 virtual Response::ResponseCode
130 cmdRollDie(const Command_RollDie &cmd, ResponseContainer &rc, GameEventStorage &ges) const override;
131 virtual Response::ResponseCode
132 cmdMoveCard(const Command_MoveCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
133 virtual Response::ResponseCode
134 cmdFlipCard(const Command_FlipCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
135 virtual Response::ResponseCode
136 cmdAttachCard(const Command_AttachCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
137 virtual Response::ResponseCode
138 cmdCreateToken(const Command_CreateToken &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
139 virtual Response::ResponseCode
140 cmdCreateArrow(const Command_CreateArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
141 virtual Response::ResponseCode
142 cmdDeleteArrow(const Command_DeleteArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
143 virtual Response::ResponseCode
144 cmdSetCardAttr(const Command_SetCardAttr &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
145 virtual Response::ResponseCode
146 cmdSetCardCounter(const Command_SetCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
147 virtual Response::ResponseCode
148 cmdIncCardCounter(const Command_IncCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
149 virtual Response::ResponseCode
150 cmdDumpZone(const Command_DumpZone &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
151 virtual Response::ResponseCode
152 cmdRevealCards(const Command_RevealCards &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
153 virtual Response::ResponseCode cmdChangeZoneProperties(const Command_ChangeZoneProperties &cmd,
155 GameEventStorage &ges) override;
156
157 virtual void getInfo(ServerInfo_Player *info,
158 Server_AbstractParticipant *playerWhosAsking,
159 bool omniscient,
160 bool withUserInfo) override;
161};
162
163#endif
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:63
Definition server_response_containers.h:46
Definition server_response_containers.h:89
Definition server_abstract_participant.h:57
Server_AbstractParticipant(Server_Game *_game, int _playerId, const ServerInfo_User &_userInfo, bool _judge, Server_AbstractUserInterface *_handler)
Definition server_abstract_participant.cpp:53
const QMap< int, Server_Arrow * > & getArrows() const
Definition server_abstract_player.h:71
void addArrow(Server_Arrow *arrow)
Definition server_abstract_player.cpp:107
Server_AbstractPlayer(Server_Game *_game, int _playerId, const ServerInfo_User &_userInfo, bool _judge, Server_AbstractUserInterface *_handler)
Definition server_abstract_player.cpp:55
virtual Response::ResponseCode cmdSetCardCounter(const Command_SetCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1315
virtual Response::ResponseCode cmdIncCardCounter(const Command_IncCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1349
int newCardId()
Definition server_abstract_player.cpp:79
void sendCreateTokenEvents(Server_CardZone *zone, Server_Card *card, int xCoord, int yCoord, GameEventStorage &ges)
Definition server_abstract_player.cpp:1173
void revealTopCardIfNeeded(Server_CardZone *zone, GameEventStorage &ges)
Definition server_abstract_player.cpp:552
virtual Response::ResponseCode cmdRevealCards(const Command_RevealCards &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1466
bool readyStart
Definition server_abstract_player.h:33
virtual Response::ResponseCode cmdDumpZone(const Command_DumpZone &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1386
virtual void setupZones()
Definition server_abstract_player.cpp:84
virtual void clearZones()
Definition server_abstract_player.cpp:89
virtual Response::ResponseCode cmdMoveCard(const Command_MoveCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:760
int nextCardId
Definition server_abstract_player.h:34
bool sideboardLocked
Definition server_abstract_player.h:31
void addZone(Server_CardZone *zone)
Definition server_abstract_player.cpp:102
QMap< int, Server_Arrow * > arrows
Definition server_abstract_player.h:23
void processMoveCard(GameEventStorage &ges, Server_CardZone *startzone, Server_CardZone *targetzone, MoveCardStruct cardStruct, int xCoord, int yCoord, int &xIndex, bool &revealTopStart, bool &revealTopTarget, bool isReversed, bool undoingDraw)
Definition server_abstract_player.cpp:347
bool conceded
Definition server_abstract_player.h:29
void unattachCard(GameEventStorage &ges, Server_Card *card)
Definition server_abstract_player.cpp:582
bool getConceded() const
Definition server_abstract_player.h:58
virtual Response::ResponseCode cmdCreateArrow(const Command_CreateArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1202
~Server_AbstractPlayer() override
virtual Response::ResponseCode cmdCreateToken(const Command_CreateToken &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:960
void updateArrowId(int id)
Definition server_abstract_player.cpp:112
DeckList * deck
Definition server_abstract_player.h:30
bool getReadyStart() const
Definition server_abstract_player.h:50
Response::ResponseCode setCardAttrHelper(GameEventStorage &ges, int targetPlayerId, const QString &zone, int cardId, CardAttribute attribute, const QString &attrValue, Server_Card *unzonedCard=nullptr)
Definition server_abstract_player.cpp:600
virtual Response::ResponseCode cmdConcede(const Command_Concede &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:649
virtual void onCardBeingMoved(GameEventStorage &ges, const MoveCardStruct &cardStruct, Server_CardZone *startzone, Server_CardZone *targetzone, bool undoingDraw)
Definition server_abstract_player.cpp:519
const DeckList * getDeckList() const
Definition server_abstract_player.h:46
virtual Response::ResponseCode cmdChangeZoneProperties(const Command_ChangeZoneProperties &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1588
void setConceded(bool _conceded)
Definition server_abstract_player.h:62
void prepareDestroy() override
Definition server_abstract_player.cpp:68
Response::ResponseCode moveCard(GameEventStorage &ges, Server_CardZone *startzone, const QList< const CardToMove * > &_cards, Server_CardZone *targetzone, int xCoord, int yCoord, bool fixFreeSpaces=true, bool undoingDraw=false, bool isReversed=false)
Definition server_abstract_player.cpp:253
virtual void getInfo(ServerInfo_Player *info, Server_AbstractParticipant *playerWhosAsking, bool omniscient, bool withUserInfo) override
Definition server_abstract_player.cpp:1626
virtual Response::ResponseCode cmdSetCardAttr(const Command_SetCardAttr &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1302
virtual Response::ResponseCode cmdUnconcede(const Command_Unconcede &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:678
virtual Response::ResponseCode cmdDeleteArrow(const Command_DeleteArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1281
void setReadyStart(bool _readyStart)
Definition server_abstract_player.h:54
const QMap< QString, Server_CardZone * > & getZones() const
Definition server_abstract_player.h:67
QMap< QString, Server_CardZone * > zones
Definition server_abstract_player.h:32
virtual Response::ResponseCode cmdReadyStart(const Command_ReadyStart &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:704
virtual Response::ResponseCode cmdFlipCard(const Command_FlipCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:804
virtual Response::ResponseCode cmdRollDie(const Command_RollDie &cmd, ResponseContainer &rc, GameEventStorage &ges) const override
Definition server_abstract_player.cpp:734
virtual Response::ResponseCode cmdAttachCard(const Command_AttachCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:852
bool deleteArrow(int arrowId)
Definition server_abstract_player.cpp:118
void getPlayerProperties(ServerInfo_PlayerProperties &result) override
Definition server_abstract_player.cpp:1647
Definition server_abstractuserinterface.h:20
Definition server_arrow.h:11
Definition server_cardzone.h:35
Definition server_card.h:36
Represents a player counter with overflow-safe increment arithmetic.
Definition server_counter.h:41
Definition server_game.h:47
Definition server_move_card_struct.h:8