#ifndef PLAYER_H #define PLAYER_H #include "actor.h" class Player : public Actor, public std::enable_shared_from_this { public: explicit Player(); virtual ~Player() override; virtual void commitAction() override; virtual void moveToLocation(const std::shared_ptr& location) override; virtual bool isLocationVisited(const std::shared_ptr& location) const override; virtual void giveItem(const std::shared_ptr& item) override; virtual void useItem(const std::shared_ptr& item) override; virtual bool hasItem(const std::shared_ptr& item) const override; virtual void readyItem(const std::shared_ptr& item) override; virtual bool isItemReady(const std::shared_ptr& item) const override; private: std::string showInventory() const; void findItemToReady(const std::string &label); }; #endif // PLAYER_H