From dfce4d0398a8bafbb7ad7a31345af181c0269c09 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Apr 2021 15:23:23 -0400 Subject: Added spells --- src/item.cc | 36 +++++------------------------------- 1 file changed, 5 insertions(+), 31 deletions(-) (limited to 'src/item.cc') diff --git a/src/item.cc b/src/item.cc index 0aad620..f602be2 100644 --- a/src/item.cc +++ b/src/item.cc @@ -10,39 +10,13 @@ using namespace std; typedef nlohmann::json json; namespace item { + shared_ptr Item::create(const json& data) { - auto dataMap = (map) data; - if(dataMap.contains("damage")) { - return shared_ptr(new Weapon(data)); - } else if(dataMap.contains("ac")) { - return shared_ptr(new Armor(data)); + if(data["type"] == "weapon") { + return utils::loadDFromJson(data); + } else if(data["type"] == "armor") { + return utils::loadDFromJson(data); } return shared_ptr(new Item(data)); } - - Item::Item(const json& data) : name(data["name"]), cost(data["cost"]), weight(data["weight"]) {}; - - //Item::Item(const std::string& name, int cost, double weight) : name(name), cost(cost), weight(weight) {}; - - Item::~Item() {} - - string Item::getName() const { - return name; - } - - int Item::getCost() const { - return cost; - } - - double Item::getWeight() const { - return weight; - } - - json Item::toJson() const { - return json({ - {"name", name}, - {"cost", cost}, - {"weight", weight} - }); - } } -- cgit v1.2.3