AlpacaLibrary/Include/Game/Interfaces/GameTabs/Equipment.hpp

94 lines
3.4 KiB
C++
Raw Permalink Normal View History

2017-12-25 23:49:48 +00:00
#ifndef EQUIPMENT_HPP_INCLUDED
#define EQUIPMENT_HPP_INCLUDED
2018-06-28 02:22:43 +00:00
#include "../../../Game/Interactable/Item.hpp"
2017-12-25 23:49:48 +00:00
#include <cstdint>
#include <vector>
#include <string>
2018-06-28 02:22:43 +00:00
#include <functional>
2017-12-25 23:49:48 +00:00
2018-12-27 18:17:09 +00:00
namespace Equipment
2017-12-25 23:49:48 +00:00
{
2018-12-27 18:17:09 +00:00
typedef enum SLOT
{
HEAD,
CAPE,
NECK,
WEAPON,
BODY,
SHIELD,
LEGS,
HANDS,
FEET,
RING,
AMMO
} SLOT;
2017-12-25 23:49:48 +00:00
2018-12-27 18:17:09 +00:00
bool IsOpen();
2019-05-31 20:06:57 +00:00
bool Open(bool UseHotkey = false);
2018-12-27 18:17:09 +00:00
bool IsEmpty();
2019-05-28 16:34:51 +00:00
std::int32_t GetTabHotkey();
2017-12-25 23:49:48 +00:00
2018-12-27 18:17:09 +00:00
std::vector<int32_t> GetItemIDs();
std::vector<std::string> GetItemNames();
std::vector<std::int32_t> GetItemAmounts();
2017-12-25 23:49:48 +00:00
2018-12-27 18:17:09 +00:00
std::vector<Interactable::Item> GetItems();
std::vector<Interactable::Item> GetItems(std::int32_t ID);
2023-03-09 17:15:48 +00:00
std::vector<Interactable::Item> GetItems(const std::regex& Name);
2018-12-27 18:17:09 +00:00
std::vector<Interactable::Item> GetItems(const std::string& Name);
std::vector<Interactable::Item> GetItems(const std::vector<SLOT>& Slots);
std::vector<Interactable::Item> GetItems(const std::vector<std::int32_t>& IDs);
std::vector<Interactable::Item> GetItems(const std::vector<std::string>& Names);
std::vector<Interactable::Item> GetItems(const std::function<bool (const Interactable::Item&)>& Filter);
2017-12-25 23:49:48 +00:00
2018-12-27 18:17:09 +00:00
Interactable::Item GetItem(SLOT Slot);
Interactable::Item GetItem(std::int32_t ID);
2023-03-09 17:15:48 +00:00
Interactable::Item GetItem(const std::regex& Name);
2018-12-27 18:17:09 +00:00
Interactable::Item GetItem(const std::string& Name);
Interactable::Item GetItem(const std::vector<std::int32_t>& IDs);
Interactable::Item GetItem(const std::vector<std::string>& Names);
Interactable::Item GetItem(const std::function<bool (const Interactable::Item&)>& Filter);
2017-12-25 23:49:48 +00:00
2018-12-27 18:17:09 +00:00
std::int32_t Count(SLOT Slot);
std::int32_t Count(std::int32_t ID);
2023-03-09 17:15:48 +00:00
std::int32_t Count(const std::regex& Name);
2018-12-27 18:17:09 +00:00
std::int32_t Count(const std::string& Name);
std::int32_t Count(const Interactable::Item& Item);
std::int32_t Count(const std::vector<std::int32_t>& IDs);
std::int32_t Count(const std::vector<std::string>& Names);
std::int32_t Count(const std::vector<Interactable::Item>& Items);
2018-06-28 02:22:43 +00:00
2018-12-27 18:17:09 +00:00
SLOT GetSlotOf(std::int32_t ID);
2023-03-09 17:15:48 +00:00
SLOT GetSlotOf(const std::regex& Name);
2018-12-27 18:17:09 +00:00
SLOT GetSlotOf(const std::string& Name);
2017-12-25 23:49:48 +00:00
2018-12-27 18:17:09 +00:00
bool Contains(std::int32_t ID);
2023-03-09 17:15:48 +00:00
bool Contains(const std::regex& Name);
2018-12-27 18:17:09 +00:00
bool Contains(const std::string& Name);
bool Contains(const Interactable::Item& Item);
bool Contains(const std::vector<std::int32_t>& IDs); // true if all items are found at least once
bool Contains(const std::vector<std::string>& Names); // true if all items are found at least once
bool Contains(const std::vector<Interactable::Item>& Items);
2017-12-25 23:49:48 +00:00
2018-12-27 18:17:09 +00:00
bool ContainsAny(const std::vector<std::int32_t>& IDs);
bool ContainsAny(const std::vector<std::string>& Names);
bool ContainsAny(const std::vector<Interactable::Item>& Items);
2018-01-18 02:45:28 +00:00
2018-12-27 18:17:09 +00:00
bool ContainsOnly(std::int32_t ID);
2023-03-09 17:15:48 +00:00
bool ContainsOnly(const std::regex& Name);
2018-12-27 18:17:09 +00:00
bool ContainsOnly(const std::string& Name);
bool ContainsOnly(const Interactable::Item& Item);
bool ContainsOnly(const std::vector<std::int32_t>& IDs);
bool ContainsOnly(const std::vector<std::string>& Names);
bool ContainsOnly(const std::vector<Interactable::Item>& Items);
2017-12-25 23:49:48 +00:00
2019-05-31 20:06:57 +00:00
bool Unequip(SLOT Slot);
2018-12-27 18:17:09 +00:00
bool Unequip(std::int32_t ID);
2023-03-09 17:15:48 +00:00
bool Unequip(const std::regex& Name);
2018-12-27 18:17:09 +00:00
bool Unequip(const std::string& Name);
bool Unequip(const Interactable::Item& Item);
2018-12-31 21:52:58 +00:00
}
2017-12-25 23:49:48 +00:00
#endif // EQUIPMENT_HPP_INCLUDED