#include "ScavTrap.hpp" /* * assign values for default or secondary constructors */ void ScavTrap::assignValues( ScavTrap & src ) { src._class = "ScavTrap"; src._hit = 100; src._energy = 50; src._attack = 20; } /* * default constructor */ ScavTrap::ScavTrap() { assignValues(*this); std::cout << _class << " " << " default construction with number " << _number << "\n"; return; } /* * parameters constructor */ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) { assignValues(*this); std::cout << _class << " " << _name << " named creation with number " << _number << "\n"; return; } /* * destructor */ ScavTrap::~ScavTrap( void ) { std::cout << _class << " " << _name << " destructed\n"; return; } /* * special capacity */ void ScavTrap::guardGate() { std::cout << _class << " " << _name << " entered special mode Gate Keeper\n"; } /* * copy constructor */ ScavTrap::ScavTrap( ScavTrap const & src ) { *this = src; std::cout << _class << " " << _name << " copied\n"; return; } /* * assignement operator */ ScavTrap & ScavTrap::operator=( ScavTrap const & rhs ) { if ( this != &rhs ) { this->_hit = rhs.getHit(); this->_energy = rhs.getEnergy(); this->_attack = rhs.getAttack(); this->_class = rhs.getClass(); this->_name = rhs.getName(); this->_number = rhs.getNumber(); } std::cout << _class << " " << _name << " assigned\n"; return *this; }