You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
910 B
C++

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