//devuelve el valor de cuanto daño recive el oponente public static float CalcularDañoEspecial(string Atacante, string NombreDelAtaque) { float Daño = 0; float Nivel = 0, Ataque = 0, PoderAtaque = 0, Defensa = 0, Bonificacion = 1, Efectividad = 1; int variante = (int)Random.Range(85, 100); Capturardatos DatosAUsar = DatosEspeciales(Atacante); Ataque = DatosAUsar.PuntosAtaque; Defensa = DatosAUsar.Puntosdefensa; Nivel = DatosAUsar.nivel; PoderAtaque = EncontrarMetodo.EncontrarAtaques(NombreDelAtaque).PoderAtaque; Bonificacion = Bonificaciones(EncontrarMetodo.EncontrarAtaques(NombreDelAtaque).TipoDeAtaque, Atacante); Efectividad = EfectividadValor(EncontrarMetodo.EncontrarAtaques(NombreDelAtaque).TipoDeAtaque, Atacante); /* Daño=0.01×B×E×V×((0.2×N+1)×A×P/25×D+2) * N = Nivel del Pokémon que ataca. * A = Cantidad de ataque o ataque especial del Pokémon. Si el ataque que utiliza el Pokémon es físico se toma la cantidad de ataque y si es especial se toma la cantidad de ataque especial. * P = Poder del ataque, el potencial del ataque. * D = Cantidad de defensa del Pokémon rival. Si el ataque que hemos utilizado es físico cogeremos la cantidad de defensa del Pokémon rival, si el ataque que hemos utilizado es especial, se coge la cantidad de defensa especial del Pokémon rival. * B = Bonificación. Si el ataque es del mismo tipo que el Pokémon que lo lanza toma un valor de 1.5, si el ataque es de un tipo diferente al del Pokémon que lo lanza toma un valor de 1. * E = Efectividad. Puede tomar los valores de 0, 0.25, 0.5, 1, 2 y 4. * V = Variación. Es una variable que comprende todos los valores discretos entre 85 y 100 (ambos incluidos). */ Daño = (0.01f * Bonificacion * Efectividad * variante) * ((((0.2f * (Nivel + 1)) * Ataque * PoderAtaque) / (25 * Defensa)) + 2); return(Daño); }
/// <summary> /// retorna la criatura a utilizar /// </summary> /// <param name="DefinirCriaturas"></param> /// <returns></returns> public CrewildBase RetornaCriatura(DefinirCreaturasAllamar DefinirCriaturas) { CrewildBase CriaturaARetornar = null; //definir criatura DefinirCriaturas.criatura = EncontrarMetodo.EncontrarCrewild(DefinirCriaturas.NombreCriatura, DefinirCriaturas.nivel); // definir Ataques if (DefinirCriaturas.ataques.Length != 0) { //limpia Array de ataques for (int i = 0; i < 4; i++) { DefinirCriaturas.criatura.ataques[i] = null; } //encapsula nuevo ataque for (int i = 0; i < DefinirCriaturas.ataques.Length; i++) { DefinirCriaturas.criatura.ataques[i] = EncontrarMetodo.EncontrarAtaques(DefinirCriaturas.ataques[i]); } } CriaturaARetornar = DefinirCriaturas.criatura; return(CriaturaARetornar); }
/// <summary> /// Encapsula una criatura en el array de datos EnemigosBatalla de animationscriptbrauler /// </summary> /// <param name="DefinirCriaturas"></param> public void CriaturasParalabatalla(DefinirCreaturasAllamar DefinirCriaturas) { GameObject.FindObjectOfType <animationScritpBatle>().EnemigosBatalla = new CrewildBase[1]; //definir criatura DefinirCriaturas.criatura = EncontrarMetodo.EncontrarCrewild(DefinirCriaturas.NombreCriatura, DefinirCriaturas.nivel); // definir Ataques if (DefinirCriaturas.ataques.Length != 0) { //limpia Array de ataques for (int i = 0; i < 4; i++) { DefinirCriaturas.criatura.ataques[i] = null; } //encapsula nuevo ataque for (int i = 0; i < DefinirCriaturas.ataques.Length; i++) { DefinirCriaturas.criatura.ataques[i] = EncontrarMetodo.EncontrarAtaques(DefinirCriaturas.ataques[i]); } } GameObject.FindObjectOfType <animationScritpBatle>().EnemigosBatalla[0] = DefinirCriaturas.criatura; }
// metodos para llamar las criaturas para la batalla /// <summary> /// Encapsula las criaturas en el array de datos de animationscriptbrauler /// </summary> /// <param name="DefinirCriaturas"></param> public void CriaturasParalabatalla(DefinirCreaturasAllamar[] DefinirCriaturas) { FindObjectOfType <animationScritpBatle>().EnemigosBatalla = new CrewildBase[DefinirCriaturas.Length]; int contadorAux = 0; foreach (DefinirCreaturasAllamar DFC in DefinirCriaturas) { //definir criatura DFC.criatura = EncontrarMetodo.EncontrarCrewild(DFC.NombreCriatura, DFC.nivel); // definir Ataques if (DFC.ataques.Length != 0) { //limpia Array de ataques for (int i = 0; i < 4; i++) { DFC.criatura.ataques[i] = null; } //encapsula nuevo ataque for (int i = 0; i < DFC.ataques.Length; i++) { DFC.criatura.ataques[i] = EncontrarMetodo.EncontrarAtaques(DFC.ataques[i]); } } GameObject.FindObjectOfType <animationScritpBatle>().EnemigosBatalla[contadorAux] = DFC.criatura; contadorAux++; } }
/// <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); }
CrewildBase RetornarCrweild(SaveDataCrewild data) { CrewildBase CrewildARetornar = null; CrewildARetornar = EncontrarMetodo.EncontrarCrewild(data.nombreTaxonomico, 1); //metodo para llamar CrewillInstancia CrewildARetornar.Nombre = data.nombre; //devuelve el genero if (data.Genero.ToString() == GeneroEnum.Macho.ToString()) { CrewildARetornar.genero = GeneroEnum.Macho; } else if (data.Genero.ToString() == GeneroEnum.Hembra.ToString()) { CrewildARetornar.genero = GeneroEnum.Hembra; } //devuelve los ataques for (int a = 0; a < 4; a++) { CrewildARetornar.ataques[a] = null; if (data.Ataques[a] != null) { CrewildARetornar.ataques[a] = EncontrarMetodo.EncontrarAtaques(data.Ataques[a]); } } CrewildARetornar.Hp = data.hp; CrewildARetornar.hpTotal = data.hpTotal; //estadisticias CrewildARetornar.attack = data.ataque; CrewildARetornar.defence = data.defensa; CrewildARetornar.speed = data.velocida; CrewildARetornar.precision = data.presicion; CrewildARetornar.Evacion = data.evacion; CrewildARetornar.EspecialAttack = data.ataqueEspecial; CrewildARetornar.EspecialDefensa = data.DefensaEspecial; CrewildARetornar.Resistence = data.Resistencia; // Nivele de la criatura CrewildARetornar.Nivel = data.Nivel; //experiencia CrewildARetornar.experiencia = data.experiencia; CrewildARetornar.experienciaTotal = data.experienciaTotal; //empatia CrewildARetornar.sueño = data.sueño; CrewildARetornar.hambre = data.hambre; CrewildARetornar.Cordura = data.Cordura; CrewildARetornar.empatia = data.empatia; CrewildARetornar.sueñoTotal = data.sueñoTotal; CrewildARetornar.hambreTotal = data.hambreTotal; CrewildARetornar.CorduraTotal = data.CorduraTotal; CrewildARetornar.empatiaTotal = data.empatiaTotal; print("cargada datos, hp = " + CrewildARetornar.NombreTaxonomico); //actualiza los sprites en el menu de acciones. // LibreriaS.SeleccionDeCriaturas.ajusteSprite(i); return(CrewildARetornar); }