Rehti MMORPG  1.0.0
Rehti MMORPG is a free and open source MMORPG game.
Equipment.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "EquippableItem.hpp"
4 
5 #include <map>
6 #include <memory>
7 
8 class Entity;
9 
13 class Equipment
14 {
15 
16 public:
17  Equipment(Entity* owner);
18 
24  bool equip(std::shared_ptr<EquippableItem> item);
25 
30  void unequip(Slot slotToUnequip);
31 
37 
42  std::vector<std::shared_ptr<EquippableItem>> getAllEquipment();
43 
48  std::map<Slot, std::shared_ptr<EquippableItem>>& getSlotMap();
49 
50 private:
52 
53  std::map<Slot, std::shared_ptr<EquippableItem>> slotMapM;
54 
55  std::shared_ptr<EquippableItem> headSlotM = nullptr;
56 
57  std::shared_ptr<EquippableItem> neckSlotM = nullptr;
58 
59  std::shared_ptr<EquippableItem> topSlotM = nullptr;
60 
61  std::shared_ptr<EquippableItem> mainHandSlotM = nullptr;
62 
63  std::shared_ptr<EquippableItem> offHandSlotM = nullptr;
64 
65  std::shared_ptr<EquippableItem> bottomSlotM = nullptr;
66 
67  std::shared_ptr<EquippableItem> bootsSlotM = nullptr;
68 
69  std::shared_ptr<EquippableItem> glovesSlotM = nullptr;
70 
71  std::shared_ptr<EquippableItem> ringSlotM = nullptr;
72 };
Slot
Definition: ItemReader.hpp:39
Base pure virtual Entity class. Different types of enities inherit this.
Definition: Entity.hpp:17
Class for representing the items an entity has equipped.
Definition: Equipment.hpp:14
std::shared_ptr< EquippableItem > bottomSlotM
Definition: Equipment.hpp:65
std::vector< std::shared_ptr< EquippableItem > > getAllEquipment()
Get all equipped items in vector.
Definition: Equipment.cpp:34
void unequip(Slot slotToUnequip)
Unequip item from slot.
Definition: Equipment.cpp:68
ItemStats getEquipmentStats()
Get combined stats of equipped items.
Definition: Equipment.cpp:20
Equipment(Entity *owner)
Definition: Equipment.cpp:5
std::shared_ptr< EquippableItem > mainHandSlotM
Definition: Equipment.hpp:61
std::shared_ptr< EquippableItem > ringSlotM
Definition: Equipment.hpp:71
std::map< Slot, std::shared_ptr< EquippableItem > > slotMapM
Definition: Equipment.hpp:53
std::shared_ptr< EquippableItem > offHandSlotM
Definition: Equipment.hpp:63
std::shared_ptr< EquippableItem > topSlotM
Definition: Equipment.hpp:59
Entity * ownerM
Definition: Equipment.hpp:51
bool equip(std::shared_ptr< EquippableItem > item)
Equip an EquippableItem to the proper slot.
Definition: Equipment.cpp:52
std::shared_ptr< EquippableItem > bootsSlotM
Definition: Equipment.hpp:67
std::shared_ptr< EquippableItem > glovesSlotM
Definition: Equipment.hpp:69
std::shared_ptr< EquippableItem > neckSlotM
Definition: Equipment.hpp:57
std::shared_ptr< EquippableItem > headSlotM
Definition: Equipment.hpp:55
std::map< Slot, std::shared_ptr< EquippableItem > > & getSlotMap()
Get the slot map which maps item slots to the items that are equipped in the slots.
Definition: Equipment.cpp:47
Definition: ItemReader.hpp:9