/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ScavTrap.cpp :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/11/27 12:53:46 by adjoly #+# #+# */ /* Updated: 2024/11/27 12:59:02 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "ScavTrap.hpp" #include "ClapTrap.hpp" ScavTrap::ScavTrap(void) : ClapTrap() { log("➕", "default constructor called"); } ScavTrap::~ScavTrap(void) { log("➖", "destructor called"); } ScavTrap::ScavTrap(std::string name) : ClapTrap(name) { log("➕", getName(), "constructor called"); } ScavTrap::ScavTrap(const ScavTrap &other) { *this = other; log("➕", getName(), "copy constructor called"); } ScavTrap &ScavTrap::operator=(const ScavTrap &cpy) { log("🟰", getName(), "copy assignement constructor called"); if (this != &cpy) { setName(cpy.getName()); setHealth(cpy.getHealth()); setEnergyPoints(cpy.getEnergyPoints()); setAttackDamage(cpy.getAttackDamage()); } return (*this); } void ScavTrap::attack(const std::string& target) { if (getHealth() == 0) { log("💀", getName(), "can't attack already dead"); return ; } else if (getEnergyPoints() == 0) { log("💤", getName(), "can't attack no energy left GO TO SLEEP!"); return ; } log("💥", getName(), "attacks " + target + " causing " + iToS(getAttackDamage()) + " points of damage!"); setEnergyPoints(getEnergyPoints() - 1); }