예제 #1
0
        //Método básico que permite al Caballero atacar a otro.
        public virtual Caballero Ataque(Caballero caballeroIn)
        {
            int damage      = this.equipoDeCombate.podArma + this.fuerza + this.cosmos;
            int effDamage   = damage - caballeroIn.equipoDeCombate.defArmadura;

            caballeroIn.vida -= effDamage;

            caballeroIn.equipoDeCombate.UpdateArmadura(effDamage);
            this.equipoDeCombate.UpdateArma(effDamage);

            Console.Write(this.nombre + " ha atacado con su Ataque " + this.tipo + " a " + caballeroIn.nombre + ".\n" +
                "Daño inicial: " + damage + "\n" +
                "Daño efectivo: " + effDamage);

            return caballeroIn;
        }
예제 #2
0
        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;
        }
예제 #3
0
 public virtual Caballero Actuar(Caballero caballeroIn)
 {
     return caballeroIn;
 }
예제 #4
0
        //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;
        }
예제 #5
0
        //El Caballero Dorado tiene tres opciones: Ataca, Incrementa su Cosmos, o se abstiene debido a su Conciencia.
        public override Caballero Actuar(Caballero caballeroIn)
        {
            int auxInt1 = GA.Next(0, 100 + 1);
            int auxInt2 = 100 - this.conciencia;

            if (auxInt1 <= auxInt2)
            {
                auxInt1 = GA.Next(0, 2 + 1);

                if (auxInt1 == 0 || auxInt1 == 1)
                    caballeroIn = base.Ataque(caballeroIn);
                else
                    base.IncrementarCosmos();

                idleTurns = 0;
            }
            else
            {
                Console.Write(base.nombre + " no ha actuado debido a su conciencia.");
                idleTurns++;
            }

            Herramientas.ControlDeFlujo();

            return caballeroIn;
        }
예제 #6
0
        //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;
        }
예제 #7
0
        //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");
        }
예제 #8
0
        //Elige a un Caballero De Bronce que esté vivo aleatoriamente para reemplazar a otro vencido.
        public static CaballeroBronce ReplaceCaballero(Caballero caballeroIn, List<CaballeroBronce> broncesIn)
        {
            Random GA = new Random();

            string nombreAntiguo = caballeroIn.nombre;

            int auxInt = GA.Next(0, 4 + 1);
            while (broncesIn[auxInt].vida <= 0)
                auxInt = GA.Next(0, 4 + 1);

            string nombreNuevo = broncesIn[auxInt].nombre;

            Console.Write(caballeroIn.nombre + " ha sido vencido. \n\n" + nombreNuevo + " reemplazará al caído " + nombreAntiguo + ".");
            Herramientas.ControlDeFlujo();

            return broncesIn[auxInt];
        }