#ifndef ARROWTARGET_H
#define ARROWTARGET_H

#include "abstractgraphicsitem.h"
#include <QList>

class Player;
class ArrowItem;

class ArrowTarget : public AbstractGraphicsItem {
    Q_OBJECT
protected:
    Player *owner;
private:
    bool beingPointedAt;
    QList<ArrowItem *> arrowsFrom, arrowsTo;
public:
    ArrowTarget(Player *_owner, QGraphicsItem *parent = 0);
    ~ArrowTarget();
    
    Player *getOwner() const { return owner; }
    
    void setBeingPointedAt(bool _beingPointedAt);
    bool getBeingPointedAt() const { return beingPointedAt; }
    
    const QList<ArrowItem *> &getArrowsFrom() const { return arrowsFrom; }
    void addArrowFrom(ArrowItem *arrow) { arrowsFrom.append(arrow); }
    void removeArrowFrom(ArrowItem *arrow) { arrowsFrom.removeAt(arrowsFrom.indexOf(arrow)); }
    
    const QList<ArrowItem *> &getArrowsTo() const { return arrowsTo; }
    void addArrowTo(ArrowItem *arrow) { arrowsTo.append(arrow); }
    void removeArrowTo(ArrowItem *arrow) { arrowsTo.removeAt(arrowsTo.indexOf(arrow)); }
};

#endif
