60 lines
1.2 KiB
C++
60 lines
1.2 KiB
C++
#ifndef CLAPTRAP_HPP
|
|
# define CLAPTRAP_HPP
|
|
|
|
# include <iostream>
|
|
|
|
# ifndef DEBUG
|
|
# define DEBUG 0
|
|
# endif
|
|
|
|
class ClapTrap
|
|
{
|
|
private:
|
|
// Attributes
|
|
static std::string const _defaultName;
|
|
static unsigned int const _defaultHitPoints;
|
|
static unsigned int const _defaultEnergyPoints;
|
|
static unsigned int const _defaultAttackDamages;
|
|
|
|
protected:
|
|
// Attributes
|
|
std::string _name;
|
|
unsigned int _hitPoints;
|
|
unsigned int _energyPoints;
|
|
unsigned int _attackDamages;
|
|
|
|
// Constructors
|
|
ClapTrap(
|
|
std::string const &name,
|
|
unsigned int const hitPoints,
|
|
unsigned int const energyPoints,
|
|
unsigned int const attackDamages);
|
|
|
|
public:
|
|
// Constructors
|
|
ClapTrap(std::string const &name = ClapTrap::_defaultName);
|
|
ClapTrap(ClapTrap const &src);
|
|
|
|
// Destructors
|
|
virtual ~ClapTrap(void);
|
|
|
|
// Accessors
|
|
std::string const &getName(void) const;
|
|
|
|
unsigned int getHitPoints(void) const;
|
|
unsigned int getEnergyPoints(void) const;
|
|
unsigned int getAttackDamages(void) const;
|
|
|
|
// Member functions
|
|
virtual void attack(std::string const &target);
|
|
void beRepaired(unsigned int const amount);
|
|
void takeDamage(unsigned int const amount);
|
|
|
|
// Operators
|
|
ClapTrap &operator=(ClapTrap const &rhs);
|
|
};
|
|
|
|
std::ostream &operator<<(std::ostream &o, ClapTrap const &rhs);
|
|
|
|
#endif
|