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 }
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 "); } }