diff --git a/ex01/ClapTrap.cpp b/ex01/ClapTrap.cpp index 1814543..1650ee0 100644 --- a/ex01/ClapTrap.cpp +++ b/ex01/ClapTrap.cpp @@ -6,12 +6,21 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/11/20 14:29:16 by adjoly #+# #+# */ -/* Updated: 2024/11/27 13:02:14 by adjoly ### ########.fr */ +/* Updated: 2024/11/29 15:21:39 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "ClapTrap.hpp" #include +#include + +void logClap(std::string emoji, std::string who, std::string str) { + std::cout << "「" << emoji << "」ClapTrap(" << who << "): " << str << std::endl; +} + +void logClap(std::string emoji, std::string str) { + std::cout << "「" << emoji << "」ClapTrap: " << str << std::endl; +} ClapTrap::ClapTrap(void) : _name("Kanel"), _health(10), _energyPoints(10), _attackDamage(0) { @@ -58,7 +67,7 @@ void ClapTrap::attack(const std::string& target) { void ClapTrap::takeDamage(unsigned int amount) { logClap("🥊", _name, "take " + iToS(amount) + " damage"); - if (_health >= amount) { + if (_health <= amount) { logClap("💀", _name, "is dead HAHA"); _health = 0; } else { diff --git a/ex01/ClapTrap.hpp b/ex01/ClapTrap.hpp index 767207c..65cb368 100644 --- a/ex01/ClapTrap.hpp +++ b/ex01/ClapTrap.hpp @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/11/20 14:08:19 by adjoly #+# #+# */ -/* Updated: 2024/11/27 13:02:23 by adjoly ### ########.fr */ +/* Updated: 2024/11/29 15:24:06 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ typedef unsigned int uint; class ClapTrap { - private: + protected: std::string _name; uint _health; uint _energyPoints; @@ -46,6 +46,6 @@ class ClapTrap { void setName(std::string); }; -void logClap(std::string, std::string, std::string); -void logClap(std::string, std::string); std::string iToS(unsigned int i); +void logClap(std::string, std::string); +void logClap(std::string, std::string, std::string); diff --git a/ex01/ScavTrap.cpp b/ex01/ScavTrap.cpp index e021d33..bdbf234 100644 --- a/ex01/ScavTrap.cpp +++ b/ex01/ScavTrap.cpp @@ -6,49 +6,63 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/11/27 12:53:46 by adjoly #+# #+# */ -/* Updated: 2024/11/27 12:59:02 by adjoly ### ########.fr */ +/* Updated: 2024/11/29 15:39:05 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "ScavTrap.hpp" -#include "ClapTrap.hpp" +#include + +void logScav(std::string emoji, std::string who, std::string str) { + std::cout << "「" << emoji << "」ScavTrap(" << who << "): " << str << std::endl; +} + +void logScav(std::string emoji, std::string str) { + std::cout << "「" << emoji << "」ScavTrap: " << str << std::endl; +} ScavTrap::ScavTrap(void) : ClapTrap() { - log("➕", "default constructor called"); + logScav("➕", "default constructor called"); + _health = 100; + _energyPoints = 50; + _attackDamage = 20; } ScavTrap::~ScavTrap(void) { - log("➖", "destructor called"); + logScav("➖", "destructor called"); } ScavTrap::ScavTrap(std::string name) : ClapTrap(name) { - log("➕", getName(), "constructor called"); + logScav("➕", name, "constructor called"); + _health = 100; + _energyPoints = 50; + _attackDamage = 20; } ScavTrap::ScavTrap(const ScavTrap &other) { *this = other; - log("➕", getName(), "copy constructor called"); + logScav("➕", _name, "copy constructor called"); } ScavTrap &ScavTrap::operator=(const ScavTrap &cpy) { - log("🟰", getName(), "copy assignement constructor called"); + logScav("🟰", _name, "copy assignement constructor called"); if (this != &cpy) { - setName(cpy.getName()); - setHealth(cpy.getHealth()); - setEnergyPoints(cpy.getEnergyPoints()); - setAttackDamage(cpy.getAttackDamage()); + _name = cpy.getName(); + _health = cpy.getHealth(); + _energyPoints = cpy.getEnergyPoints(); + _attackDamage = cpy.getAttackDamage(); } return (*this); } void ScavTrap::attack(const std::string& target) { - if (getHealth() == 0) { - log("💀", getName(), "can't attack already dead"); + if (_health == 0) { + logScav("💀", _name, "can't attack already dead"); return ; - } else if (getEnergyPoints() == 0) { - log("💤", getName(), "can't attack no energy left GO TO SLEEP!"); + } else if (_energyPoints == 0) { + logScav("💤", _name, "can't attack no energy left GO TO SLEEP!"); return ; } - log("💥", getName(), "attacks " + target + " causing " + iToS(getAttackDamage()) + " points of damage!"); + logScav("💥", _name, "attacks " + target + " causing " + iToS(_attackDamage) + " points of damage!"); setEnergyPoints(getEnergyPoints() - 1); } diff --git a/ex01/ScavTrap.hpp b/ex01/ScavTrap.hpp index cd1b5de..686eac3 100644 --- a/ex01/ScavTrap.hpp +++ b/ex01/ScavTrap.hpp @@ -6,10 +6,12 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/11/27 12:29:17 by adjoly #+# #+# */ -/* Updated: 2024/11/27 13:00:47 by adjoly ### ########.fr */ +/* Updated: 2024/11/29 15:25:47 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ +#pragma once + #include "ClapTrap.hpp" class ScavTrap : public ClapTrap { @@ -24,6 +26,5 @@ class ScavTrap : public ClapTrap { void attack(const std::string &); }; -void log(std::string, std::string, std::string); -void log(std::string, std::string); -std::string iToS(unsigned int i); +void logScav(std::string, std::string); +void logScav(std::string, std::string, std::string); diff --git a/ex01/main.cpp b/ex01/main.cpp index 7e5a854..3436c8c 100644 --- a/ex01/main.cpp +++ b/ex01/main.cpp @@ -6,30 +6,13 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/11/20 14:25:07 by adjoly #+# #+# */ -/* Updated: 2024/11/27 13:01:55 by adjoly ### ########.fr */ +/* Updated: 2024/11/29 15:21:45 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "ScavTrap.hpp" -#include #include -void log(std::string emoji, std::string who, std::string str) { - std::cout << "「" << emoji << "」ScavTrap(" << who << "): " << str << std::endl; -} - -void log(std::string emoji, std::string str) { - std::cout << "「" << emoji << "」ScavTrap: " << str << std::endl; -} - -void logClap(std::string emoji, std::string who, std::string str) { - std::cout << "「" << emoji << "」ClapTrap(" << who << "): " << str << std::endl; -} - -void logClap(std::string emoji, std::string str) { - std::cout << "「" << emoji << "」ClapTrap: " << str << std::endl; -} - std::string iToS(unsigned int i) { std::stringstream ss; @@ -41,8 +24,8 @@ int main(void) { ScavTrap kanel("Kanel"); ScavTrap suki("Suki"); - kanel.setAttackDamage(5); - log("🙀", kanel.getName(), "Oh my god Kanel uses his last teeth to attack " + suki.getName()); + kanel.setAttackDamage(51); + logScav("🙀", kanel.getName(), "Oh my god Kanel uses his last teeth to attack " + suki.getName()); kanel.attack(suki.getName()); suki.takeDamage(kanel.getAttackDamage());