#include "ScavTrap.hpp" void goAttack(ClapTrap & robot1, ClapTrap & robot2) { std::cout << "."; robot1.attack(robot2.getName()); std::cout << " "; robot2.takeDamage(robot1.getAttack()); std::cout << " "; robot2.beRepaired(robot1.getAttack()); } void goAttack(ScavTrap & robot1, ScavTrap & robot2) { std::cout << "."; robot1.attack(robot2.getName()); std::cout << " "; robot2.takeDamage(robot1.getAttack()); std::cout << " "; robot2.beRepaired(robot1.getAttack()); } void goAttack(ClapTrap & robot1, ScavTrap & robot2) { std::cout << "."; robot1.attack(robot2.getName()); std::cout << " "; robot2.takeDamage(robot1.getAttack()); std::cout << " "; robot2.beRepaired(robot1.getAttack()); } void goAttack(ScavTrap & robot1, ClapTrap & robot2) { std::cout << "."; robot1.attack(robot2.getName()); std::cout << " "; robot2.takeDamage(robot1.getAttack()); std::cout << " "; robot2.beRepaired(robot1.getAttack()); } int main() { ClapTrap robot1("robot1"); ScavTrap robot2("robot2"); ScavTrap robot3("robot3"); ScavTrap robotmp1("robot4"); ClapTrap robot4(robotmp1); // PBM : it says it's a ScavTrap but it has no guardGate()... //robot4.guardGate(); ScavTrap robotmp2("robot5"); ScavTrap robot5(robotmp2); robot5.guardGate(); // ClapTrap robotmp3("robot6"); // PBM : assignation doesn't work... // ScavTrap robot6(robotmp3); goAttack(robot1, robot2); goAttack(robot2, robot1); goAttack(robot1, robot3); robot2.guardGate(); goAttack(robot1, robot4); goAttack(robot4, robot2); goAttack(robot2, robot3); goAttack(robot2, robot4); robot3.guardGate(); goAttack(robot3, robot1); robot2.guardGate(); goAttack(robot3, robot4); goAttack(robot2, robot1); goAttack(robot2, robot4); goAttack(robot1, robot3); return 0; }