galera no gamezinho, por q nao mostra todos os itens disponível da minha lista de itens, so aparece o primeiro.
e por q quando tento comprar diz que nao tenho dinheiro ja q tenho?
package game;
import java.util.ArrayList;
import java.util.Scanner;
public class JogoRPG {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Personagem[] personagens = new Personagem[3];
personagens[0] = new Personagem("Guerreiro", 100, 20, 20);
personagens[1] = new Personagem("Mago", 80, 30, 10);
personagens[2] = new Personagem("Arqueiro", 90, 25, 10);
Magia magiaFogo = new Magia("Magia de Fogo", 30);
Magia magiaGelo = new Magia("Magia de Galo", 25);
Magia magiaCura = new Magia("Magia de Cura", 0);
personagens[0].adcionarMagia(magiaCura);
personagens[1].adcionarMagia(magiaFogo);
personagens[1].adcionarMagia(magiaGelo);
personagens[1].adcionarMagia(magiaCura);
personagens[2].adcionarMagia(magiaFogo);
personagens[2].adcionarMagia(magiaGelo);
//// itens
Item espada = new Item("Espada Poderosa", 50, 10, 0);
Item armadura = new Item("Armadura Resistente", 80, 0, 50);
Item poçaoVida = new Item("Poçao de Vida", 30, 0, 30);
personagens[0].adcionarItem(espada);
personagens[1].adcionarItem(armadura);
personagens[2].adcionarItem(poçaoVida);
////
System.out.println("Bem-vindo ao jogo de RPG!");
System.out.println("Escolha 2 personagens para o combate:");
for (int i = 0; i < 3; i++) {
System.out.println((i + 1) + ". " + personagens[i].nome);
}
int escolha1 = scanner.nextInt() - 1;
int escolha2 = -1;
do {
escolha2 = scanner.nextInt() - 1;
if (escolha2 == escolha1) {
System.out.println("Escolha dois personagens diferentes!");
}
} while (escolha2 == escolha1);
Personagem jogador1 = personagens[escolha1];
Personagem jogador2 = personagens[escolha2];
System.out.println("Você escolheu " + jogador1.nome + " e " + jogador2.nome + " para o combate!");
while (jogador1.vida > 0 && jogador2.vida > 0) {
//// permite que os personagens compre itens
for (int i = 0; i < 2; i++) {
Personagem jogador = (i == 0) ? jogador1 : jogador2;// seleciona o jogador atual!
System.out.println("Deseja comprar item para " + personagens[i].nome + "? (1.sim / 2.Não)");
int opçaoCompra = scanner.nextInt();
if (opçaoCompra == 1) {
System.out.println("Itens disponiveis para compra: " + personagens[i].nome + "?");
ArrayList<Item> itensDisponiveis = jogador1.getItem();
for (int it = 0; it < itensDisponiveis.size(); it++) {
// Item item = itensDisponiveis.get(it);
System.out.println((it + 1) + ". comprar " + itensDisponiveis.get(it).nome);
}
System.out.println("Escolha o numero do item que deseja comprar!");
int escolhaItem = scanner.nextInt();
if (escolhaItem >= 1 && escolhaItem <= itensDisponiveis.size()) {
Item itemEscolhido = itensDisponiveis.get(escolhaItem - 1);
if (jogador.dinheiro >= itemEscolhido.preço) {
jogador.dinheiro -= itemEscolhido.preço;
jogador.adcionarItem(itemEscolhido);
System.out.println(jogador.nome + " comprou " + itemEscolhido.nome
+ " e fortaleceu suas habilidades!");
} else {
System.out.println("Desculpe, " + jogador.nome
+ ", você nao tem dinheiro suficiente para comprar " + itemEscolhido.nome);
}
}
}
}
////
System.out.println("Escolha a ação para " + jogador1.nome + ":");
System.out.println("1. Atacar");
//
ArrayList<Magia> magiasJogador1 = jogador1.getMagias();
for (int i = 0; i < magiasJogador1.size(); i++) {
System.out.println((i + 2) + ". Usar " + magiasJogador1.get(i).nome);
}
System.out.print("> ");
int acaoJogador1 = scanner.nextInt();
ArrayList<Magia> magiasJogador2 = jogador2.getMagias();
for (int i = 0; i < magiasJogador2.size(); i++) {
System.out.println((i + 2) + ". Usar " + magiasJogador2.get(i).nome);
}
System.out.print("> ");
int acaoJogador2 = scanner.nextInt();
if (acaoJogador1 == 1) {
jogador1.atacar(jogador2);
} else if (acaoJogador1 >= 2 && acaoJogador1 <= magiasJogador1.size() + 1) {
jogador1.usarMagia(jogador2, acaoJogador1 - 2); // subitrai 2 para mapear para o indice correto da
// magia!
}
if (acaoJogador2 == 1) {
jogador2.atacar(jogador1);
} else if (acaoJogador2 >= 2 && acaoJogador2 <= magiasJogador2.size() + 1) {
jogador2.usarMagia(jogador1, acaoJogador2 - 2); // subitrai 2 para mapear para o indice correto da
// magia!
}
//
if (acaoJogador1 == 1) {
jogador1.atacar(jogador2);
} else if (acaoJogador1 == 2) {
jogador1.usarMagia(jogador2, 0);
} else if (acaoJogador1 == 3) {
jogador1.usarMagia(jogador2, 1);
} else if (acaoJogador1 == 4) {
jogador1.usarMagia(jogador1, 2);
}
System.out.println("Escolha a ação para " + jogador2.nome + ":");
System.out.println("1. Atacar");
System.out.println("2. Usar Magia de Fogo");
System.out.println("3. Usar Magia de Gelo");
System.out.println("4. Usar Magia de Cura");
if (acaoJogador2 == 1) {
jogador2.atacar(jogador1);
} else if (acaoJogador2 == 2) {
jogador2.usarMagia(jogador1, 0);
} else if (acaoJogador2 == 3) {
jogador2.usarMagia(jogador1, 1);
} else if (acaoJogador2 == 4) {
jogador2.usarMagia(jogador2, 2);
}
System.out.println(jogador1.nome + ": Vida = " + jogador1.vida);
System.out.println(jogador2.nome + ": Vida = " + jogador2.vida);
}
if (jogador1.vida <= 0) {
System.out.println(jogador1.nome + " foi derrotado! " + jogador2.nome + " é o vencedor!");
} else {
System.out.println(jogador2.nome + " foi derrotado! " + jogador1.nome + " é o vencedor!");
}
scanner.close();
}
}