39 lines
1.3 KiB
C++
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);
|
|
|
|
};
|