//metodo chamado para toda batalha public void Batalhar(Personagem jogador, Inimigos inimigo) { //variaveis para indicar os alvos this.jogador = jogador; this.inimigo = inimigo; bool jogar = true; while (jogar == true) { //chama os status do jogador e as escolhas de ataque Status(); Console.WriteLine("Você está batalhando"); Console.Write("\n\n\n\n\n\n\n\n\n\n"); Console.WriteLine("[1 - SOCO]"); Console.WriteLine("[2 - CHUTAR]"); Console.WriteLine("[3 - CABEÇADA]"); Console.WriteLine("[4 - ESPECIAL]"); Console.WriteLine("[5 - ESPECIAL]"); Console.Write("Escolha: "); escolha = LerTeclado.intervalo(1, 5); if (escolha == 1) { jogador.Socar(inimigo); } else if (escolha == 2) { jogador.Chutar(inimigo); } else if (escolha == 3) { jogador.Cabecada(inimigo); } else if (escolha == 4) { jogador.Especial(inimigo); } else { jogador.Especial2(jogador); } Console.ReadLine(); Console.Clear(); //rola o dado do inimigo para ver qual ataque será usado Console.WriteLine("Ataque inimigo"); ataque = Rolagem.Rola(5, 0); if (ataque == 1) { inimigo.Socar(jogador); } else if (ataque == 2) { inimigo.Chutar(jogador); } else if (ataque == 3) { inimigo.Cabecada(jogador); } else if (ataque == 4) { inimigo.Especial(jogador); } else { inimigo.Especial2(jogador); } Console.ReadLine(); Console.Clear(); //condição para ver se o jogador venceu if (jogador.Vida > 0 && inimigo.Vida <= 0) { Console.WriteLine(jogador.nome + " venceu!"); Console.ReadLine(); Console.Clear(); jogador.Vida = jogador.vidainicial; inimigo.Vida = inimigo.vidainicial; break; } //condição para ver se foi empate else if (jogador.Vida <= 0 && inimigo.Vida <= 0) { Console.WriteLine("Empate!"); Console.ReadLine(); Console.Clear(); jogador.Vida = jogador.vidainicial; break; } //condição para ver se o jogador perdeu else if (jogador.Vida <= 0 && inimigo.Vida > 0) { Console.Clear(); Console.WriteLine("Você perde!"); Console.WriteLine(jogador.nome + ", você quer jogar novamente? "); Console.Write("\n\n\n\n\n\n\n\n"); Console.WriteLine("[1 - Sim]"); Console.WriteLine("[2 - Não]"); Console.Write("Sua resposta: "); confirmarResetar = LerTeclado.intervalo(1, 2); Console.Clear(); if (confirmarResetar == 1) { jogar = true; } else if (confirmarResetar == 2) { jogar = false; } jogador.Vida = jogador.vidainicial; // TESTE SE ESTA RESETANDO A VIDA } } }
public static Personagem Criacao(string nome) { Personagem Jogador; //switch de escolha de classe, onde irá criar o personagem do jogador de acordo com a classe escolhida Console.WriteLine("\nEscolha a classe:"); Console.WriteLine("\n[1 - Guerreiro] [2 - Mago] [3 - Swashbuckler]"); //metodo para o jogador só conseguir digitar numeros (1 é o minimo e 3 o maximo) escolha = LerTeclado.intervalo(1, 3); Console.Clear(); switch (escolha) { case 1: Jogador = new Guerreiro(nome); break; case 2: Jogador = new Mago(nome); break; case 3: Jogador = new Swashbuckler(nome); break; default: return(Jogador = new Guerreiro(nome)); } int confirmarResetar; //laço DO que repete o processo até todos os pontos disponiveis serem gastos e o jogador confirmar sua escolha do { //condição que só permitirá o jogador colocar pontos nos atributos se tiver pontos disponiveis //colocar pontos nos atributos if (pontosTotal > 0) { Jogador.status(pontosTotal, nome); Console.Write("Quantas pontos deseja distribuir em força? "); //metodo para o jogador só conseguir digitar numeros (0 é o minimo e pontosTotal é o maximo) pontosGastos = LerTeclado.intervalo(0, pontosTotal); pontosTotal -= pontosGastos; Jogador.Forca += pontosGastos; } Console.Clear(); if (pontosTotal > 0) { Jogador.status(pontosTotal, nome); Console.Write("Quantas pontos deseja distribuir em destreza? "); pontosGastos = LerTeclado.intervalo(0, pontosTotal); pontosTotal -= pontosGastos; Jogador.Destreza += pontosGastos; } Console.Clear(); if (pontosTotal > 0) { Jogador.status(pontosTotal, nome); Console.Write("Quantas pontos deseja distribuir em inteligencia? "); pontosGastos = LerTeclado.intervalo(0, pontosTotal); pontosTotal -= pontosGastos; Jogador.Inteligencia += pontosGastos; } Console.Clear(); Console.Clear(); Jogador.status(pontosTotal, nome); //condição que se não tiver mais pontos para investir, o jogador pode confirmar suas escolhas ou realocar seus pontos if (pontosTotal == 0) { Console.WriteLine("\nDeseja confirmar ou resetar seus pontos? \n[1 - Confirmar] [2 - Resetar]"); confirmarResetar = LerTeclado.intervalo(1, 2); if (confirmarResetar == 1) { pontosConfirmar = true; } else if (confirmarResetar == 2) { Jogador.Forca = Jogador.forcainicial; Jogador.Destreza = Jogador.destrezainicial; Jogador.Inteligencia = Jogador.inteligenciainicial; pontosTotal = 7; pontosGastos = 0; } } Console.Clear(); } while (pontosConfirmar == false); return(Jogador); }