public void Atacar(Personagem oponente) { int randomNumber = random.Next(0, poderes.Count); if (this.Pe >= poderes[randomNumber].Pe) { this.Pe -= poderes[randomNumber].Pe; oponente.Pf -= poderes[randomNumber].Dano; } else { Console.WriteLine(); Console.WriteLine("Atacante não tem PE suficiente"); Console.WriteLine("{0} está esgotado! Usou este turno para se recuperar!", this.Nome); Console.WriteLine(); Recuperar(); } Console.WriteLine("{0,15} usou seu poder {1,15} em {2,15}. Dano causado: {3}", this.Nome.ToUpper(), poderes[randomNumber].Nome.ToUpper(), oponente.Nome.ToUpper(), poderes[randomNumber].Dano); }
public static void Confrontar(Personagem oponente1, Personagem oponente2) { oponente1.RecuperarTudo(); oponente2.RecuperarTudo(); if (oponente1.Mimico) { oponente1.ClonarPoderes(oponente2); } if (oponente2.Mimico) { oponente2.ClonarPoderes(oponente1); } if (oponente1.Editora != oponente2.Editora) { Console.WriteLine("Confronto CrossOver"); } else { Console.WriteLine("Confronto {0}", oponente1.Editora.ToUpper()); } if (oponente1.GetType().ToString().IndexOf("Heroi") >= 0 && oponente2.GetType().ToString().IndexOf("Vilao") >= 0) { Console.WriteLine("Confronto Clássico: Bem versus o Mal!"); } else if (oponente1.GetType().ToString().IndexOf("Heroi") >= 0 && oponente2.GetType().ToString().IndexOf("Heroi") >= 0) { Console.WriteLine("Confronto Herói contra Herói!"); } else { Console.WriteLine("Confronto Vilão contra Vilão!"); } Console.WriteLine(); Console.WriteLine("{0} - Pf({1}) \t\tVERSUS\t\t {2} - Pf({3})", oponente1.Nome, oponente1.Pf, oponente2.Nome, oponente2.Pf); Console.WriteLine(); Random rnd = new Random(); while (oponente1.Pf > 0 && oponente2.Pf > 0) { switch (rnd.Next(1, 3)) { case 1: oponente1.Atacar(oponente2); break; case 2: oponente2.Atacar(oponente1); break; default: Console.WriteLine("Falha no jogo!\t Informe ao programdor (Erro: Class:Confronto-Confrontar-switch)"); break; } } if (oponente1.Pf > oponente2.Pf) { Console.WriteLine(); Console.WriteLine("Combate encerrado: vencedor : {0} - Pf({1})", oponente1.Nome, oponente1.Pf); Console.WriteLine("Combate encerrado: perdedor : {0} - Pf({1})", oponente2.Nome, oponente2.Pf); if (oponente1.Drenador) { oponente1.Drenar(oponente2); } } else { Console.WriteLine(); Console.WriteLine("Combate encerrado: vencedor : {0} - Pf({1})", oponente2.Nome, oponente2.Pf); Console.WriteLine("Combate encerrado: perdedor : {0} - Pf({1})", oponente1.Nome, oponente1.Pf); if (oponente2.Drenador) { oponente2.Drenar(oponente1); } } }