aboutsummaryrefslogtreecommitdiff
path: root/src/spell.h
blob: 2d9b24d3a25968e00f075a712f6594ba825b1413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once
#include "entry.h"
#include <nlohmann/json.hpp>

namespace entry {
    struct spellImpl;

    class Spell : public Entry {
        public:
            Spell();
            virtual ~Spell() {}

            int getLevel(void) const;
            std::string getSchool(void) const;
            std::vector<std::string> 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<spellImpl> data;
    };
}