/* core/item.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_CORE_ITEM_H__ #define __INCLUDED_CORE_ITEM_H__ #include namespace core { /** * @brief a class of items * Examples are armor, cannons, commodities... */ class ItemClass { public: ItemClass(const char *label); inline const std::string &label() { return itemclass_label; } inline const std::string &name() { return itemclass_name; } private: std::string itemclass_label; std::string itemclass_name; }; /** * @brief a specific type of item in the game * Examples are tritanium hull armor, ion cannon, gems */ class ItemType { public: ItemType(const char *label); inline const std::string &label() { return itemtype_label; } inline const std::string &name() { return itemtype_name; } inline const float base_price() { return itemtype_baseprice; } private: std::string itemtype_label; std::string itemtype_name; ItemClass *itemtype_class; float itemtype_baseprice; }; } #endif