#ifndef CLAPTRAP_HPP
# define CLAPTRAP_HPP

#include <iostream>
#include <sstream>
#include <string>
#include <color.h>

class ClapTrap {

public:

	ClapTrap( std::string name );					// default/parametric constructor
	ClapTrap( ClapTrap const & src );				// copy constructor
	~ClapTrap( void );								// destructor

	ClapTrap &	operator=( ClapTrap const & rhs );	// assignement operator

	void	attack(const std::string & target);
	void	takeDamage(unsigned int amount);
	void	beRepaired(unsigned int amount);

	std::string	getName() const;
	int			getHit() const;
	int			getEnergy() const;
	int			getAttack() const;

protected:

	std::string const	_name;
	std::string 		_class;
	int					_hit;
	int					_energy;
	int					_attack;
	int					_number;

	int		_getNumber();
	void	_increaseNumber();

private:

	ClapTrap( void );								// default/parametric constructor

	static int	_totalNumber;

};

#endif

