-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathContrincante.java
More file actions
138 lines (125 loc) · 3.38 KB
/
Copy pathContrincante.java
File metadata and controls
138 lines (125 loc) · 3.38 KB
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
import java.util.ArrayList;
import java.util.Scanner;
/**
*@author Davacas
* Clase que almacena los datos de un contrincante y sus métodos.
*/
public class Contrincante{
ArrayList <Monstruo> monstruo = new ArrayList <Monstruo>();
ArrayList <Pocima> pocima = new ArrayList <Pocima>();
Scanner sc = new Scanner(System.in);
String nombre;
Monstruo monstruo_actual;
int pocimasVida = 2;
int pocimasAtaque = 2;
int pocimasDefensa = 2;
int derrotados = 0;
/**
*Método que permite sacar un monstruo de la batalla.
*/
public void guardarMonstruo(){
if (monstruo_actual.estado.equals("Fuera de combate"))
monstruo_actual.estado = ("Fuera de combate");
else
monstruo_actual.estado = "ok";
System.out.println(monstruo_actual.apodo+" ya no está en la pelea. Tienes estos monstruos:");
listarMonstruo();
System.out.print("¿A quién quieres meter en la pelea? Escribe su número de acuerdo a la lista: ");
elegirMonstruo();
}
/**
*Método que permite elegir un monstruo en plena batalla. Se manda a llamar automáticamente bajo circunstancias específicas.
*/
public void elegirMonstruo(){
int id;
Scanner sc = new Scanner(System.in);
Monstruo m;
while (true)
{
id = sc.nextInt();
m = monstruo.get(id-1);
if (m.estado.equals("Fuera de combate"))
{
System.out.println("No puedes llamar a "+m.apodo+" a la pelea porque está fuera de combate.");
System.out.print("Intenta con otro monstruo: ");
}
else
{
monstruo_actual = m;
System.out.println("¡"+monstruo_actual.apodo+" entra al combate!");
return;
}
}
}
/**
*Método que permite usar una pócima sobre el monstruo con el que actualmente se está peleando.
*/
public void usarPocima(){
Pocima p;
int opc;
System.out.println("¿Qué tipo de pócima deseas utilizar?");
System.out.println("1) +Vida "+pocimasVida+"/2");
System.out.println("2) +Ataque "+pocimasAtaque+"/2");
System.out.println("3) +Defensa "+pocimasDefensa+"/2");
opc = sc.nextInt();
switch (opc)
{
case 1:
for (int i = 0; i < pocima.size(); i ++)
{
p = pocima.get(i);
if (p instanceof PocimaVida)
{
p.usarPocima(monstruo_actual);
pocima.remove(i);
pocimasVida -= 1;
return;
}
else
System.out.println("nope");
}
System.out.println("¡Ya no tienes pócimas de vida! Pierdes tu turno.");
return;
case 2:
for (int i = 0; i < pocima.size(); i ++)
{
p = pocima.get(i);
if (p instanceof PocimaAtaque)
{
p.usarPocima(monstruo_actual);
pocima.remove(i);
pocimasAtaque -= 1;
return;
}
}
System.out.println("¡Ya no tienes pócimas de ataque! Pierdes tu turno.");
return;
case 3:
for (int i = 0; i < pocima.size(); i ++)
{
p = pocima.get(i);
if (p instanceof PocimaDefensa)
{
p.usarPocima(monstruo_actual);
pocima.remove(i);
pocimasDefensa -= 1;
return;
}
}
System.out.println("¡Ya no tienes pócimas de defensa! Pierdes tu turno.");
return;
}
}
/**
*Método que permite listar todos los monstruos disponibles en el equipo.
*/
public void listarMonstruo(){
Monstruo m;
System.out.println("# | Nombre | Nivel | HP | Estado");
for (int i = 0; i < monstruo.size(); i ++)
{
m = monstruo.get(i);
System.out.println((i+1)+" | "+m.apodo+" | "+m.nivel+" | "+m.hp+" | "+m.estado);
}
}
}