ICharacter.hpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* ************************************************************************** */
  2. /* */
  3. /* ::: :::::::: */
  4. /* ICharacter.hpp :+: :+: :+: */
  5. /* +:+ +:+ +:+ */
  6. /* By: bchanot <bchanot@42.fr> +#+ +:+ +#+ */
  7. /* +#+#+#+#+#+ +#+ */
  8. /* Created: 2025/12/18 19:26:25 by bchanot #+# #+# */
  9. /* Updated: 2025/12/25 23:44:28 by bchanot ### ########.fr */
  10. /* */
  11. /* ************************************************************************** */
  12. #ifndef ICHARACTER_HPP
  13. # define ICHARACTER_HPP
  14. # include <iostream>
  15. # include <string>
  16. class AMateria;
  17. class ICharacter
  18. {
  19. public:
  20. virtual ~ICharacter() {}
  21. virtual std::string const & getName() const = 0;
  22. virtual void equip(AMateria *m) = 0;
  23. virtual void unequip(int idx) = 0;
  24. virtual void use(int idx, ICharacter& target) = 0;
  25. ICharacter & operator=( ICharacter const & rhs ) = delete;
  26. };
  27. std::ostream & operator<<( std::ostream & o, ICharacter const & i );
  28. #endif /* ****************************************************** ICHARACTER_H */