#include "DiamondTrap.hpp" #include "ClapTrap.hpp" #include "ScavTrap.hpp" #include "FragTrap.hpp" #include #include DiamondTrap::DiamondTrap() : ClapTrap("NoName"), _name("NoName") { _hitpoints = FragTrap::_hitpoints; _energy_points = ScavTrap::_energy_points; _attack_damage = FragTrap::_attack_damage; std::cout << COLOR11 << "Diamondtrap " << COLOR_RESET << _name << " has been created" << std::endl; status(); } DiamondTrap::DiamondTrap(std::string name) : ClapTrap(name + "_clap_name"), _name(name) { _hitpoints = FragTrap::_hitpoints; _energy_points = ScavTrap::_energy_points; _attack_damage = FragTrap::_attack_damage; std::cout << COLOR11 << "Diamondtrap " << COLOR_RESET << _name << " has been created" << std::endl; status(); } DiamondTrap::DiamondTrap(DiamondTrap const &src) { *this = src; std::cout << COLOR11 << "Diamondtrap " << COLOR_RESET << _name << " has been created by copy constructor" << std::endl; status(); } DiamondTrap::~DiamondTrap() { std::cout << COLOR11 << "Diamondtrap " << COLOR_RESET << _name << " has been destroyed" << std::endl; status(); } DiamondTrap &DiamondTrap::operator=(DiamondTrap const &rhs) { if (this == &rhs) return (*this); _name = rhs._name; _hitpoints = rhs._hitpoints; _energy_points = rhs._energy_points; _attack_damage = rhs._attack_damage; ClapTrap::_name = rhs.ClapTrap::_name; std::cout << COLOR11 << "Diamondtrap " << COLOR_RESET << _name << " has been created by assignment operator" << std::endl; status(); return (*this); } void DiamondTrap::whoAmI(void) { std::cout << COLOR11 << "Diamondtrap " << COLOR_RESET << "I am " << _name << ", but my ClapTRap friends call me: " << ClapTrap::_name << std::endl; status(); } void DiamondTrap::status() const { std::cout << COLOR11 << "Diamondtrap " << COLOR10 << _name << " has " << _hitpoints << " hitpoints, " << _energy_points << " energy points and " << _attack_damage << " attack damage." << std::endl; }