#ifndef EQUIPMENT_HPP_INCLUDED #define EQUIPMENT_HPP_INCLUDED #include "../../../Game/Interactable/Item.hpp" #include #include #include #include /** @addtogroup GameTabs * @{ */ class Equipment { public: typedef enum SLOT { HEAD, CAPE, NECK, WEAPON, BODY, SHIELD, LEGS, HANDS, FEET, RING, AMMO } SLOT; static bool IsOpen(); static bool Open(); static bool IsEmpty(); static std::vector GetItemIDs(); static std::vector GetItemNames(); static std::vector GetItemAmounts(); static std::vector GetItems(); static std::vector GetItems(std::int32_t ID); static std::vector GetItems(const std::string& Name); static std::vector GetItems(const std::vector& Slots); static std::vector GetItems(const std::vector& IDs); static std::vector GetItems(const std::vector& Names); static std::vector GetItems(const std::function& Filter); static Interactable::Item GetItem(); static Interactable::Item GetItem(SLOT Slot); static Interactable::Item GetItem(std::int32_t ID); static Interactable::Item GetItem(const std::string& Name); static Interactable::Item GetItem(const std::vector& IDs); static Interactable::Item GetItem(const std::vector& Names); static Interactable::Item GetItem(const std::function& Filter); static std::int32_t Count(SLOT Slot); static std::int32_t Count(std::int32_t ID); static std::int32_t Count(const std::string& Name); static std::int32_t Count(const Interactable::Item& Item); static std::int32_t Count(const std::vector& IDs); static std::int32_t Count(const std::vector& Names); static std::int32_t Count(const std::vector& Items); static SLOT GetSlotOf(std::int32_t ID); static SLOT GetSlotOf(const std::string& Name); static bool Contains(std::int32_t ID); static bool Contains(const std::string& Name); static bool Contains(const Interactable::Item& Item); static bool Contains(const std::vector& IDs); // true if all items are found at least once static bool Contains(const std::vector& Names); // true if all items are found at least once static bool Contains(const std::vector& Items); static bool ContainsAny(const std::vector& IDs); static bool ContainsAny(const std::vector& Names); static bool ContainsAny(const std::vector& Items); static bool ContainsOnly(std::int32_t ID); static bool ContainsOnly(const std::string& Name); static bool ContainsOnly(const Interactable::Item& Item); static bool ContainsOnly(const std::vector& IDs); static bool ContainsOnly(const std::vector& Names); static bool ContainsOnly(const std::vector& Items); static bool Unequip(std::int32_t ID); static bool Unequip(const std::string& Name); static bool Unequip(const Interactable::Item& Item); }; /** @} */ #endif // EQUIPMENT_HPP_INCLUDED