Declares the AMateria abstract base class.
Declares the ICharacter interface.
Represents an abstract base class for all magical materias.
Represents a character capable of equipping and using Materias.
Character & operator=(const Character &other)
Copy assignment operator for Character. Assigns values from another Character object,...
bool isMateriaEquipped(int idx) const
Checks if a Materia is equipped at a specific inventory slot.
void unequip(int idx)
Unequips a Materia from a specific inventory slot. The Materia object itself is NOT deleted,...
virtual ~Character()
Destroys the Character object. Deallocates all dynamically allocated Materia objects currently in the...
AMateria * getMateriaAtSlot(int idx) const
Gets a pointer to the Materia at a specific inventory slot.
void use(int idx, ICharacter &target)
Uses the Materia at a specific inventory slot on a target character. Performs bounds checking and che...
std::string const & getName() const
Gets the name of the character.
void equip(AMateria *m)
Equips a Materia into the first available inventory slot (0-3). If the inventory is full,...
An interface for any character that can interact with Materias.