-
Notifications
You must be signed in to change notification settings - Fork 0
/
Pokemon.java
139 lines (117 loc) · 4.09 KB
/
Pokemon.java
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
import java.io.*;
import javax.swing.*;
import java.awt.*;
public class Pokemon implements Serializable {
private String nome;
private int vida;
private int vidaMaxima;
private String lado;
private JLabel imagemLabel = new JLabel();
private String nomeAnterior ;
public String getNomeAnterior() {
return nomeAnterior;
}
public void setNomeAnterior(String nomeAnterior) {
this.nomeAnterior = nomeAnterior;
}
public Pokemon(String nome, String lado) {
this.nome = nome;
this.lado = lado;
this.vida = encontrarvida(nome);
this.vidaMaxima = this.vida;
// Lado precisa ser front ou back
defirImage(nome, lado);
}
private void defirImage(String pokeString, String lado) {
// Criar path com base no nome e lado do pokemon
String imagePath = "assets/pokemons/" + pokeString.toLowerCase() + "/" + lado + ".png";
// System.out.println(imagePath);
// Aqui todas as imagens estao sendo redimencionadas para o tamanho padra 256 x
// 256
try {
ImageIcon icon = new ImageIcon(getClass().getResource(imagePath));
Image image = icon.getImage().getScaledInstance(256, 256, Image.SCALE_SMOOTH);
imagemLabel.setIcon(new ImageIcon(image));
} catch (Exception e) {
e.printStackTrace();
System.out.println("Erro ao carregar a imagem: " + imagePath);
}
}
private static Integer encontrarvida(String pokemonNome) {
String nomedoarquivo = "pokemonhp.csv";
try (BufferedReader leitor = new BufferedReader(new FileReader(nomedoarquivo))) {
String linha;
while ((linha = leitor.readLine()) != null) {
String[] partes = linha.split(",");
if (partes.length == 2 && partes[0].trim().equalsIgnoreCase(pokemonNome)) {
return Integer.parseInt(partes[1].trim());
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
// Getter do lado
public String getLado() {
return lado;
}
// Setter do lado
public void setLado(String lado) {
this.lado = lado;
}
// Getter do name
public String getNome() {
return nome;
}
// Setter do name
public void setNome(String nome) {
this.nome = nome;
}
// pegar a vida
public int getVida() {
return vida;
}
// definir a vida
public void setVida(int vida) {
this.vida = vida;
}
// pegar a vidaMaxima
public int getVidaMaxima() {
return vidaMaxima;
}
// Pegar a label da imagem
public JLabel getImagemLabel() {
return imagemLabel;
}
public void evoluir(int nivel, Game frame) {
if (PokemonsBatle.playerLv == 2 || PokemonsBatle.playerLv == 3) {
vidaMaxima += 5 * nivel;
vida += 5 * nivel;
Player.ataqueValue += (int) (nivel / 2);
nomeAnterior = nome;
aplicarEvolucao();
Player.pokemonNome = nome;
defirImage(nome, "back");
System.out.println("O pokemon evoluiu para " + nome);
EvolucaoPage evolucaoPage = new EvolucaoPage(Game.game, Player.pokemonSelecionado);
Game.game.mudarTela(evolucaoPage);
}
System.out.println("O pokemon do player subiu de nivel");
}
private void aplicarEvolucao() {
if (nome.equals("Bulbasaur")) {
nome = "Ivysaur";
} else if (nome.equals("Ivysaur")) {
nome = "Venusaur";
} else if (nome.equals("Charmander")) {
nome = "Charmeleon";
} else if (nome.equals("Charmeleon")) {
nome = "Charizard";
} else if (nome.equals("Squirtle")) {
nome = "Wartortle";
} else if (nome.equals("Wartortle")) {
nome = "Blastoise";
}
}
}