cpp/cpp03/ex03/DiamondTrap.cpp
2022-08-03 18:24:07 +02:00

59 lines
2.0 KiB
C++

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* DiamondTrap.cpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/08/03 15:32:49 by apommier #+# #+# */
/* Updated: 2022/08/03 18:11:10 by apommier ### ########.fr */
/* */
/* ************************************************************************** */
#include "DiamondTrap.hpp"
DiamondTrap::DiamondTrap()
{
std::cout << "DiamondTrap Default constructor called" << std::endl;
}
DiamondTrap::DiamondTrap(std::string name)
{
ClapTrap::_name = name + "_clap_name";
std::cout << "DiamondTrap Name constructor called" << std::endl;
this->_name = name;
this->_hitPoints = 100;
this->_energyPoints = 50;
this->_attackDamage = 30;
}
DiamondTrap::DiamondTrap(const DiamondTrap& copy)
{
std::cout << "DiamondTrap Copy constructor called" << std::endl;
*this = copy;
}
DiamondTrap::~DiamondTrap()
{
std::cout << "DiamondTrap " << this->_name << " Destructor called" << std::endl;
}
void DiamondTrap::attack(const std::string& target)
{
ScavTrap::attack(target);
}
void DiamondTrap::whoAmI()
{
std::cout << "My name is " << this->_name << " and my parent class name is " << ClapTrap::_name << std::endl;
}
DiamondTrap &DiamondTrap::operator=(const DiamondTrap& rhs)
{
std::cout << "DiamondTrap " << this->_name << " Assignation operator called" << std::endl;
ClapTrap::operator=(rhs);
ScavTrap::operator=(rhs);
FragTrap::operator=(rhs);
return *this;
}