public Casa(int numeroIn, CaballeroDorado doradoIn) { this.numero = numeroIn; this.caballeroDorado = doradoIn; }
public override bool Vencido(CaballeroDorado doradoIn, Caballero caballeroIn, int numCasaIn) { if (base.vida <= 0) { base.vida = 0; int auxInt = GA.Next(0, 2); if (auxInt == 0) { base.vida = base.originalVida; base.equipoDeCombate.durArma = base.equipoDeCombate.originalDurArma; base.equipoDeCombate.podArma = base.equipoDeCombate.originalPodArma; base.equipoDeCombate.durArmadura = base.equipoDeCombate.originalDurArmadura; base.equipoDeCombate.defArmadura = base.equipoDeCombate.originalDefArmadura; Console.Write(base.nombre + " ha sido vencido, pero resucitó."); Herramientas.ControlDeFlujo(); return false; } Console.Write(base.nombre + " ha sido vencido, y no pudo resucitar."); Herramientas.ControlDeFlujo(); return true; } return false; }
public virtual CaballeroDorado Actuar(CaballeroDorado doradoIn) { return doradoIn; }
//Método derivado que permite modificar el mensaje mostrado en consola cuando el Caballero de Oro es vencido. public override Boolean Vencido(CaballeroDorado doradoIn, Caballero caballeroIn, int numCasaIn) { if (base.vida <= 0) { base.vida = 0; Herramientas.updateTitle(doradoIn, caballeroIn, numCasaIn); Console.Write(this.nombre + " ha sido vencido. Los Caballeros de Bronce se dirigen a la siguiente Casa."); Herramientas.ControlDeFlujo(); return true; } return false; }
//El Caballero Plateado tiene dos opciones: Ataca o Incrementa su Cosmos. public override CaballeroDorado Actuar(CaballeroDorado doradoIn) { int auxInt = GA.Next(0, 2 + 1); if (auxInt == 0 || auxInt == 1) doradoIn = (CaballeroDorado)base.Ataque(doradoIn); else base.IncrementarCosmos(); Herramientas.ControlDeFlujo(); return doradoIn; }
//Incrementa la Conciencia del Caballero contrincante en un número aleatorio entre 5 y 10. public CaballeroDorado PredicarPorZahori(CaballeroDorado caballeroDoradoIn) { int auxInt1 = GA.Next(5, 10 + 1); caballeroDoradoIn.conciencia += auxInt1; Console.Write(base.nombre + " ha Predicado Por Zahorí.\n" + "Incremento en conciencia de " + caballeroDoradoIn.nombre + ": Desde " + (caballeroDoradoIn.conciencia - auxInt1) + " a " + caballeroDoradoIn.conciencia + "."); return caballeroDoradoIn; }
//Dependiendo del Amor del Caballero, existe una probabilidad de vencer instantáneamente al Caballero contrincante. public CaballeroDorado EjecucionDeAthena(CaballeroDorado doradoIn) { int auxInt1 = base.amor % 40; int auxInt2 = GA.Next(0, 100 + 1); if (auxInt2 <= auxInt1) { doradoIn.vida = 0; Console.Write(base.nombre + " ha utilizado Ejecución De Athena, matando a " + doradoIn.nombre + "."); } else Console.Write(base.nombre + " ha fallado en su Ejecución De Athena contra " + doradoIn.nombre + "."); return doradoIn; }
//El Caballero de Bronce tiene cinco opciones: Ataca, Piensa En Zahorí, Predica Por Zahorí, realiza la Ejecución De Athena, o Incrementa su Cosmos. public override CaballeroDorado Actuar(CaballeroDorado doradoIn) { int auxInt = GA.Next(0, 6 + 1); if (auxInt == 0 || auxInt == 1 || auxInt == 2) doradoIn = (CaballeroDorado)base.Ataque(doradoIn); else if (auxInt == 3) this.IncrementarCosmos(); else if (auxInt == 4) this.PensarEnZahori(); else if (auxInt == 5) doradoIn = this.PredicarPorZahori(doradoIn); else if (auxInt == 6) doradoIn = this.EjecucionDeAthena(doradoIn); Herramientas.ControlDeFlujo(); return doradoIn; }
//TRUE si el Caballero ha sido vencido. public virtual Boolean Vencido(CaballeroDorado doradoIn, Caballero caballeroIn, int numCasaIn) { if (this.vida <= 0) { this.vida = 0; return true; } return false; }
//Actualiza los datos de los contrincantes en consola. public static void updateTitle(CaballeroDorado doradoIn, Caballero electoIn, int numCasaIn) { Console.Clear(); Console.WriteLine( "Casa: " + numCasaIn + "\n\n" + "Caballero Dorado: " + doradoIn.nombre + " de " + doradoIn.constelacion + ", Caballero " + doradoIn.tipo + "\n" + " Vida: " + doradoIn.vida + "/" + doradoIn.originalVida + "\n" + " Cosmos: " + doradoIn.cosmos + "\n" + " Conciencia: " + doradoIn.conciencia + "\n" + " Turnos Sin Atacar: " + doradoIn.idleTurns + "\n\n" + "Caballero Contrincante: " + electoIn.nombre + " de " + electoIn.constelacion + ", Caballero " + electoIn.tipo + "\n" + " Vida: " + electoIn.vida + "/" + electoIn.originalVida + "\n" + " Cosmos: " + electoIn.cosmos + "\n" + " Amor Por Zahorí: " + electoIn.amor + "\n\n"); }