18#include <QVariantList>
19#include <qtmetamacros.h>
28template <
class Key,
class T>
class QMap;
52 [[nodiscard]]
int type()
const override
57 QGraphicsItem *parent =
nullptr,
60 CardZoneLogic *_zone =
nullptr);
72 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget)
override;
117 void setPT(
const QString &_pt);
143 void resetState(
bool keepAnnotations =
false);
149 void drawArrow(
const QColor &arrowColor);
171 static QVariantList
parsePT(
const QString &pt);
177 QVariant
itemChange(GraphicsItemChange change,
const QVariant &value)
override;
Base class for graphical card items, providing shared rendering, identity, and interaction logic.
const int ROTATION_DEGREES_PER_FRAME
Definition card_item.h:30
CardRef cardRef
Definition abstract_card_item.h:34
AbstractCardItem(QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, PlayerLogic *_owner=nullptr, int _id=-1)
Definition abstract_card_item.cpp:45
PlayerLogic * owner
Definition arrow_target.h:21
Definition card_drag_item.h:19
Definition card_item.h:33
void setZone(CardZoneLogic *_zone)
Definition card_item.cpp:97
void deleteDragItem()
Definition card_item.cpp:293
void setOwner(PlayerLogic *_owner)
Definition card_item.h:89
bool animationEvent() override
Default: no per-tick animation. Subclasses override to animate.
Definition card_item.cpp:536
CardItem(PlayerLogic *_owner, QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, int _cardid=-1, CardZoneLogic *_zone=nullptr)
Definition card_item.cpp:51
QPoint getGridPoint() const
Definition card_item.h:73
@ Type
Definition card_item.h:50
void playCard(bool faceDown)
Definition card_item.cpp:418
bool getDoesntUntap() const
Definition card_item.h:108
void handleClickedToPlay(bool shiftHeld)
Definition card_item.cpp:490
const QList< CardItem * > & getAttachedCards() const
Definition card_item.h:139
void processCardInfo(const ServerInfo_Card &_info)
Definition card_item.cpp:260
void setDoesntUntap(bool _doesntUntap)
Definition card_item.cpp:198
void setAttacking(bool _attacking)
Definition card_item.cpp:180
QString getAnnotation() const
Definition card_item.h:103
void removeAttachedCard(CardItem *card)
Definition card_item.h:135
CardZoneLogic * getZone() const
Definition card_item.h:67
void setAnnotation(const QString &_annotation)
Definition card_item.cpp:192
PlayerLogic * getOwner() const
Definition card_item.h:85
void prepareDelete()
Definition card_item.cpp:67
bool doubleClickActsOnSelection() const override
Whether a double-click on this item acts on the whole selection.
Definition card_item.cpp:531
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override
Definition card_item.cpp:519
static QVariantList parsePT(const QString &pt)
Parses a string representing a p/t in order to extract the values from it.
Definition card_item.cpp:441
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition card_item.cpp:106
void resetState(bool keepAnnotations=false)
Resets the fields that should be reset after a zone transition.
Definition card_item.cpp:248
bool getAttacking() const
Definition card_item.h:93
void setGridPoint(const QPoint &_gridPoint)
Definition card_item.h:77
bool getDestroyOnZoneChange() const
Definition card_item.h:118
CardState * getState() const
Definition card_item.h:63
QList< CardItem * > attachedCards
Definition card_item.h:40
void setCounter(int _id, int _value)
Definition card_item.cpp:186
void deleteLater()
Definition card_item.cpp:88
void retranslateUi()
Definition card_item.cpp:102
CardDragItem * createDragItem(int _id, const QPointF &_pos, const QPointF &_scenePos, bool forceFaceDown)
Definition card_item.cpp:281
CardItem * getAttachedTo() const
Definition card_item.h:126
QString getPT() const
Definition card_item.h:113
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition card_item.cpp:358
int type() const override
Definition card_item.h:52
void setPT(const QString &_pt)
Definition card_item.cpp:204
void setDestroyOnZoneChange(bool _destroy)
Definition card_item.h:122
QPoint gridPoint
Definition card_item.h:38
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition card_item.cpp:503
const QMap< int, int > & getCounters() const
Definition card_item.h:98
QPoint getGridPos() const
Definition card_item.h:81
CardState * state
Definition card_item.h:36
void drawAttachArrow()
Definition card_item.cpp:333
void drawArrow(const QColor &arrowColor)
Definition card_item.cpp:301
void setAttachedTo(CardItem *_attachedTo)
Definition card_item.cpp:210
QVariant itemChange(GraphicsItemChange change, const QVariant &value) override
Definition card_item.cpp:564
void addAttachedCard(CardItem *card)
Definition card_item.h:131
CardDragItem * dragItem
Definition card_item.h:39
Definition card_state.h:13
QString getAnnotation() const
Definition card_state.h:70
CardZoneLogic * getZone() const
Definition card_state.h:46
const QMap< int, int > & getCounters() const
Definition card_state.h:59
void setDestroyOnZoneChange(bool _destroyOnZoneChange)
Definition card_state.cpp:94
bool getDoesntUntap() const
Definition card_state.h:84
bool getDestroyOnZoneChange() const
Definition card_state.h:91
CardItem * getAttachedTo() const
Definition card_state.h:98
QString getPT() const
Definition card_state.h:77
bool getAttacking() const
Definition card_state.h:53
Definition card_zone_logic.h:27
Definition player_logic.h:56
Definition remote_connection_controller.h:20
@ typeCard
Definition graphics_item_type.h:14
Definition serverinfo_card.proto:5