10#include <QLoggingCategory>
13#include <QSharedPointer>
100 explicit CardInfo(
const QString &_name,
101 const QString &_text,
103 QVariantHash _properties,
104 const QList<CardRelation *> &_relatedCards,
105 const QList<CardRelation *> &_reverseRelatedCards,
133 static CardInfoPtr newInstance(
const QString &_name);
148 static CardInfoPtr newInstance(
const QString &_name,
149 const QString &_text,
151 QVariantHash _properties,
152 const QList<CardRelation *> &_relatedCards,
153 const QList<CardRelation *> &_reverseRelatedCards,
155 UiAttributes _uiAttributes);
167 newCardInfo->setSmartPointer(newCardInfo);
184 [[nodiscard]]
inline const QString &
getName()
const
213 [[nodiscard]] QString
getProperty(
const QString &propertyName)
const
215 return properties.value(propertyName).toString();
251 QList<CardRelation *> result;
256 void resetReverseRelatedCards2Me();
270 [[nodiscard]] QChar getColorChar()
const;
273 [[nodiscard]] QString getCardType()
const;
274 void setCardType(
const QString &value);
275 [[nodiscard]] QString getCmc()
const;
276 [[nodiscard]] QString getColors()
const;
277 void setColors(
const QString &value);
278 [[nodiscard]] QString getLoyalty()
const;
280 [[nodiscard]] QString getManaCost()
const;
281 [[nodiscard]] QString getPowTough()
const;
282 void setPowTough(
const QString &value);
292 [[nodiscard]] QString getCorrectedName()
const;
301 [[nodiscard]]
bool isLegalInFormat(
const QString &format)
const;
320 void combineLegalities(
const QVariantHash &props);
327 void refreshCachedSets();
337 static QString simplifyName(
const QString &name);
345 void refreshCachedSetNames();
352 void refreshCachedAltNames();
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:20
QMap< QString, QList< PrintingInfo > > SetToPrintingsMap
Definition card_info.h:27
QHash< QString, FormatRulesPtr > FormatRulesNameMap
Definition card_info.h:31
QSharedPointer< FormatRules > FormatRulesPtr
Definition card_info.h:26
QSharedPointer< CardSet > CardSetPtr
Definition card_info.h:25
QHash< QString, CardSetPtr > SetNameMap
Definition card_info.h:30
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.h:24
Q_LOGGING_CATEGORY(CardInfoLog, "card_info")
QHash< QString, CardInfoPtr > CardNameMap
Definition card_info.h:29
Represents a card and its associated metadata, properties, and relationships.
Definition card_info.h:49
bool hasProperty(const QString &propertyName) const
Definition card_info.h:222
QString simpleName
Simplified name for fuzzy matching.
Definition card_info.h:74
void setSmartPointer(CardInfoPtr _ptr)
Sets the internal smart pointer to self.
Definition card_info.h:178
const SetToPrintingsMap & getSets() const
Definition card_info.h:226
void setText(const QString &_text)
Definition card_info.h:200
UiAttributes uiAttributes
Attributes that affect display and game logic.
Definition card_info.h:82
const QList< CardRelation * > & getReverseRelatedCards() const
Definition card_info.h:241
const QString & getSimpleName() const
Definition card_info.h:188
const QList< CardRelation * > & getRelatedCards() const
Definition card_info.h:237
QList< CardRelation * > reverseRelatedCards
Cards that refer back to this card.
Definition card_info.h:79
const UiAttributes & getUiAttributes() const
Definition card_info.h:264
CardInfoPtr smartThis
Smart pointer to self for safe cross-references.
Definition card_info.h:72
const QList< CardRelation * > & getReverseRelatedCards2Me() const
Definition card_info.h:245
QSet< QString > altNames
Cached set of alternate names, used when searching.
Definition card_info.h:84
const QString & getSetsNames() const
Definition card_info.h:230
QString name
Full name of the card.
Definition card_info.h:73
QList< CardRelation * > relatedCards
Forward references to related cards.
Definition card_info.h:78
SetToPrintingsMap setsToPrintings
Mapping from set names to printing variations.
Definition card_info.h:81
void setProperty(const QString &_name, const QString &_value)
Definition card_info.h:217
QVariantHash properties
Key-value store of dynamic card properties.
Definition card_info.h:77
CardInfo(const QString &_name, const QString &_text, bool _isToken, QVariantHash _properties, const QList< CardRelation * > &_relatedCards, const QList< CardRelation * > &_reverseRelatedCards, SetToPrintingsMap _sets, UiAttributes _uiAttributes)
Constructs a CardInfo with full initialization.
Definition card_info.cpp:22
const QSet< QString > & getAltNames()
Definition card_info.h:192
QString getProperty(const QString &propertyName) const
Definition card_info.h:213
CardInfo(const CardInfo &other)
Copy constructor for CardInfo.
Definition card_info.h:116
QList< CardRelation * > reverseRelatedCardsToMe
Cards that consider this card as related.
Definition card_info.h:80
void addReverseRelatedCards2Me(CardRelation *cardRelation)
Definition card_info.h:257
CardInfoPtr clone() const
Clones the current CardInfo instance.
Definition card_info.h:164
void cardInfoChanged(CardInfoPtr card)
Emitted when card properties or state have changed.
const QString & getText() const
Definition card_info.h:196
QString setsNames
Cached, human-readable list of set names.
Definition card_info.h:83
bool getIsToken() const
Definition card_info.h:205
void pixmapUpdated(const PrintingInfo &printing)
Emitted when a pixmap for this card has been updated or finished loading.
QList< CardRelation * > getAllRelatedCards() const
Definition card_info.h:249
bool isToken
Whether this card is a token or not.
Definition card_info.h:76
QStringList getProperties() const
Definition card_info.h:209
QString text
Text description or rules text of the card.
Definition card_info.h:75
const QString & getName() const
Definition card_info.h:184
Represents a relationship between two cards.
Definition card_relation.h:24
A collection of cards grouped under a common identifier.
Definition card_set.h:35
Defines the base parser interface (ICardDatabaseParser) for all card database parsers.
Definition card_database_parser.h:20
Represents metadata for a specific variation of a card within a set.
Definition printing_info.h:27
static QString getMainCardType(const QStringList &typeList)
Definition oracleimporter.cpp:96
Attributes of the card that affect display and game logic.
Definition card_info.h:60
int tableRow
Row index in a table or visual representation.
Definition card_info.h:63
bool landscapeOrientation
Orientation flag for rendering.
Definition card_info.h:62
bool cipt
Positioning flag used by UI.
Definition card_info.h:61
bool upsideDownArt
Whether artwork is flipped for visual purposes.
Definition card_info.h:64