15#include <QElapsedTimer>
129 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget)
override;
192 const int newWidth =
static_cast<int>(_width);
193 if (
width == newWidth) {
196 prepareGeometryChange();
230 [[nodiscard]] QPointF
mapFromGrid(QPoint gridPoint)
const;
231 [[nodiscard]] QPoint
mapToGrid(
const QPointF &mapPoint)
const;
238 return x + (y * 1000);
Base class for graphical card items, providing shared rendering, identity, and interaction logic.
Interface for scene items driven by GameScene's shared animation timer.
Definition card_item.h:27
Definition card_zone_logic.h:26
Definition animated_item.h:15
SelectZone(CardZoneLogic *logic, QGraphicsItem *parent=nullptr)
Definition select_zone.cpp:144
Definition table_zone_logic.h:12
CardItem * getCardFromGrid(const QPoint &gridPoint) const
Definition table_zone.cpp:309
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition table_zone.cpp:93
void reorganizeCards() override
Definition table_zone.cpp:209
CardItem * getCardFromCoords(const QPointF &point) const
Definition table_zone.cpp:319
int getCardStackMapKey(int x, int y) const
Definition table_zone.h:236
void setActive(bool _active)
Definition table_zone.h:207
static const int MARGIN_BOTTOM
Definition table_zone.h:39
static int clampValidTableRow(const int row)
Definition table_zone.cpp:448
int width
Definition table_zone.h:70
static const int STACKED_CARD_OFFSET_Y
Definition table_zone.h:52
static constexpr qreal shimmerDurationMs
Definition table_zone.h:214
void handleDropEventByGrid(const QList< CardDragItem * > &dragItems, CardZoneLogic *startZone, const QPoint &gridPoint)
Definition table_zone.cpp:180
void triggerDamageShimmer()
Definition table_zone.cpp:51
QMap< int, int > cardStackWidth
Definition table_zone.h:77
static const int PADDING_Y
Definition table_zone.h:41
void updateBg()
Definition table_zone.cpp:46
static const QColor FADE_MASK
Definition table_zone.h:63
static const int PADDING_X
Definition table_zone.h:40
void setMirrored(bool isMirrored)
Definition table_zone.cpp:81
void paintZoneOutline(QPainter *painter)
Definition table_zone.cpp:137
static int tableRowToGridY(int tableRow)
Definition table_zone.cpp:459
static const int TABLEROWS
Definition table_zone.h:31
bool mirrored
Definition table_zone.h:88
static const QColor GRADIENT_COLOR
Definition table_zone.h:64
static const int STACKED_CARD_OFFSET_X
Definition table_zone.h:51
int height
Definition table_zone.h:71
void resizeToContents()
Definition table_zone.cpp:283
static const int MARGIN_LEFT
Definition table_zone.h:36
void computeCardStackWidths()
Definition table_zone.cpp:325
qreal getWidth() const
Definition table_zone.h:203
QRectF boundingRect() const override
Definition table_zone.cpp:76
QPixmap backgroundPixelMap
Definition table_zone.h:82
bool animationEvent() override
Decays the damage shimmer by one timer tick.
Definition table_zone.cpp:65
QElapsedTimer shimmerClock
Definition table_zone.h:216
QPointF closestGridPoint(const QPointF &point) override
Definition table_zone.cpp:435
TableZone(TableZoneLogic *_logic, bool mirrored, QGraphicsItem *parent=nullptr)
Definition table_zone.cpp:27
int getMinimumWidth() const
Definition table_zone.h:185
void handleDropEvent(const QList< CardDragItem * > &dragItems, CardZoneLogic *startZone, const QPoint &dropPoint) override
Definition table_zone.cpp:173
void paintLandDivider(QPainter *painter)
Definition table_zone.cpp:161
static const int MIN_WIDTH
Definition table_zone.h:46
bool active
Definition table_zone.h:87
static const int BOX_LINE_WIDTH
Definition table_zone.h:57
void toggleTapped()
Definition table_zone.cpp:250
QPointF mapFromGrid(QPoint gridPoint) const
Definition table_zone.cpp:359
static const int MARGIN_RIGHT
Definition table_zone.h:37
static const QColor GRADIENT_COLORLESS
Definition table_zone.h:65
qreal damageShimmerAlpha
Definition table_zone.h:217
static const QColor BACKGROUND_COLOR
Definition table_zone.h:62
int currentMinimumWidth
Definition table_zone.h:72
bool playmatActive
Definition table_zone.h:89
void onPlaymatChanged(bool active)
Definition table_zone.cpp:121
void setWidth(qreal _width)
Definition table_zone.h:189
QPoint mapToGrid(const QPointF &mapPoint) const
Definition table_zone.cpp:387
bool isInverted() const
Definition table_zone.cpp:87
static const int MARGIN_TOP
Definition table_zone.h:38
constexpr int WIDTH
Card width in pixels.
Definition card_dimensions.h:16
Base class for zones where cards are laid out and individually interactable.