/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ScavTrap.cpp :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: aortigos health = 100; this->energy = 50; this->attackDamage = 20; std::cout << "ScavTrap default constructor called " << this->name << std::endl; } ScavTrap::ScavTrap(std::string name) : ClapTrap(name) { this->health = 100; this->energy = 50; this->attackDamage = 20; std::cout << "ScavTrap constructor for " << this->name << std::endl; } ScavTrap::ScavTrap(const ScavTrap &other) : ClapTrap(other), guarding_gate(other.guarding_gate) { } ScavTrap& ScavTrap::operator=(const ScavTrap &other) { if (this != &other) { this->name = other.name; this->health = other.health; this->energy = other.energy; this->attackDamage = other.attackDamage; } return (*this); } ScavTrap::~ScavTrap() { std::cout << "ScavTrap destructor called for " << this->name << std::endl; } void ScavTrap::attack(const std::string &target) { if (this->health > 0 && this->energy > 0) { std::cout << "ScavTrap " << this->name << " attacks " << target << ", causing " << this->attackDamage << " points of damage!" << std::endl; this->energy -= 1; } else { std::cout << "ScavTrap " << this->name << " cant attack anymore..." << std::endl; } } void ScavTrap::guardGate() { if (!this->guarding_gate) { this->guarding_gate = true; std::cout << "ScavTrap " << this->name << " is in Gate keeper mode" << std::endl; } else { std::cout << "ScavTrap " << this->name << " is already in Gate keeper mode" << std::endl; } }