Cockatrice 2026-06-01-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 int newArrowId() const;
78
79 void addZone(Server_CardZone *zone);
80 void addArrow(Server_Arrow *arrow);
81 void updateArrowId(int id);
82 bool deleteArrow(int arrowId);
83
84 virtual void setupZones();
85 virtual void clearZones();
86
87 Response::ResponseCode moveCard(GameEventStorage &ges,
88 Server_CardZone *startzone,
89 const QList<const CardToMove *> &_cards,
90 Server_CardZone *targetzone,
91 int xCoord,
92 int yCoord,
93 bool fixFreeSpaces = true,
94 bool undoingDraw = false,
95 bool isReversed = false);
96
98 Server_CardZone *startzone,
99 Server_CardZone *targetzone,
100 MoveCardStruct cardStruct,
101 int xCoord,
102 int yCoord,
103 int &xIndex,
104 bool &revealTopStart,
105 bool &revealTopTarget,
106 bool isReversed,
107 bool undoingDraw);
108
109 virtual void onCardBeingMoved(GameEventStorage &ges,
110 const MoveCardStruct &cardStruct,
111 Server_CardZone *startzone,
112 Server_CardZone *targetzone,
113 bool undoingDraw);
114
115 void unattachCard(GameEventStorage &ges, Server_Card *card);
116 Response::ResponseCode setCardAttrHelper(GameEventStorage &ges,
117 int targetPlayerId,
118 const QString &zone,
119 int cardId,
120 CardAttribute attribute,
121 const QString &attrValue,
122 Server_Card *unzonedCard = nullptr);
123
124 virtual Response::ResponseCode
125 cmdConcede(const Command_Concede &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
126 virtual Response::ResponseCode
127 cmdUnconcede(const Command_Unconcede &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
128 virtual Response::ResponseCode
129 cmdReadyStart(const Command_ReadyStart &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
130 virtual Response::ResponseCode
131 cmdRollDie(const Command_RollDie &cmd, ResponseContainer &rc, GameEventStorage &ges) const override;
132 virtual Response::ResponseCode
133 cmdMoveCard(const Command_MoveCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
134 virtual Response::ResponseCode
135 cmdFlipCard(const Command_FlipCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
136 virtual Response::ResponseCode
137 cmdAttachCard(const Command_AttachCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
138 virtual Response::ResponseCode
139 cmdCreateToken(const Command_CreateToken &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
140 virtual Response::ResponseCode
141 cmdCreateArrow(const Command_CreateArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
142 virtual Response::ResponseCode
143 cmdDeleteArrow(const Command_DeleteArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
144 virtual Response::ResponseCode
145 cmdSetCardAttr(const Command_SetCardAttr &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
146 virtual Response::ResponseCode
147 cmdSetCardCounter(const Command_SetCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
148 virtual Response::ResponseCode
149 cmdIncCardCounter(const Command_IncCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
150 virtual Response::ResponseCode
151 cmdDumpZone(const Command_DumpZone &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
152 virtual Response::ResponseCode
153 cmdRevealCards(const Command_RevealCards &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
154 virtual Response::ResponseCode cmdChangeZoneProperties(const Command_ChangeZoneProperties &cmd,
156 GameEventStorage &ges) override;
157
158 virtual void getInfo(ServerInfo_Player *info,
159 Server_AbstractParticipant *playerWhosAsking,
160 bool omniscient,
161 bool withUserInfo) override;
162};
163
164#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:118
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:1325
virtual Response::ResponseCode cmdIncCardCounter(const Command_IncCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1359
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:1184
void revealTopCardIfNeeded(Server_CardZone *zone, GameEventStorage &ges)
Definition server_abstract_player.cpp:563
virtual Response::ResponseCode cmdRevealCards(const Command_RevealCards &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1476
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:1396
virtual void setupZones()
Definition server_abstract_player.cpp:95
virtual void clearZones()
Definition server_abstract_player.cpp:100
virtual Response::ResponseCode cmdMoveCard(const Command_MoveCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:771
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:113
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:358
bool conceded
Definition server_abstract_player.h:29
void unattachCard(GameEventStorage &ges, Server_Card *card)
Definition server_abstract_player.cpp:593
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:1213
~Server_AbstractPlayer() override
virtual Response::ResponseCode cmdCreateToken(const Command_CreateToken &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:971
void updateArrowId(int id)
Definition server_abstract_player.cpp:123
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:611
virtual Response::ResponseCode cmdConcede(const Command_Concede &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:660
virtual void onCardBeingMoved(GameEventStorage &ges, const MoveCardStruct &cardStruct, Server_CardZone *startzone, Server_CardZone *targetzone, bool undoingDraw)
Definition server_abstract_player.cpp:530
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:1598
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:264
virtual void getInfo(ServerInfo_Player *info, Server_AbstractParticipant *playerWhosAsking, bool omniscient, bool withUserInfo) override
Definition server_abstract_player.cpp:1636
virtual Response::ResponseCode cmdSetCardAttr(const Command_SetCardAttr &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1312
virtual Response::ResponseCode cmdUnconcede(const Command_Unconcede &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:689
virtual Response::ResponseCode cmdDeleteArrow(const Command_DeleteArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1291
void setReadyStart(bool _readyStart)
Definition server_abstract_player.h:54
const QMap< QString, Server_CardZone * > & getZones() const
Definition server_abstract_player.h:67
int newArrowId() const
Definition server_abstract_player.cpp:84
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:715
virtual Response::ResponseCode cmdFlipCard(const Command_FlipCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:815
virtual Response::ResponseCode cmdRollDie(const Command_RollDie &cmd, ResponseContainer &rc, GameEventStorage &ges) const override
Definition server_abstract_player.cpp:745
virtual Response::ResponseCode cmdAttachCard(const Command_AttachCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:863
bool deleteArrow(int arrowId)
Definition server_abstract_player.cpp:129
void getPlayerProperties(ServerInfo_PlayerProperties &result) override
Definition server_abstract_player.cpp:1657
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