#pragma once #include "entry.h" #include namespace entry { struct spellImpl; class Spell : public Entry { public: Spell(); virtual ~Spell() {} int getLevel(void) const; std::string getSchool(void) const; std::vector getClasses(void) const; std::string getCastingTime(void) const; std::string getRange(void) const; std::string getComponents(void) const; std::string getDuration(void) const; std::string getText(void) const override; NLOHMANN_FRIEND_DECLARES(Spell); private: std::shared_ptr data; }; }