diff --git a/ex03/DiamondTrap.cpp b/ex03/DiamondTrap.cpp index 75dd7ff..86209e4 100644 --- a/ex03/DiamondTrap.cpp +++ b/ex03/DiamondTrap.cpp @@ -1,12 +1,10 @@ #include "DiamondTrap.hpp" #include -DiamondTrap::DiamondTrap() : FragTrap(), ScavTrap() { - const FragTrap fragtrap = FragTrap(); - - hit_points = fragtrap.get_hit_points(); - energy_points = ScavTrap::energy_points; - attack_damage = fragtrap.get_attack_damage(); +DiamondTrap::DiamondTrap() { + hit_points = FragTrap::default_hit_points; + energy_points = ScavTrap::default_energy_points; + attack_damage = FragTrap::default_attack_damage; ClapTrap::name = name + "_clap_name"; std::cout << "DiamondTrap::DiamondTrap()" << std::endl; @@ -17,15 +15,14 @@ DiamondTrap::DiamondTrap(const DiamondTrap &other) { hit_points = other.hit_points; energy_points = other.energy_points; attack_damage = other.attack_damage; - std::cout << "DiamondTrap::DiamondTrap(const DiamondTrap &other)" << std::endl; + std::cout << "DiamondTrap::DiamondTrap(const DiamondTrap &other)" + << std::endl; } DiamondTrap::DiamondTrap(std::string name) : name(name) { - const FragTrap fragtrap = FragTrap(name); - - hit_points = fragtrap.get_hit_points(); - energy_points = ScavTrap::energy_points; - attack_damage = fragtrap.get_attack_damage(); + hit_points = FragTrap::default_hit_points; + energy_points = ScavTrap::default_energy_points; + attack_damage = FragTrap::default_attack_damage; ClapTrap::name = name + "_clap_name"; std::cout << "DiamondTrap::DiamondTrap(" << name << ")" << std::endl; diff --git a/ex03/FragTrap.cpp b/ex03/FragTrap.cpp index 56a85a1..e1bbce7 100644 --- a/ex03/FragTrap.cpp +++ b/ex03/FragTrap.cpp @@ -1,11 +1,15 @@ #include "FragTrap.hpp" #include +const unsigned int FragTrap::default_hit_points(100); +const unsigned int FragTrap::default_energy_points(100); +const unsigned int FragTrap::default_attack_damage(30); + FragTrap::FragTrap() { std::cout << "FragTrap::FragTrap()" << std::endl; - hit_points = 100; - energy_points = 100; - attack_damage = 30; + hit_points = FragTrap::default_hit_points; + energy_points = FragTrap::default_energy_points; + attack_damage = FragTrap::default_attack_damage; } FragTrap::FragTrap(const FragTrap &other) { diff --git a/ex03/FragTrap.hpp b/ex03/FragTrap.hpp index c942ec3..06613c2 100644 --- a/ex03/FragTrap.hpp +++ b/ex03/FragTrap.hpp @@ -12,6 +12,11 @@ public: FragTrap &operator=(const FragTrap &other); void highFivesGuys(); + +protected: + static const unsigned int default_hit_points; + static const unsigned int default_energy_points; + static const unsigned int default_attack_damage; }; #endif diff --git a/ex03/ScavTrap.cpp b/ex03/ScavTrap.cpp index d2acf91..0c2206c 100644 --- a/ex03/ScavTrap.cpp +++ b/ex03/ScavTrap.cpp @@ -1,11 +1,15 @@ #include "ScavTrap.hpp" #include +const unsigned int ScavTrap::default_hit_points(100); +const unsigned int ScavTrap::default_energy_points(50); +const unsigned int ScavTrap::default_attack_damage(20); + ScavTrap::ScavTrap() { std::cout << "ScavTrap::ScavTrap()" << std::endl; - hit_points = 100; - energy_points = 50; - attack_damage = 20; + hit_points = ScavTrap::default_hit_points; + energy_points = ScavTrap::default_energy_points; + attack_damage = ScavTrap::default_attack_damage; } ScavTrap::ScavTrap(const ScavTrap &other) { diff --git a/ex03/ScavTrap.hpp b/ex03/ScavTrap.hpp index f1ecc36..593ac1d 100644 --- a/ex03/ScavTrap.hpp +++ b/ex03/ScavTrap.hpp @@ -12,6 +12,11 @@ public: ScavTrap &operator=(const ScavTrap &other); void guardGate(); + +protected: + static const unsigned int default_hit_points; + static const unsigned int default_energy_points; + static const unsigned int default_attack_damage; }; #endif