#pragma once #include #include "entry.h" #include namespace entry { struct itemImpl; class Item : public Entry { public: Item(); static std::shared_ptr create(const nlohmann::json& data); virtual ~Item() {} virtual int getCost(void) const; virtual double getWeight(void) const; virtual std::string getCostWeightText() const; virtual std::string getText() const override; virtual std::string getText(const creature::Creature& c) const override; NLOHMANN_FRIEND_DECLARES(Item); private: std::shared_ptr data; }; }