aboutsummaryrefslogtreecommitdiff
path: root/src/item.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/item.h')
-rw-r--r--src/item.h24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/item.h b/src/item.h
index f8b2c87..a415947 100644
--- a/src/item.h
+++ b/src/item.h
@@ -3,25 +3,31 @@
#include "jsonable.h"
#include <memory>
-namespace item{
+namespace item {
class Item : public Jsonable {
public:
static std::shared_ptr<Item> create(const nlohmann::json& data);
- virtual ~Item();
+ virtual ~Item() {}
- virtual std::string getName(void) const;
- virtual int getCost(void) const;
- virtual double getWeight(void) const;
+ std::string getName(void) const {return name;}
+ std::string getType(void) const {return type;}
+ virtual std::string getText(void) const {return text;}
- virtual nlohmann::json toJson(void) const;
+ virtual nlohmann::json toJson(void) const {
+ return nlohmann::json({
+ {"name", name},
+ {"type", type},
+ {"text", text}
+ });
+ }
protected:
- Item(const nlohmann::json& data);
+ Item(const nlohmann::json& data) : name(data["name"]), type(data["type"]), text(data["text"]) {};
private:
const std::string name;
- const int cost;
- const double weight;
+ const std::string type;
+ const std::string text;
};
}