CPP04/ex03/inc/AMateria.hpp
2025-04-17 14:05:53 +02:00

39 lines
1.3 KiB
C++

/* ************************************************************************** */
/* */
/* :::::::: */
/* AMateria.hpp :+: :+: */
/* +:+ */
/* By: whaffman <whaffman@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/04/14 22:12:51 by whaffman #+# #+# */
/* Updated: 2025/04/17 13:41:47 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
#pragma once
#include <string>
#include "ICharacter.hpp"
class ICharacter;
class AMateria
{
protected:
std::string type;
public:
AMateria();
AMateria(AMateria const &other);
AMateria(std::string const &type);
virtual ~AMateria();
AMateria &operator=(AMateria const &other);
std::string const &getType() const; // Returns the materia type
virtual AMateria *clone() const = 0;
virtual void use(ICharacter &target);
};