Cockatrice 2026-06-01-Development-3.1.0-beta.3
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
player_actions.h
Go to the documentation of this file.
1
7
8#ifndef COCKATRICE_PLAYER_ACTIONS_H
9#define COCKATRICE_PLAYER_ACTIONS_H
13#include "player_logic.h"
14
15#include <QMenu>
16#include <QObject>
19
20namespace google
21{
22namespace protobuf
23{
24class Message;
25}
26} // namespace google
27
28class CardItem;
29class Command_MoveCard;
30class GameEventContext;
31class PendingCommand;
32class PlayerLogic;
33class PlayerActions : public QObject
34{
35 Q_OBJECT
36
37public:
42
44
46 void sendGameCommand(const google::protobuf::Message &command);
47
48 PendingCommand *prepareGameCommand(const ::google::protobuf::Message &cmd);
49 PendingCommand *prepareGameCommand(const QList<const ::google::protobuf::Message *> &cmdList);
50
51 void moveOneCardUntil(CardItem *card);
53
54 [[nodiscard]] bool isMovingCardsUntil() const
55 {
56 return movingCardsUntil;
57 }
58
59public slots:
60 void setLastToken(CardInfoPtr cardInfo);
61 void playCard(CardItem *c, bool faceDown);
62 void playCardToTable(const CardItem *c, bool faceDown);
63
64 void actUntapAll();
65 void actRollDie();
66 void actFlipCoin();
67 void actCreateToken();
69 void actShuffle();
70 void actShuffleTop();
71 void actShuffleBottom();
72 void actDrawCard();
73 void actDrawCards();
74 void actUndoDraw();
75 void actMulligan();
78 void doMulligan(int number);
79
80 void actPlay();
81 void actPlayFacedown();
82 void actHide();
83
94 void actDrawBottomCard();
95 void actDrawBottomCards();
105
106 void actSelectAll();
107 void actSelectRow();
108 void actSelectColumn();
109
110 void actViewLibrary();
111 void actViewHand();
112 void actViewTopCards();
113 void actViewBottomCards();
116 void actViewGraveyard();
117 void actLendLibrary(int lendToPlayerId);
118 void actRevealTopCards(int revealToPlayerId, int amount);
119 void actRevealRandomGraveyardCard(int revealToPlayerId);
120 void actViewRfg();
121 void actViewSideboard();
122
123 void actSayMessage();
124
129
131 void actRemoveCardCounter(int counterId);
132 void actAddCardCounter(int counterId);
133 void actSetCardCounter(int counterId);
135 void actAttach();
136 void actUnattach();
137 void actDrawArrow();
138 void actIncPT(int deltaP, int deltaT);
139 void actResetPT();
140 void actSetPT();
141 void actIncP();
142 void actDecP();
143 void actIncT();
144 void actDecT();
145 void actIncPT();
146 void actDecPT();
147 void actFlowP();
148 void actFlowT();
149
151
152 void actSetAnnotation();
153 void actReveal(QAction *action);
154 void actRevealHand(int revealToPlayerId);
155 void actRevealRandomHandCard(int revealToPlayerId);
156 void actRevealLibrary(int revealToPlayerId);
157
158 void actSortHand();
159
160 void cardMenuAction();
161
162private:
164
169
172
178
179 void moveTopCardsTo(const QString &targetZone, const QString &zoneDisplayName, bool faceDown);
180 void moveBottomCardsTo(const QString &targetZone, const QString &zoneDisplayName, bool faceDown);
181
182 void createCard(const CardItem *sourceCard,
183 const QString &dbCardName,
185 bool persistent = false);
186 bool createRelatedFromRelation(const CardItem *sourceCard, const CardRelation *cardRelation);
187
188 void playSelectedCards(bool faceDown = false);
189
190 void cmdSetTopCard(Command_MoveCard &cmd);
191 void cmdSetBottomCard(Command_MoveCard &cmd);
192
193 void offsetCardCounter(int counterId, int offset);
194};
195
196#endif // COCKATRICE_PLAYER_ACTIONS_H
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:20
Definition card_item.h:28
Represents a relationship between two cards.
Definition card_relation.h:24
Definition filter_string.h:34
Definition pending_command.h:15
void actFlipCoin()
Definition player_actions.cpp:857
void actRevealLibrary(int revealToPlayerId)
Definition player_actions.cpp:1689
void moveOneCardUntil(CardItem *card)
Definition player_actions.cpp:506
void actSetCardCounter(int counterId)
Definition player_actions.cpp:1520
void doMulligan(int number)
Definition player_actions.cpp:347
void actLendLibrary(int lendToPlayerId)
Definition player_actions.cpp:1700
void moveBottomCardsTo(const QString &targetZone, const QString &zoneDisplayName, bool faceDown)
Definition player_actions.cpp:641
void setLastToken(CardInfoPtr cardInfo)
Definition player_actions.cpp:909
void actCreatePredefinedToken()
Definition player_actions.cpp:933
void actReduceLifeByPower()
Definition player_actions.cpp:1390
void actShuffleTop()
Definition player_actions.cpp:245
void playSelectedCards(bool faceDown=false)
Definition player_actions.cpp:1610
void moveTopCardsTo(const QString &targetZone, const QString &zoneDisplayName, bool faceDown)
Definition player_actions.cpp:446
void actAlwaysLookAtTopCard()
Definition player_actions.cpp:211
void actSetAnnotation()
Definition player_actions.cpp:1426
void actDrawBottomCard()
Definition player_actions.cpp:749
void sendGameCommand(PendingCommand *pend)
Definition player_actions.cpp:1993
void actIncT()
Definition player_actions.cpp:1360
void actIncrementAllCardCounters()
Definition player_actions.cpp:1562
void actAttach()
Definition player_actions.cpp:1461
void actSortHand()
Definition player_actions.cpp:164
void actUndoDraw()
Definition player_actions.cpp:373
void createCard(const CardItem *sourceCard, const QString &dbCardName, CardRelationType attach=CardRelationType::DoesNotAttach, bool persistent=false)
Definition player_actions.cpp:1092
void actMoveTopCardToExile()
Definition player_actions.cpp:411
QTimer * moveTopCardTimer
Definition player_actions.h:174
void actViewBottomCards()
Definition player_actions.cpp:189
void actMoveBottomCardToTop()
Definition player_actions.cpp:679
void actAddCardCounter(int counterId)
Definition player_actions.cpp:1487
CardsToReveal
Definition player_actions.h:39
@ RANDOM_CARD_FROM_ZONE
Definition player_actions.h:40
void actDecPT()
Definition player_actions.cpp:1375
bool isMovingCardsUntil() const
Definition player_actions.h:54
void actMulliganSameSize()
Definition player_actions.cpp:334
void actMoveBottomCardsToExileFaceDown()
Definition player_actions.cpp:636
void actMoveTopCardToPlay()
Definition player_actions.cpp:557
PlayerLogic * player
Definition player_actions.h:163
int defaultNumberTopCardsToPlaceBelow
Definition player_actions.h:166
void actMulligan()
Definition player_actions.cpp:310
void actMoveBottomCardToPlay()
Definition player_actions.cpp:796
void actMoveTopCardsToExileFaceDown()
Definition player_actions.cpp:441
void actShuffle()
Definition player_actions.cpp:240
void actMoveTopCardToBottom()
Definition player_actions.cpp:542
void actRemoveCardCounter(int counterId)
Definition player_actions.cpp:1492
void playCard(CardItem *c, bool faceDown)
Definition player_actions.cpp:48
void actCreateAnotherToken()
Definition player_actions.cpp:888
void actMoveTopCardsToGraveFaceDown()
Definition player_actions.cpp:431
void actUnattach()
Definition player_actions.cpp:1471
void actIncPT()
Definition player_actions.cpp:1370
void offsetCardCounter(int counterId, int offset)
Definition player_actions.cpp:1497
void actViewRfg()
Definition player_actions.cpp:230
void actDrawCard()
Definition player_actions.cpp:303
void actDrawBottomCards()
Definition player_actions.cpp:764
void actMoveBottomCardsToGrave()
Definition player_actions.cpp:621
void actRollDie()
Definition player_actions.cpp:844
int lastTokenTableRow
Definition player_actions.h:171
void cmdSetBottomCard(Command_MoveCard &cmd)
Definition player_actions.cpp:386
void actReveal(QAction *action)
Definition player_actions.cpp:1647
int defaultNumberTopCards
Definition player_actions.h:165
void actRevealRandomHandCard(int revealToPlayerId)
Definition player_actions.cpp:1677
void actMoveTopCardToPlayFaceDown()
Definition player_actions.cpp:572
void actMoveTopCardsUntil()
Definition player_actions.cpp:484
void actSayMessage()
Definition player_actions.cpp:1161
int defaultNumberBottomCards
Definition player_actions.h:167
void actMoveCardXCardsFromTop()
Definition player_actions.cpp:1169
void actViewLibrary()
Definition player_actions.cpp:134
void actFlowT()
Definition player_actions.cpp:1385
void actCreateAllRelatedCards()
Definition player_actions.cpp:968
void cardMenuAction()
Definition player_actions.cpp:1738
MoveTopCardsUntilOptions movingCardsUntilOptions
Definition player_actions.h:177
void actDecP()
Definition player_actions.cpp:1355
void actSelectRow()
Definition player_actions.cpp:725
int defaultNumberDieRoll
Definition player_actions.h:168
void actHide()
Definition player_actions.cpp:1637
void actIncP()
Definition player_actions.cpp:1350
void actUntapAll()
Definition player_actions.cpp:834
TokenInfo lastTokenInfo
Definition player_actions.h:170
void actMoveTopCardToGrave()
Definition player_actions.cpp:396
void actViewGraveyard()
Definition player_actions.cpp:225
void actDecT()
Definition player_actions.cpp:1365
void actOpenDeckInDeckEditor()
Definition player_actions.cpp:220
void actMoveBottomCardToExile()
Definition player_actions.cpp:606
FilterString movingCardsUntilFilter
Definition player_actions.h:175
void actCreateRelatedCard()
Definition player_actions.cpp:946
int movingCardsUntilCounter
Definition player_actions.h:176
void actMoveTopCardsToExile()
Definition player_actions.cpp:436
void actPlayFacedown()
Definition player_actions.cpp:1632
void actSelectColumn()
Definition player_actions.cpp:738
void playCardToTable(const CardItem *c, bool faceDown)
Definition player_actions.cpp:101
void cmdSetTopCard(Command_MoveCard &cmd)
Definition player_actions.cpp:378
void actRevealRandomGraveyardCard(int revealToPlayerId)
Definition player_actions.cpp:1727
void actMoveBottomCardToPlayFaceDown()
Definition player_actions.cpp:811
void actPlay()
Definition player_actions.cpp:1627
PendingCommand * prepareGameCommand(const ::google::protobuf::Message &cmd)
void actViewHand()
Definition player_actions.cpp:139
void actResetPT()
Definition player_actions.cpp:1249
void actShuffleBottom()
Definition player_actions.cpp:274
void actViewTopCards()
Definition player_actions.cpp:176
bool movingCardsUntil
Definition player_actions.h:173
void actMulliganMinusOne()
Definition player_actions.cpp:340
void actViewSideboard()
Definition player_actions.cpp:235
void actDrawArrow()
Definition player_actions.cpp:1342
void actSetPT()
Definition player_actions.cpp:1282
void actMoveTopCardsToGrave()
Definition player_actions.cpp:426
void actRevealTopCards(int revealToPlayerId, int amount)
Definition player_actions.cpp:1712
void actDrawCards()
Definition player_actions.cpp:358
void actFlowP()
Definition player_actions.cpp:1380
void actMoveBottomCardsToExile()
Definition player_actions.cpp:631
void actAlwaysRevealTopCard()
Definition player_actions.cpp:202
void actCreateToken()
Definition player_actions.cpp:865
void actMoveBottomCardToGrave()
Definition player_actions.cpp:591
void actMoveBottomCardsToGraveFaceDown()
Definition player_actions.cpp:626
void actSelectAll()
Definition player_actions.cpp:715
void stopMoveTopCardsUntil()
Immediately stops any ongoing play top card to stack until... process, resetting all variables involv...
Definition player_actions.cpp:535
PlayerActions(PlayerLogic *player)
Definition player_actions.cpp:39
void actRevealHand(int revealToPlayerId)
Definition player_actions.cpp:1666
bool createRelatedFromRelation(const CardItem *sourceCard, const CardRelation *cardRelation)
Definition player_actions.cpp:1048
Definition player_logic.h:65
static constexpr int amount
Definition deck_hash_performance_test.cpp:5
CardRelationType
Types of attachments between cards.
Definition card_relation_type.h:16
@ DoesNotAttach
Definition card_relation_type.h:17
Definition phases_toolbar.h:20
Definition phases_toolbar.h:18
Definition dlg_move_top_cards_until.h:20
Definition dlg_create_token.h:26