9#include <QElapsedTimer>
10#include <QGraphicsItem>
11#include <QPainterPath>
13#include <QSharedPointer>
16class QGraphicsSceneMouseEvent;
22 Q_INTERFACES(QGraphicsItem)
43 QSharedPointer<const ArrowData>
data;
56 [[nodiscard]]
int type()
const override
70 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget)
override;
75 [[nodiscard]] QPainterPath
shape()
const override
85 return data->creatorId;
Interface for scene items driven by GameScene's shared animation timer.
QMetaObject::Connection positionConnection
Definition arrow_item.h:125
PlayerLogic * player
Definition arrow_item.h:123
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition arrow_item.cpp:478
ArrowAttachItem(ArrowTarget *_startItem)
Definition arrow_item.cpp:461
void addChildArrow(ArrowAttachItem *child)
Definition arrow_item.cpp:473
QList< ArrowAttachItem * > childArrows
Definition arrow_item.h:124
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition arrow_item.cpp:521
void attachCards(CardItem *startCard, const CardItem *targetCard)
Definition arrow_item.cpp:553
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition arrow_item.cpp:344
QList< ArrowDragItem * > childArrows
Definition arrow_item.h:107
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition arrow_item.cpp:392
QMetaObject::Connection positionConnection
Definition arrow_item.h:108
void addChildArrow(ArrowDragItem *child)
Definition arrow_item.cpp:339
PlayerLogic * player
Definition arrow_item.h:105
int deleteInPhase
Definition arrow_item.h:106
ArrowDragItem(PlayerLogic *_owner, ArrowTarget *_startItem, const QColor &_color, int _deleteInPhase)
Definition arrow_item.cpp:328
ArrowTarget * getStartItem() const
Definition arrow_item.h:87
void setTargetLocked(bool _targetLocked)
Definition arrow_item.h:95
qreal strokeDurationMs
Definition arrow_item.h:34
static constexpr qreal glowExtent
Definition arrow_item.h:40
qreal glowFadeDurationMs
Definition arrow_item.h:35
QElapsedTimer animationClock
Definition arrow_item.h:33
void onTargetDestroyed()
Definition arrow_item.cpp:76
QRectF boundingRect() const override
Definition arrow_item.h:71
int type() const override
Definition arrow_item.h:56
int getCreatorId() const
Definition arrow_item.h:83
QPainterPath bodyPath
Definition arrow_item.h:28
void startDrawAnimation()
Definition arrow_item.cpp:188
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition arrow_item.cpp:306
QPainterPath centerLine
Definition arrow_item.h:31
qreal glowAlpha
Definition arrow_item.h:37
bool fullColor
Definition arrow_item.h:47
QPainterPath path
Definition arrow_item.h:27
QPointer< ArrowTarget > startItem
Definition arrow_item.h:44
int getId() const
Definition arrow_item.h:79
ArrowItem(QSharedPointer< const ArrowData > _data, ArrowTarget *_startItem, ArrowTarget *_targetItem)
Definition arrow_item.cpp:44
ArrowTarget * getTargetItem() const
Definition arrow_item.h:91
QSharedPointer< const ArrowData > data
Definition arrow_item.h:43
bool targetLocked
Definition arrow_item.h:46
qreal drawProgress
Definition arrow_item.h:36
QPainterPath shape() const override
Definition arrow_item.h:75
QPainterPath headPath
Definition arrow_item.h:29
bool animationStarted
Definition arrow_item.h:38
~ArrowItem() override
Definition arrow_item.cpp:69
void updatePath()
Definition arrow_item.cpp:97
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition arrow_item.cpp:236
@ Type
Definition arrow_item.h:54
QPainterPath shaftOutlinePath
Definition arrow_item.h:30
qreal headBaseFraction
Definition arrow_item.h:32
QPointer< ArrowTarget > targetItem
Definition arrow_item.h:45
bool animationEvent() override
Advances the item's animation by one timer tick.
Definition arrow_item.cpp:210
void delArrow()
Definition arrow_item.cpp:89
void requestDeletion(int creatorId, int id)
Definition arrow_target.h:18
Definition card_item.h:27
Definition animated_item.h:15
Definition player_logic.h:65
@ typeArrow
Definition graphics_item_type.h:20