/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   Character.hpp                                      :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: adjoly <adjoly@student.42angouleme.fr>     +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2024/12/10 14:59:12 by adjoly            #+#    #+#             */
/*   Updated: 2024/12/12 19:23:43 by adjoly           ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */

#pragma once

#include "AMateria.hpp"
#include "ICharacter.hpp"

#define ENV_SIZE 4

class Character : public ICharacter {
	private:
		std::string	_name;
		struct {
			AMateria	*obj;
			bool		equipped;
		} _materias[ENV_SIZE];
	public:
		Character(void);
		~Character(void);
		Character(std::string const);
		Character(const Character &);
		Character	&operator=(const Character &);

		std::string const	&getName(void) const;
		void				equip(AMateria *);
		void				unequip(int);
		void				use(int, ICharacter &);
};