CPP04/ex03/inc/AMateria.hpp
2025-04-14 22:42:37 +02:00

34 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/14 22:35:00 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
#pragma once
#include <string>
#include "ICharacter.hpp"
class AMateria
{
protected:
std::string type;
public:
AMateria() = default;
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);
};