Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform 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 virtual void onCardBeingMoved(GameEventStorage &ges,
97 const MoveCardStruct &cardStruct,
98 Server_CardZone *startzone,
99 Server_CardZone *targetzone,
100 bool undoingDraw);
101
102 void unattachCard(GameEventStorage &ges, Server_Card *card);
103 Response::ResponseCode setCardAttrHelper(GameEventStorage &ges,
104 int targetPlayerId,
105 const QString &zone,
106 int cardId,
107 CardAttribute attribute,
108 const QString &attrValue,
109 Server_Card *unzonedCard = nullptr);
110
111 virtual Response::ResponseCode
112 cmdConcede(const Command_Concede &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
113 virtual Response::ResponseCode
114 cmdUnconcede(const Command_Unconcede &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
115 virtual Response::ResponseCode
116 cmdReadyStart(const Command_ReadyStart &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
117 virtual Response::ResponseCode
118 cmdRollDie(const Command_RollDie &cmd, ResponseContainer &rc, GameEventStorage &ges) const override;
119 virtual Response::ResponseCode
120 cmdMoveCard(const Command_MoveCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
121 virtual Response::ResponseCode
122 cmdFlipCard(const Command_FlipCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
123 virtual Response::ResponseCode
124 cmdAttachCard(const Command_AttachCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
125 virtual Response::ResponseCode
126 cmdCreateToken(const Command_CreateToken &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
127 virtual Response::ResponseCode
128 cmdCreateArrow(const Command_CreateArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
129 virtual Response::ResponseCode
130 cmdDeleteArrow(const Command_DeleteArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
131 virtual Response::ResponseCode
132 cmdSetCardAttr(const Command_SetCardAttr &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
133 virtual Response::ResponseCode
134 cmdSetCardCounter(const Command_SetCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
135 virtual Response::ResponseCode
136 cmdIncCardCounter(const Command_IncCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
137 virtual Response::ResponseCode
138 cmdDumpZone(const Command_DumpZone &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
139 virtual Response::ResponseCode
140 cmdRevealCards(const Command_RevealCards &cmd, ResponseContainer &rc, GameEventStorage &ges) override;
141 virtual Response::ResponseCode cmdChangeZoneProperties(const Command_ChangeZoneProperties &cmd,
143 GameEventStorage &ges) override;
144
145 virtual void getInfo(ServerInfo_Player *info,
146 Server_AbstractParticipant *playerWhosAsking,
147 bool omniscient,
148 bool withUserInfo) override;
149};
150
151#endif
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:127
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:115
Server_AbstractPlayer(Server_Game *_game, int _playerId, const ServerInfo_User &_userInfo, bool _judge, Server_AbstractUserInterface *_handler)
Definition server_abstract_player.cpp:52
virtual Response::ResponseCode cmdSetCardCounter(const Command_SetCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1267
virtual Response::ResponseCode cmdIncCardCounter(const Command_IncCardCounter &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1300
int newCardId()
Definition server_abstract_player.cpp:76
void sendCreateTokenEvents(Server_CardZone *zone, Server_Card *card, int xCoord, int yCoord, GameEventStorage &ges)
Definition server_abstract_player.cpp:1126
void revealTopCardIfNeeded(Server_CardZone *zone, GameEventStorage &ges)
Definition server_abstract_player.cpp:469
virtual Response::ResponseCode cmdRevealCards(const Command_RevealCards &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1418
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:1338
virtual void setupZones()
Definition server_abstract_player.cpp:92
virtual void clearZones()
Definition server_abstract_player.cpp:97
virtual Response::ResponseCode cmdMoveCard(const Command_MoveCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:720
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:110
QMap< int, Server_Arrow * > arrows
Definition server_abstract_player.h:23
bool conceded
Definition server_abstract_player.h:29
void unattachCard(GameEventStorage &ges, Server_Card *card)
Definition server_abstract_player.cpp:499
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:1155
~Server_AbstractPlayer() override
virtual Response::ResponseCode cmdCreateToken(const Command_CreateToken &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:920
void updateArrowId(int id)
Definition server_abstract_player.cpp:120
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:517
virtual Response::ResponseCode cmdConcede(const Command_Concede &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:566
virtual void onCardBeingMoved(GameEventStorage &ges, const MoveCardStruct &cardStruct, Server_CardZone *startzone, Server_CardZone *targetzone, bool undoingDraw)
Definition server_abstract_player.cpp:436
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:1539
void setConceded(bool _conceded)
Definition server_abstract_player.h:62
void prepareDestroy() override
Definition server_abstract_player.cpp:65
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:201
virtual void getInfo(ServerInfo_Player *info, Server_AbstractParticipant *playerWhosAsking, bool omniscient, bool withUserInfo) override
Definition server_abstract_player.cpp:1577
virtual Response::ResponseCode cmdSetCardAttr(const Command_SetCardAttr &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1254
virtual Response::ResponseCode cmdUnconcede(const Command_Unconcede &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:638
virtual Response::ResponseCode cmdDeleteArrow(const Command_DeleteArrow &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:1233
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:81
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:664
virtual Response::ResponseCode cmdFlipCard(const Command_FlipCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:764
virtual Response::ResponseCode cmdRollDie(const Command_RollDie &cmd, ResponseContainer &rc, GameEventStorage &ges) const override
Definition server_abstract_player.cpp:694
virtual Response::ResponseCode cmdAttachCard(const Command_AttachCard &cmd, ResponseContainer &rc, GameEventStorage &ges) override
Definition server_abstract_player.cpp:812
bool deleteArrow(int arrowId)
Definition server_abstract_player.cpp:126
void getPlayerProperties(ServerInfo_PlayerProperties &result) override
Definition server_abstract_player.cpp:1598
Definition server_abstractuserinterface.h:20
Definition server_arrow.h:11
Definition server_cardzone.h:35
Definition server_card.h:36
Definition server_counter.h:29
Definition server_game.h:47
Definition server_move_card_struct.h:8