Exemplo n.º 1
0
        static public void CombatWindWaterReview()
        {
            Affinity affinityTable = new Affinity();                           //invocamos la clase de affinidades para acceder a la tabla de tipos

            Critter defCritter = new Critter("Alma", 10, 15, 20, 1, 250);      //creamos una nueva criatura para combatir de elemento Viento
            Critter atqCritter = new Critter("Nero", 60, 60, 20, 2, 400);      //creamos un criter atacante y uno defensor

            Console.WriteLine("Afinidad del critter: " + defCritter.Affinity); //mostramos que si sea de afinidad Viento

            AttackSkill attackSkill1 = new AttackSkill("pancho Power", 10, 2); //creamos el ataque de daño de Agua

            atqCritter.DefineSkills(3, attackSkill1);                          //le damos el ataque;


            Console.WriteLine("Afinidad del Ataque: " + attackSkill1.MyAffinity); //mostrar para saber si si es de afinidad de Agua

            Console.WriteLine("Vida del Critter: " + defCritter.Hp);              //mostramos la vida antes del ataque

            //procedemos al ataque

            if (attackSkill1 is AttackSkill)
            {
                float mult = affinityTable.AfinityTable(attackSkill1.MyAffinity, defCritter.Affinity); //con la tabla de tipos logramos sacar el multiplicador
                Console.WriteLine(mult);
                defCritter.OnHit(atqCritter.CurrentAtq, atqCritter.Moveset[0].Power, mult);
            }

            Console.WriteLine("Vida del Critter: " + defCritter.Hp); //mostramos la vida despues del ataque
        }
Exemplo n.º 2
0
        static public void CombatSimulator()
        {
            Affinity affinity = new Affinity(); //definimos las afinidades para acceder a la tableta
            Player   player1  = new Player();
            Player   player2  = new Player();


            //Critter defCritter = new Critter("Alma", 75, 15, 50, 2, 500); //creamos una nueva criatura para combatir
            //Critter atqCritter = new Critter("Alma", 20, 60, 20, 1, 350); //creamos un criter atacante y uno defensor

            //player1.Critters.Add(defCritter); // le agregamos los criter a cada usuario
            //player2.Critters.Add(atqCritter);

            // AttackSkill attackSkillP1 = new AttackSkill("pancho Power", 10, 2); //creamos un ataque momentaneo para el primer critter
            //AttackSkill attackSkillP2 = new AttackSkill("pancho Power", 5, 1); // creamos un ataque momentaneo para el segundo



            Random range = new Random();


            //player1.Critters[0].DefineSkills(1, attackSkillP1); //le agregamos los ataques al move set
            //player2.Critters[0].DefineSkills(1, attackSkillP2);

            player1.EquipCritters(1);
            player2.EquipCritters(1);

            int coin = range.Next(0, 2);

            while (player2.Critters[0].Hp >= 0 || player1.Critters[0].Hp >= 0)
            {
                if (player2.Critters[0].BaseSpeed > player1.Critters[0].BaseSpeed)
                {
                    if (player2.Critters[0].Moveset[0] is AttackSkill askil)
                    {
                        askil = player2.Critters[0].Moveset[0] as AttackSkill;

                        float mult = affinity.AfinityTable(askil.MyAffinity, player1.Critters[0].Affinity);
                        player1.Critters[0].OnHit(player2.Critters[0].BaseAttack, askil.Power, mult);

                        if (player1.Critters[0].Hp <= 0)
                        {
                            break;
                        }
                    }
                    if (player1.Critters[0].Moveset[0] is AttackSkill askil1)
                    {
                        askil1 = player1.Critters[0].Moveset[0] as AttackSkill;

                        float mult = affinity.AfinityTable(askil1.MyAffinity, player2.Critters[0].Affinity);
                        player2.Critters[0].OnHit(player1.Critters[0].BaseAttack, askil1.Power, mult);

                        if (player2.Critters[0].Hp <= 0)
                        {
                            break;
                        }
                    }
                }
                else if (player1.Critters[0].BaseSpeed > player2.Critters[0].BaseSpeed)
                {
                    if (player1.Critters[0].Moveset[0] is AttackSkill askil)
                    {
                        askil = player1.Critters[0].Moveset[0] as AttackSkill;

                        float mult = affinity.AfinityTable(askil.MyAffinity, player2.Critters[0].Affinity);
                        player2.Critters[0].OnHit(player1.Critters[0].BaseAttack, askil.Power, mult);

                        if (player2.Critters[0].Hp <= 0)
                        {
                            break;
                        }
                    }
                    if (player2.Critters[0].Moveset[0] is AttackSkill askil1)
                    {
                        askil1 = player2.Critters[0].Moveset[0] as AttackSkill;

                        float mult = affinity.AfinityTable(askil1.MyAffinity, player1.Critters[0].Affinity);
                        player1.Critters[0].OnHit(player2.Critters[0].BaseAttack, askil1.Power, mult);

                        if (player1.Critters[0].Hp <= 0)
                        {
                            break;
                        }
                    }
                }
                else if (player2.Critters[0].BaseSpeed == player1.Critters[0].BaseSpeed && coin == 0)
                {
                    if (player2.Critters[0].Moveset[0] is AttackSkill askil)
                    {
                        askil = player2.Critters[0].Moveset[0] as AttackSkill;

                        float mult = affinity.AfinityTable(askil.MyAffinity, player1.Critters[0].Affinity);
                        player1.Critters[0].OnHit(player2.Critters[0].BaseAttack, askil.Power, mult);

                        if (player1.Critters[0].Hp <= 0)
                        {
                            break;
                        }
                    }
                    if (player1.Critters[0].Moveset[0] is AttackSkill askil1)
                    {
                        askil1 = player1.Critters[0].Moveset[0] as AttackSkill;

                        float mult = affinity.AfinityTable(askil1.MyAffinity, player2.Critters[0].Affinity);
                        player2.Critters[0].OnHit(player1.Critters[0].BaseAttack, askil1.Power, mult);

                        if (player2.Critters[0].Hp <= 0)
                        {
                            break;
                        }
                    }
                }
                else if (player1.Critters[0].BaseSpeed == player2.Critters[0].BaseSpeed && coin == 1)
                {
                    if (player1.Critters[0].Moveset[0] is AttackSkill askil)
                    {
                        askil = player1.Critters[0].Moveset[0] as AttackSkill;

                        float mult = affinity.AfinityTable(askil.MyAffinity, player2.Critters[0].Affinity);
                        player2.Critters[0].OnHit(player1.Critters[0].BaseAttack, askil.Power, mult);

                        if (player2.Critters[0].Hp <= 0)
                        {
                            break;
                        }
                    }
                    if (player2.Critters[0].Moveset[0] is AttackSkill askil1)
                    {
                        askil1 = player2.Critters[0].Moveset[0] as AttackSkill;

                        float mult = affinity.AfinityTable(askil1.MyAffinity, player1.Critters[0].Affinity);
                        player1.Critters[0].OnHit(player2.Critters[0].BaseAttack, askil1.Power, mult);

                        if (player1.Critters[0].Hp <= 0)
                        {
                            break;
                        }
                    }
                }
            }

            Console.WriteLine("-----------------------------------------------------------------");

            if (player2.Critters[0].Hp <= 0)
            {
                Console.WriteLine("Cantidad de Criaturas Player 1: " + player1.Critters.Count);
                Console.WriteLine("Cantidad de Criaturas Player 2: " + player2.Critters.Count);
                Console.WriteLine("-----------------------------------------------------------------");

                player1.Critters.Add(player2.Critters[0]);
                player2.Critters.Remove(player2.Critters[0]);


                Console.WriteLine("Cantidad de Criaturas Player 1: " + player1.Critters.Count);
                Console.WriteLine("Cantidad de Criaturas Player 2: " + player2.Critters.Count);
                Console.WriteLine("Ganador:  Player 1 ");
            }

            Console.WriteLine("-----------------------------------------------------------------");

            if (player1.Critters[0].Hp <= 0)
            {
                Console.WriteLine("Cantidad de Criaturas Player 1: " + player1.Critters.Count);
                Console.WriteLine("Cantidad de Criaturas Player 2: " + player2.Critters.Count);
                Console.WriteLine("-----------------------------------------------------------------");

                player2.Critters.Add(player1.Critters[0]);
                player1.Critters.Remove(player1.Critters[0]);

                Console.WriteLine("Cantidad de Criaturas Player 1: " + player1.Critters.Count);
                Console.WriteLine("Cantidad de Criaturas Player 2: " + player2.Critters.Count);

                Console.WriteLine("Ganador:  Player 2 ");
            }
        }