diff options
Diffstat (limited to 'src/spell.h')
-rw-r--r-- | src/spell.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/spell.h b/src/spell.h new file mode 100644 index 0000000..d493d5d --- /dev/null +++ b/src/spell.h @@ -0,0 +1,47 @@ +#pragma once +#include "json.hpp" +#include "jsonable.h" + +namespace spell { + class Spell : public Jsonable { + public: + Spell(const nlohmann::json& data) : name(data["name"]), level(data["level"]), school(data["school"]), classes(data["classes"]), castingTime(data["casting_time"]), range(data["range"]), components(data["components"]), duration(data["duration"]), text(data["text"]) {}; + virtual ~Spell() {}; + + std::string getName(void) const {return name;} + int getLevel(void) const {return level;} + std::string getSchool(void) const {return school;} + std::vector<std::string> getClasses(void) const {return classes;} + std::string getCastingTime(void) const {return castingTime;} + 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 {return text;} + + virtual nlohmann::json toJson(void) const { + /*return nlohmann::json({ + {"name", name}, + {"level", level}, + {"school", school}, + {"classes", classes}, + {"casting_time", castingTime}, + {"range", range}, + {"components", components}, + {"duration", duration}, + {"text", text} + });*/ + return nlohmann::json(name); + } + + private: + const std::string name; + const int level; + const std::string school; + const std::vector<std::string> classes; + const std::string castingTime; + const std::string range; + const std::string components; + const std::string duration; + const std::string text; + }; +} |