/* base/weapon.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_BASE_WEAPON_H__ #define __INCLUDED_BASE_WEAPON_H__ #include "core/info.h" namespace game { class Weapon : public core::Info { public: Weapon(); ~Weapon(); inline bool stackable() const { return weapon_stackable; } inline int level() const { return weapon_level; } void set_stackable(bool stackable); void set_level(const int level); /* --- static registry functions ---------------------------------- */ static Weapon *find(const std::string & label); static bool init(); static void done(); static void list(); static inline const core::InfoType *infotype() { return weapon_infotype; } private: static core::InfoType *weapon_infotype; int weapon_level; bool weapon_stackable; }; } // namespace game #endif // __INCLUDED_BASE_WEAPON_H__