#include "ScavTrap.hpp" int main() { std::cout << "\033[1;36m### TESTING CLAPTRAP ###\033[0m\n" << std::endl; { // Construction ClapTrap std::cout << "\033[1;33m--- ClapTrap Construction ---\033[0m" << std::endl; ClapTrap defaultBot; ClapTrap namedBot("R2D2"); ClapTrap copiedBot(namedBot); // Tests basiques ClapTrap std::cout << "\n\033[1;33m--- ClapTrap Basic Tests ---\033[0m" << std::endl; namedBot.attack("Enemy"); namedBot.takeDamage(3); namedBot.beRepaired(2); std::cout << "\n\033[1;33m--- ClapTrap Destruction ---\033[0m" << std::endl; } std::cout << "\n\033[1;35m### TESTING SCAVTRAP ###\033[0m\n" << std::endl; { // Construction ScavTrap std::cout << "\033[1;33m--- ScavTrap Construction ---\033[0m" << std::endl; ScavTrap defaultScav; ScavTrap namedScav("R3D3"); ScavTrap copiedScav(namedScav); // Tests basiques ScavTrap std::cout << "\n\033[1;33m--- ScavTrap Basic Tests ---\033[0m" << std::endl; namedScav.attack("Bandit"); namedScav.takeDamage(20); namedScav.beRepaired(15); // Test capacité spéciale std::cout << "\n\033[1;33m--- ScavTrap Special Ability ---\033[0m" << std::endl; namedScav.guardGate(); defaultScav.guardGate(); // Test énergie (50 points pour ScavTrap) std::cout << "\n\033[1;33m--- ScavTrap Energy Test ---\033[0m" << std::endl; ScavTrap energyScav("EnergyBot"); for (int i = 0; i < 52; i++) { energyScav.attack("practice_target"); } // Test mort std::cout << "\n\033[1;33m--- ScavTrap Death Test ---\033[0m" << std::endl; ScavTrap deadScav("DeadScav"); deadScav.takeDamage(150); // >100 HP deadScav.attack("ghost"); // fails deadScav.guardGate(); // Should still work when dead std::cout << "\n\033[1;33m--- ScavTrap Destruction ---\033[0m" << std::endl; } std::cout << "\n\033[1;32m### ALL TESTS COMPLETED ###\033[0m" << std::endl; return 0; }