/// <summary> /// pasandole el nombre se retornan las clases hija a utilizar /// </summary> /// <param name="NombreAtaque"></param> /// <returns></returns> public static AttacksBase EncontrarAtaques(string NombreAtaque) { AttacksBase ClaseARetornar = null; switch (NombreAtaque) { case "Barrida": ClaseARetornar = new ataqueBarrida(); break; case "Disp de Energia": ClaseARetornar = new DisparoEnergia(); break; case "Esquive": ClaseARetornar = new Esquive(); break; case "Triple Impacto": ClaseARetornar = new TripleImpacto(); break; case "PInchosVenenoso": ClaseARetornar = new PInchosVenenoso(); break; case "Cura": ClaseARetornar = new Cura(); break; case "Adsorver": ClaseARetornar = new Adsorver(); break; case "Ataque Electrico": ClaseARetornar = new AtaqueElectrico(); break; case "Mega puño": ClaseARetornar = new MegaPuño(); break; case "Surf": ClaseARetornar = new Surf(); break; default: Debug.Log("no se ha Ataque:" + NombreAtaque + " Corregir o no existe"); Debug.Break(); break; } return(ClaseARetornar); }
/// <summary> /// calcula el valor de un ataque si acierta o falla en un combate si es menor que 1 es un ataque fallido /// </summary> /// <returns></returns> public static bool CalculoAcierto(string Atacante, string NombreDelAtaque) { //define si se ha acerta o fallado el ataque bool AciertoODesacierto; float ProbabilidadDeAcierto = 0; libreriaDeScrips LibreriaS = FindObjectOfType <libreriaDeScrips>(); float ValorPresicion, ValorEvacion; PresicionEvacionValor Valores = RetornaPrecisionEvacion(Atacante); ValorPresicion = Valores.ValorPresicion; ValorEvacion = Valores.ValorEvacion; AttacksBase AtaqueUsado = EncontrarMetodo.EncontrarAtaques(NombreDelAtaque); ProbabilidadDeAcierto = AtaqueUsado.PrecisionDelAtaque * (ValorPresicion / ValorEvacion); AciertoODesacierto = AciertoDesacierto(ProbabilidadDeAcierto); return(AciertoODesacierto); }