Declares the ICharacter interface.
Represents an abstract base class for all magical materias.
virtual AMateria & operator=(const AMateria &rhs)
Copy assignment operator for AMateria. Assigns the type from another AMateria object....
virtual ~AMateria()
Destroys the AMateria object.
virtual AMateria * clone() const =0
std::string const & getType() const
Gets the type of the materia.
virtual void use(ICharacter &target)
Uses the materia on a target character. This is a virtual function with a base implementation that pr...
An interface for any character that can interact with Materias.