DiamondTrap.cpp 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /* ************************************************************************** */
  2. /* */
  3. /* ::: :::::::: */
  4. /* DiamondTrap.cpp :+: :+: :+: */
  5. /* +:+ +:+ +:+ */
  6. /* By: bchanot <bchanot@42.fr> +#+ +:+ +#+ */
  7. /* +#+#+#+#+#+ +#+ */
  8. /* Created: 2025/12/18 14:57:48 by bchanot #+# #+# */
  9. /* Updated: 2025/12/18 15:40:14 by bchanot ### ########.fr */
  10. /* */
  11. /* ************************************************************************** */
  12. #include "DiamondTrap.hpp"
  13. /*
  14. ** ------------------------------- CONSTRUCTOR --------------------------------
  15. */
  16. DiamondTrap::DiamondTrap() : ClapTrap("Default_clap_name"), ScavTrap(), FragTrap(), _name("Default")
  17. {
  18. this->_hitPoints = FragTrap::_hitPoints;
  19. this->_energyPoints = ScavTrap::_energyPoints;
  20. this->_attackDamage = FragTrap::_attackDamage;
  21. std::cout << "DiamondTrap " << this->_name << " has been created" << std::endl;
  22. }
  23. DiamondTrap::DiamondTrap( std::string const & name ) : ClapTrap(name + "_clap_name"), ScavTrap(name), FragTrap(name), _name(name)
  24. {
  25. this->_hitPoints = FragTrap::_hitPoints;
  26. this->_energyPoints = ScavTrap::_energyPoints;
  27. this->_attackDamage = FragTrap::_attackDamage;
  28. std::cout << "DiamondTrap " << this->_name << " has been created" << std::endl;
  29. }
  30. DiamondTrap::DiamondTrap( DiamondTrap const & src ) : ClapTrap(src), ScavTrap(src), FragTrap(src)
  31. {
  32. std::cout << "Copy of DiamondTrap " << this->_name << " has been created" << std::endl;
  33. }
  34. /*
  35. ** -------------------------------- DESTRUCTOR --------------------------------
  36. */
  37. DiamondTrap::~DiamondTrap()
  38. {
  39. std::cout << "DiamondTrap " << this->_name << " has been destroyed !" << std::endl;
  40. }
  41. /*
  42. ** --------------------------------- OVERLOAD ---------------------------------
  43. */
  44. DiamondTrap & DiamondTrap::operator=( DiamondTrap const & rhs )
  45. {
  46. if (&rhs == this)
  47. return *this;
  48. this->ClapTrap::_name = rhs.ClapTrap::_name;
  49. this->_name = rhs._name;
  50. this->_hitPoints = rhs._hitPoints;
  51. this->_energyPoints = rhs._energyPoints;
  52. this->_attackDamage = rhs._attackDamage;
  53. return *this;
  54. }
  55. std::ostream & operator<<( std::ostream & o, DiamondTrap const & i )
  56. {
  57. (void)i;
  58. //o << "Value = " << i.getValue();
  59. return o;
  60. }
  61. /*
  62. ** --------------------------------- METHODS ----------------------------------
  63. */
  64. void DiamondTrap::whoAmI(void) const {
  65. std::cout << "DiamondTrap Say : Hello i am " << this->_name << std::endl;
  66. }
  67. /*
  68. ** --------------------------------- ACCESSOR ---------------------------------
  69. */
  70. /* ************************************************************************** */