Skip to content

Commit 4e3c2cb

Browse files
committed
Iniciando um protótipo e testes de implementação
1 parent b62df32 commit 4e3c2cb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+388
-27
lines changed

.idea/vcs.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.
6.4 KB
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

src/Main.java

+74-8
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import acoes.Efeito;
2+
import inimigos.*;
3+
import org.w3c.dom.ls.LSOutput;
24
import personagens.*;
35

4-
import java.util.ArrayList;
5-
import java.util.Arrays;
6-
import java.util.Scanner;
6+
import java.util.*;
77

88
public class Main {
99

1010
public static ArrayList<Personagem> personagens = new ArrayList<>();
11+
public static ArrayList<Inimigo> inimigos = new ArrayList<>();
1112
public static Scanner sc = new Scanner(System.in);
1213
public static Personagem personagem;
1314

@@ -17,6 +18,8 @@ public static void main(String[] args) {
1718
boolean flag = true;
1819

1920
System.out.println("Bem vindo à nossa campanha de RPG!!!");
21+
gerarInimigos(1);
22+
inimigos.forEach(System.out::println);
2023

2124
System.out.println("Escolha seu personagem e inicie a sua aventura");
2225
personagens.forEach( p -> {
@@ -32,17 +35,80 @@ public static void main(String[] args) {
3235
flag = false;
3336
} catch (IndexOutOfBoundsException err){
3437
System.out.println("Verifique a opção selecionada!");
38+
} catch (InputMismatchException err){
39+
System.out.println("Digita um numero aí meu!");
3540
}
3641
} while (flag);
42+
43+
if (personagem != null) prepararRodada();
44+
3745
}
3846

47+
48+
3949
public static void iniciarPersonagens(){
40-
Bardo bardo = new Bardo(110, "Bardo", 10, 0, 20, 1, 10, Efeito.NENHUM);
41-
Guerreiro guerreiro = new Guerreiro(125, "Guerreiro", 5, 0, 20, 1, 15, Efeito.NENHUM);
42-
Barbaro barbaro = new Barbaro(140, "Barbaro", 5, 0, 20, 1, 18, Efeito.NENHUM);
43-
Mago mago = new Mago(100, "Mago", 5, 0, 20, 1, 12, Efeito.NENHUM);
44-
Ladino ladino = new Ladino(110, "Ladino", 5, 0, 20, 1, 14, Efeito.NENHUM);
50+
Bardo bardo = new Bardo(110, "Bardo", 10, 10, Efeito.NENHUM);
51+
Guerreiro guerreiro = new Guerreiro(125, "Guerreiro", 5,15, Efeito.NENHUM);
52+
Barbaro barbaro = new Barbaro(140, "Barbaro", 5, 18, Efeito.NENHUM);
53+
Mago mago = new Mago(100, "Mago", 5, 12, Efeito.NENHUM);
54+
Ladino ladino = new Ladino(110, "Ladino", 5, 14, Efeito.NENHUM);
4555

4656
personagens.addAll(Arrays.asList(bardo, guerreiro, barbaro, mago, ladino));
4757
}
58+
59+
public static void gerarInimigos(int levelPersonagem){
60+
for (int i = 0; i < 4; i++){
61+
int n = (int)Math.floor(Math.random()*(5-1+1)+1);
62+
Inimigo inimigo;
63+
if (n == 1) inimigo = new Lobo("Lobo", (levelPersonagem-1)*2, (levelPersonagem-1)*2, 60, 2);
64+
else if (n == 2) inimigo = new Goblin("Goblin", (levelPersonagem-1)*2, (levelPersonagem-1)*2, 65, 3);
65+
else if (n == 3) inimigo = new Troll("Troll", (levelPersonagem-1)*2, (levelPersonagem-1)*2, 70, 4);
66+
else if (n == 4) inimigo = new Zumbi("Zumbi", (levelPersonagem-1)*2, (levelPersonagem-1)*2, 85, 5);
67+
else if (n == 5) inimigo = new Urso("Urso", (levelPersonagem-1)*2, (levelPersonagem-1)*2, 95, 7);
68+
else throw new NoSuchElementException("Ocorreu um erro ao criar um personagem!");
69+
inimigos.add(inimigo);
70+
}
71+
}
72+
73+
public static void prepararRodada(){
74+
int turno = 1;
75+
while (inimigos.size() > 0 && personagem.getHp() > 0){
76+
System.out.println("Turno - " + turno);
77+
System.out.println("Sua vez de atacar!");
78+
imprimirInimigos();
79+
System.out.println("Seus ataques:");
80+
personagem.mostrarAtaques();
81+
System.out.print("Qual inimigo deseja atacar: ");
82+
int opc = sc.nextInt();
83+
Inimigo inimigoTurno = inimigos.get(opc-1);
84+
inimigoTurno.tomarDano(60);
85+
System.out.println("Você desferiu uma quantidade de XXX de dano!!!");
86+
87+
if (inimigoTurno.getHp() <= 0){
88+
inimigos.remove(inimigoTurno);
89+
System.out.println("Inimigo morto!");
90+
personagem.addXp(2);
91+
}
92+
93+
System.out.println("Vez dos inimigos!");
94+
for (Inimigo inimigo : inimigos){
95+
personagem.tomarDano(inimigo.desferirDano());
96+
System.out.println("O inimigo " + inimigo.getNome() +
97+
" desferiu a você uma quantidade de " + inimigo.getDano() +
98+
" de dano, lhe resta " + personagem.getHp() + " pontos de vida");
99+
100+
}
101+
turno ++;
102+
}
103+
}
104+
105+
public static void imprimirInimigos(){
106+
for (Inimigo inimigo : inimigos){
107+
System.out.println("Inimigo numero " + inimigos.indexOf(inimigo));
108+
System.out.println("Nome: " + inimigo.getNome());
109+
System.out.println("Vida: " + inimigo.getHp());
110+
System.out.println("Dano: " + inimigo.getDano() + "\n");
111+
}
112+
}
113+
48114
}

src/equipamentos/Cajado.java

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package equipamentos;
2+
3+
public class Cajado extends Equipamento{
4+
5+
public Cajado() {
6+
super(4, "Cajado", 4);
7+
}
8+
9+
@Override
10+
public int usar(int atributoPersonagem) {
11+
if (usos > 0) {
12+
usos--;
13+
System.out.println("Usou " + nome);
14+
return atributoPersonagem + atributo;
15+
} else {
16+
System.out.println("Vix! Você não possui mais usos de " + nome);
17+
return 0;
18+
}
19+
}
20+
}

src/equipamentos/Equipamento.java

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package equipamentos;
2+
3+
public abstract class Equipamento {
4+
5+
protected int atributo;
6+
protected String nome;
7+
protected int usos;
8+
9+
public Equipamento(int atributo, String nome, int usos) {
10+
this.atributo = atributo;
11+
this.nome = nome;
12+
this.usos = usos;
13+
}
14+
15+
public abstract int usar(int atributoPersonagem);
16+
}

src/equipamentos/EspadaFerro.java

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package equipamentos;
2+
3+
public class EspadaFerro extends Equipamento{
4+
5+
public EspadaFerro() {
6+
super(5, "Espada de ferro", 3);
7+
}
8+
9+
@Override
10+
public int usar(int atributoPersonagem) {
11+
if (usos > 0) {
12+
usos--;
13+
System.out.println("Usou " + nome);
14+
return atributoPersonagem + atributo;
15+
} else {
16+
System.out.println("Vix! Você não possui mais usos de " + nome);
17+
return 0;
18+
}
19+
}
20+
}

src/equipamentos/EspadaMadeira.java

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package equipamentos;
2+
3+
public class EspadaMadeira extends Equipamento{
4+
5+
public EspadaMadeira() {
6+
super(3, "Espada de madeira", 3);
7+
}
8+
9+
@Override
10+
public int usar(int atributoPersonagem) {
11+
if (usos > 0) {
12+
usos--;
13+
System.out.println("Usou " + nome);
14+
return atributoPersonagem + atributo;
15+
} else {
16+
System.out.println("Vix! Você não possui mais usos de " + nome);
17+
return 0;
18+
}
19+
}
20+
}

src/equipamentos/PocaoCura.java

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package equipamentos;
2+
3+
public class PocaoCura extends Equipamento{
4+
5+
public PocaoCura() {
6+
super(8, "Poção de cura", 1);
7+
}
8+
9+
@Override
10+
public int usar(int atributoPersonagem) {
11+
if (usos > 0) {
12+
usos--;
13+
System.out.println("Usou " + nome);
14+
return atributoPersonagem + atributo;
15+
} else {
16+
System.out.println("Vix! Você não possui mais usos de " + nome);
17+
return 0;
18+
}
19+
}
20+
21+
}

src/inimigos/Goblin.java

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package inimigos;
2+
3+
public class Goblin extends Inimigo{
4+
5+
public Goblin(String nome, int hp, int dano, int hpBase, int danoBase) {
6+
super(nome, hp, dano, hpBase, danoBase);
7+
}
8+
9+
@Override
10+
public void tomarDano(int dano) {
11+
setHp(getHp()-dano);
12+
}
13+
14+
@Override
15+
public int desferirDano() {
16+
return getDano();
17+
}
18+
19+
}

src/inimigos/Inimigo.java

+44
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,52 @@
11
package inimigos;
22

3+
import personagens.Personagem;
4+
35
public abstract class Inimigo {
46

57
private String nome;
68
private int hp;
9+
private int dano;
10+
private int danoBase;
11+
private int hpBase;
12+
13+
public Inimigo(String nome, int hp, int dano, int hpBase, int danoBase) {
14+
this.nome = nome;
15+
this.hp = hp + hpBase;
16+
this.dano = dano + danoBase;
17+
}
18+
19+
public String getNome() {
20+
return nome;
21+
}
22+
23+
public int getHp() {
24+
return hp;
25+
}
26+
27+
public void setHp(int hp) {
28+
this.hp = hp+hpBase;
29+
}
30+
31+
public int getDano() {
32+
return dano;
33+
}
34+
35+
public void setDano(int dano) {
36+
this.dano = dano+danoBase;
37+
}
38+
39+
public abstract void tomarDano(int dano);
40+
public abstract int desferirDano();
741

42+
@Override
43+
public String toString() {
44+
return "Inimigo{" +
45+
"nome='" + nome + '\'' +
46+
", hp=" + hp +
47+
", dano=" + dano +
48+
", danoBase=" + danoBase +
49+
", hpBase=" + hpBase +
50+
'}';
51+
}
852
}

src/inimigos/Lobo.java

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package inimigos;
2+
3+
public class Lobo extends Inimigo{
4+
5+
public Lobo(String nome, int hp, int dano, int hpBase, int danoBase) {
6+
super(nome, hp, dano, hpBase, danoBase);
7+
}
8+
9+
@Override
10+
public void tomarDano(int dano) {
11+
setHp(getHp()-dano);
12+
}
13+
14+
@Override
15+
public int desferirDano() {
16+
return getDano();
17+
}
18+
}

src/inimigos/Troll.java

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package inimigos;
2+
3+
public class Troll extends Inimigo{
4+
5+
6+
public Troll(String nome, int hp, int dano, int hpBase, int danoBase) {
7+
super(nome, hp, dano, hpBase, danoBase);
8+
}
9+
10+
@Override
11+
public void tomarDano(int dano) {
12+
setHp(getHp()-dano);
13+
}
14+
15+
@Override
16+
public int desferirDano() {
17+
return getDano();
18+
}
19+
}

src/inimigos/Urso.java

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package inimigos;
2+
3+
public class Urso extends Inimigo{
4+
5+
public Urso(String nome, int hp, int dano, int hpBase, int danoBase) {
6+
super(nome, hp, dano, hpBase, danoBase);
7+
}
8+
9+
@Override
10+
public void tomarDano(int dano) {
11+
setHp(getHp()-dano);
12+
}
13+
14+
@Override
15+
public int desferirDano() {
16+
return getDano();
17+
}
18+
}

src/inimigos/Zumbi.java

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package inimigos;
2+
3+
public class Zumbi extends Inimigo{
4+
5+
public Zumbi(String nome, int hp, int dano, int hpBase, int danoBase) {
6+
super(nome, hp, dano, hpBase, danoBase);
7+
}
8+
9+
@Override
10+
public void tomarDano(int dano) {
11+
setHp(getHp()-dano);
12+
}
13+
14+
@Override
15+
public int desferirDano() {
16+
return getDano();
17+
}
18+
}

0 commit comments

Comments
 (0)