-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHabilidades.hpp
69 lines (57 loc) · 2.49 KB
/
Habilidades.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#ifndef HABILIDADES_HPP
#define HABILIDADES_HPP
#include "Habilidade.hpp"
#include "Pokemon.hpp"
class Cura : public Habilidade {
public:
Cura() {
_nome = "Cura";
_descricao = "Recupera 25 de vida ao Pokémon por turno.";
}
void aplicar(Pokemon &pokemon) override {
int novaVida = pokemon.get_vidaAtual() + (pokemon.get_estatistica(0)/16);
if (novaVida > pokemon.get_estatistica(0)) { // Verifica se não ultrapassa a vida máxima
novaVida = pokemon.get_estatistica(0);
std::cout << "Habilidade não fez efeito, vida está no máximo\n";
return;
}
pokemon.set_vidaAtual(novaVida); // Recupera vida
std::cout << pokemon.get_nome() << " usou a habilidade Cura e recuperou 25 de vida!\n";
}
};
class AumentarAgressividade : public Habilidade {
public:
AumentarAgressividade() {
_nome = "Aumentar Agressividade";
_descricao = "Aumenta o ataque e velocidade do Pokémon em 1 estágio.";
}
void aplicar(Pokemon &pokemon) override {
pokemon.set_estagio(1, pokemon.get_estagio(1) + 1); // Aumenta o ataque em 1 estágio
pokemon.set_estagio(1, pokemon.get_estagio(5) + 1); // Aumentar a velocidade em 1 estágio
std::cout << pokemon.get_nome() << " ativou a habilidade Aumentar Agressividade!\n";
}
};
class AumentarDefesa : public Habilidade {
public:
AumentarDefesa() {
_nome = "Aumentar Defesas";
_descricao = "Aumenta as defesas do Pokémon em 1 estágio";
}
void aplicar(Pokemon &pokemon) override {
pokemon.set_estagio(2, pokemon.get_estagio(2) + 1); // Aumenta a defesa em 1 estágio
pokemon.set_estagio(4, pokemon.get_estagio(4) + 1); // Aumenta a defesa ESPECIAL em 1 estágio
std::cout << pokemon.get_nome() << " ativou a habilidade Aumentar Defesas!\n";
}
};
class VelocidadeAumentada : public Habilidade {
public:
VelocidadeAumentada() {
_nome = "Velocidade Aumentada";
_descricao = "Aumenta a velocidade do Pokémon em 2 estágio";
}
void aplicar(Pokemon &pokemon) override {
pokemon.set_estagio(5, pokemon.get_estagio(5) + 2); // Aumenta a velocidade em 2 estágio
std::cout << pokemon.get_nome() << " ativou a habilidade Velocidade Aumentada!\n";
}
};
#endif