#pragma once #include "entry.h" #include namespace entry { class Spell : public Entry { public: Spell() {} virtual ~Spell() {} int getLevel(void) const {return level;} std::string getSchool(void) const {return getType();} std::vector getClasses(void) const {return classes;} std::string getCastingTime(void) const {return casting_time;} std::string getRange(void) const {return range;} std::string getComponents(void) const {return components;} std::string getDuration(void) const {return duration;} std::string getText(void) const override; NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(Entry, Spell, level, classes, casting_time, range, components, duration); private: int level; std::vector classes; std::string casting_time; std::string range; std::string components; std::string duration; }; }