Cockatrice 2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
card_relation.h
Go to the documentation of this file.
1#ifndef COCKATRICE_CARD_RELATION_H
2#define COCKATRICE_CARD_RELATION_H
3
5
6#include <QObject>
7#include <QString>
8
23class CardRelation : public QObject
24{
25 Q_OBJECT
26
27private:
28 QString name;
35
36public:
48 explicit CardRelation(const QString &_name = QString(),
50 bool _isCreateAllExclusion = false,
51 bool _isVariableCount = false,
52 int _defaultCount = 1,
53 bool _isPersistent = false,
54 bool _isFaceDown = false);
55
61 [[nodiscard]] inline const QString &getName() const
62 {
63 return name;
64 }
65
71 [[nodiscard]] CardRelationType getAttachType() const
72 {
73 return attachType;
74 }
75
81 [[nodiscard]] bool getDoesAttach() const
82 {
84 }
85
91 [[nodiscard]] bool getDoesTransform() const
92 {
94 }
95
101 [[nodiscard]] QString getAttachTypeAsString() const
102 {
104 }
105
111 [[nodiscard]] bool getCanCreateAnother() const
112 {
113 return !getDoesAttach();
114 }
115
121 [[nodiscard]] bool getIsCreateAllExclusion() const
122 {
124 }
125
131 [[nodiscard]] bool getIsVariable() const
132 {
133 return isVariableCount;
134 }
135
141 [[nodiscard]] int getDefaultCount() const
142 {
143 return defaultCount;
144 }
145
153 [[nodiscard]] bool getIsPersistent() const
154 {
155 return isPersistent;
156 }
157
163 [[nodiscard]] bool getIsFaceDown() const
164 {
165 return isFaceDown;
166 }
167};
168
169#endif // COCKATRICE_CARD_RELATION_H
QString cardAttachTypeToString(CardRelationType type)
Definition card_relation_type.h:23
bool getDoesAttach() const
Returns true if the card is attached to another.
Definition card_relation.h:81
CardRelationType attachType
Type of attachment.
Definition card_relation.h:29
bool isFaceDown
True if this relation creates the tokens facedown.
Definition card_relation.h:34
QString getAttachTypeAsString() const
Returns a string description of the attachment type.
Definition card_relation.h:101
bool getIsVariable() const
Returns whether the relation count is variable.
Definition card_relation.h:131
bool getDoesTransform() const
Returns true if this card transforms into another card.
Definition card_relation.h:91
int defaultCount
Default number of cards created or involved.
Definition card_relation.h:32
QString name
Name of the related card.
Definition card_relation.h:28
CardRelation(const QString &_name=QString(), CardRelationType _attachType=CardRelationType::DoesNotAttach, bool _isCreateAllExclusion=false, bool _isVariableCount=false, int _defaultCount=1, bool _isPersistent=false, bool _isFaceDown=false)
Constructs a CardRelation with optional parameters.
Definition card_relation.cpp:5
bool getIsCreateAllExclusion() const
Returns whether this relation is excluded from "create all" operations.
Definition card_relation.h:121
int getDefaultCount() const
Returns the default count of related cards.
Definition card_relation.h:141
bool isVariableCount
True if the number of creations is variable.
Definition card_relation.h:31
bool getIsPersistent() const
Returns whether the relation is persistent.
Definition card_relation.h:153
bool getCanCreateAnother() const
Determines whether another instance can be created.
Definition card_relation.h:111
bool getIsFaceDown() const
Returns whether the relation creates the token facedown.
Definition card_relation.h:163
CardRelationType getAttachType() const
Returns the type of attachment.
Definition card_relation.h:71
bool isCreateAllExclusion
True if this relation should exclude multiple creations in "create all" operations.
Definition card_relation.h:30
const QString & getName() const
Returns the name of the related card.
Definition card_relation.h:61
bool isPersistent
True if this relation persists (i.e. is not destroyed) on zone change.
Definition card_relation.h:33
CardRelationType
Types of attachments between cards.
Definition card_relation_type.h:16
@ TransformInto
Definition card_relation_type.h:19
@ DoesNotAttach
Definition card_relation_type.h:17