#ifndef CREATURELIB_ITEM_HPP #define CREATURELIB_ITEM_HPP #include #include #include "../../GenericTemplates.cpp" #include "BattleItemCategory.hpp" #include "ItemCategory.hpp" namespace CreatureLib::Library { class Item { GetProperty(std::string, Name); GetProperty(ItemCategory, Category); GetProperty(BattleItemCategory, BattleCategory); GetProperty(int32_t, Price); private: std::unordered_set _flags; public: Item(std::string name, ItemCategory category, BattleItemCategory battleCategory, int32_t price, std::unordered_set flags); bool HasFlag(const std::string& flag) const; }; } #endif // CREATURELIB_ITEM_HPP