67 lines
2.0 KiB
C++
67 lines
2.0 KiB
C++
#include "DiamondTrap.hpp"
|
|
#include "ClapTrap.hpp"
|
|
#include "ScavTrap.hpp"
|
|
#include "FragTrap.hpp"
|
|
#include <iostream>
|
|
#include <string>
|
|
|
|
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;
|
|
} |