#pragma once #include "components.hpp" #include #include "levelmanager.hpp" namespace components { using namespace nlohmann; struct InventoryItem { int count; json data; }; struct Inventory { int gold=0; LightSource light{0, 0}; std::vector items{}; size_t count() { return items.size(); } void add(InventoryItem item); bool decrease(size_t at, int count); bool has_item(size_t at); InventoryItem& get(size_t at); int item_index(std::string id); void erase_item(size_t at); std::pair use(GameLevel &level, size_t at); }; }