public void DefineSkills(int numSkills, Skill newSkill) { Random selector = new Random(); if (numSkills > 3) { numSkills = 3; } if (numSkills <= 0) { numSkills = 1; } if (Moveset.Count == 0 && newSkill is AttackSkill) { Moveset.Add(newSkill); } else if (Moveset.Count != 0 && Moveset.Count < numSkills) { Moveset.Add(newSkill); } else if (Moveset.Count == 0 && newSkill is SupportSkill) { AttackSkill remplaceSkill = new AttackSkill("basicPunch", selector.Next(1, 11), selector.Next(0, 7)); Moveset.Add(remplaceSkill); } }
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 AttackSkillPowerReview() { //Un AttackSkill NO puede crearse con poder 0, ni con un valor fuera del rango. AttackSkill attackSkill1 = new AttackSkill("pancho Power", 0, 3); // lo sobre cargamos ocn un cero en la parte del poder para probar Console.WriteLine("poder del Ataque 1 : " + attackSkill1.Power); //imprimimos el poder para probar //se comprueba que da uno aunque pongamos cero //revisamos el caso contrario AttackSkill attackSkill2 = new AttackSkill("pancho Power", 25, 3); // la sobrecargamos con un valor por fuera del rango de poder Console.WriteLine("poder del Ataque 2: " + attackSkill2.Power); //imprimimos para revisar //se comprueba que el valor se ajusta a 10 que es el maximo }
public void EquipCritters(int numCritters = 1) { Random selector = new Random(); if (numCritters > 3) { numCritters = 3; } if (numCritters <= 0) { numCritters = 1; } //aqui rellenos los criters de base for (int i = 0; i < numCritters; i++) { Critter newCritter = new Critter(i.ToString() + "-kun", selector.Next(10, 101), selector.Next(10, 101), selector.Next(10, 51), selector.Next(0, 8), selector.Next(0, 501)); Critters.Add(newCritter); } //aqui le damos las skils a cada criter for (int i = 0; i < Critters.Count; i++) { int numSkills = selector.Next(1, 4); for (int j = 0; j < numSkills; j++) { int skillCondition = selector.Next(0, 2); if (skillCondition == 0) { AttackSkill newSkill = new AttackSkill(j.ToString() + " power", selector.Next(0, 11), selector.Next(0, 7)); Critters[i].DefineSkills(numSkills, newSkill); } else if (skillCondition == 1) { SupportSkill newSkill = new SupportSkill("x", selector.Next(0, 11), selector.Next(0, 3)); Critters[i].DefineSkills(numSkills, newSkill); } } } }