From 119f7f96e77a2d86d692e82645dde4c2dc054052 Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 13 Apr 2020 18:44:40 +0200 Subject: cpp03, except ex04 --- cpp03/ex03/ScavTrap.cpp | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 cpp03/ex03/ScavTrap.cpp (limited to 'cpp03/ex03/ScavTrap.cpp') diff --git a/cpp03/ex03/ScavTrap.cpp b/cpp03/ex03/ScavTrap.cpp new file mode 100644 index 0000000..d310ab1 --- /dev/null +++ b/cpp03/ex03/ScavTrap.cpp @@ -0,0 +1,74 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ScavTrap.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/13 14:15:03 by charles #+# #+# */ +/* Updated: 2020/04/13 15:46:56 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ScavTrap.hpp" + +ScavTrap::ScavTrap(): + ClapTrap() +{ + m_prefix = "SC4V-TP "; + m_energyPoints = 50; + m_maxEnergyPoints = 50; + m_meleeAttackDamage = 20; + m_rangedAttackDamage = 15; + m_armorDamageReduction = 3; + std::cout << "New " << m_name << ": your gaming references suck" << std::endl; +} + +ScavTrap::ScavTrap(std::string name): + ClapTrap(name) +{ + m_prefix = "SC4V-TP "; + m_energyPoints = 50; + m_maxEnergyPoints = 50; + m_meleeAttackDamage = 20; + m_rangedAttackDamage = 15; + m_armorDamageReduction = 3; + std::cout << "SC4V-TP New " << m_name << ": your gaming references suck" << std::endl; +} + +ScavTrap::ScavTrap(ScavTrap const& other) +{ + *this = other; +} + +void ScavTrap::operator=(ScavTrap const& other) +{ + m_hitPoints = other.m_hitPoints; + m_maxHitPoints = other.m_maxHitPoints; + m_energyPoints = other.m_energyPoints; + m_maxEnergyPoints = other.m_maxEnergyPoints; + m_level = other.m_level; + m_meleeAttackDamage = other.m_meleeAttackDamage; + m_rangedAttackDamage = other.m_rangedAttackDamage; + m_armorDamageReduction = other.m_armorDamageReduction; +} + +ScavTrap::~ScavTrap() +{ + std::cout << "SC4V-TP Delete " << m_name << ": your gaming references still suck" << std::endl; +} + +void ScavTrap::challengeNewcomer(std::string const& target) +{ + std::string challenges[5] = { + "lick your elbow", + "do 1 push up", + "dont talk for 1 hour", + "draw your name by peeing in the snow", + "punch me" + }; + std::cout << "SC4V-TP " << m_name + << " challenge " << target + << " to " << challenges[rand() % 5] << std::endl; + m_energyPoints -= 25; +} -- cgit