//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); }
// Update is called once per frame void Update() { if (EncontrarMetodo.DefineSiHaycriaturas() == true) { Collieder.enabled = false; } }
/// <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++; } }
private void ActicaSelector() { menuSiNo.SetActive(true); NumDesicionDesion = EncontrarMetodo.numDefinirNumSelector(NumDesicionDesion); EncontrarMetodo.definirMovimientoSelector_Yes_no(NumDesicionDesion); if (Input.GetKeyDown(KeyCode.Space)) { Acciones(NumDesicionDesion); } }
private void Acciones(int Acciones) { // yes if (Acciones == 0) { EncontrarMetodo.AnadirABulleWild(crewildInicial); Invoke("SalirBaul", 0.2f); Invoke("destroidInvoke", 0.3f); //añadie criatura // salir del objeto y destruirlo } //no else if (Acciones == 1) { // salir de objeto Invoke("SalirBaul", 0.2f); } }
// Start is called before the first frame update void Start() { LibreriaS = GameObject.Find("Game Manager").GetComponent <libreriaDeScrips>(); Canvastext = GameObject.Find("Canvas").GetComponent <Canvas>(); TextoDialogo = GameObject.Find("Canvas/box Texto/mask/Text").GetComponent <Text>(); puntero = new Puntero(); menuSiNo = GameObject.Find("Canvas/box Election"); crewildInicial = EncontrarMetodo.EncontrarCrewild(NombreCrewild, 3); ObjImahenCrewil = GameObject.Find("Canvas/cuadroCrewild"); imagenCrewild = GameObject.Find("Canvas/cuadroCrewild/Crewild"); Invoke("InvokeDesactivarObjetos", 1f); }
/// <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); }
void cargaDatosGlovales() { SaveDataInfoGloval data = SaveSystem.loadDataDatosGlovales(); for (int i = 0; i < 8; i++) { LibreriaS.PanelJugador.carteleImgWanted[i].activadorCarteles = data.Recompensas[i]; } LibreriaS.inventario.Dinero = data.Dinero; Vector2 Posvar = new Vector2(data.posicion[0], data.posicion[1]); FindObjectOfType <movimiento>().transform.position = Posvar; FindObjectOfType <movimiento>().pos = Posvar; if (data.itenEquipado != null) { LibreriaS.inventario.ItenEquipado = EncontrarMetodo.EncontrarItem(data.itenEquipado); } else { LibreriaS.inventario.ItenEquipado = null; } }
public override IEnumerator AnimationBrawler(bool TwovsTwo, string QuienAtaca, Animation animationBrawler, string NombreDelAtaque, MonoBehaviour BehaviourCall) { Vector2 PosicionRefec = Vector2.zero; RectTransform ObjetoInsta = null; libreriaDeScrips libreriaS = GameObject.FindObjectOfType <libreriaDeScrips>(); string NombrePLayAnimt = ""; PosicionRefec = new Vector2(-144f, -74f); // animationBrawler.AddClip(this.animaBattle[0], "Attack"); ObjetoInsta = CrearObjetos.CrearObjeto("Prefac/Batalla/PinchosEnvenenar", "PinchosEnvenenar", PosicionRefec); UnityEngine.UI.Image ImagenPersonaje = null; if (TwovsTwo == false) { //ataca de espalda if (QuienAtaca == "Player") { ImagenPersonaje = animationBrawler.GetComponent <animationScritpBatle>().ImagenEnemigo; libreriaS.Batalla.imagenePlayer.sprite = libreriaS.informacionCrewild.CrewillInstancia[libreriaS.Batalla.ActualSelNumPlayer].animaCrewildEspalda[2]; NombrePLayAnimt = "PinchosSecuencia1"; } //ataca de frente else if (QuienAtaca == "Enemy") { // animationBrawler.AddClip(this.animaBattle[1], "Attack"); ImagenPersonaje = animationBrawler.GetComponent <animationScritpBatle>().imagenePlayer; libreriaS.Batalla.ImagenEnemigo.sprite = libreriaS.Batalla.EnemigosBatalla[libreriaS.Batalla.ActualSeNumEnemy].animaCrewildFrentre[2]; NombrePLayAnimt = "PinchosSecuencia2"; } } else if (TwovsTwo == true) { // sin implementaciontodavia } OpcionesAnimation lAnimacionesAux = ObjetoInsta.GetComponent <OpcionesAnimation>(); AudioClip clip1 = (AudioClip)Resources.Load("Audios/batalla/Hit poison"); animationBrawler.GetComponent <animationScritpBatle>().AudioVfx.PlayOneShot(clip1); ObjetoInsta.GetComponent <Animation>().Play(NombrePLayAnimt); yield return(new WaitWhile(() => lAnimacionesAux.Disparador == false)); lAnimacionesAux.Disparador = false; SecuenciasAux.DevuelveSpriteBase(QuienAtaca); ObjetoInsta.GetComponent <PlayScritp>().animacion = new Sprite[1]; ObjetoInsta.GetComponent <PlayScritp>().animacion[0] = EncontrarMetodo.DevuelveSprite("Sprites/vfx/disparo de energia/ataque 1", "impacto 1"); //Parpadeo BehaviourCall.StartCoroutine(SecuenciasAux.SecunciaDaño(ImagenPersonaje)); //audio hit clip1 = (AudioClip)Resources.Load("Audios/batalla/Hit_Hurt2"); animationBrawler.GetComponent <animationScritpBatle>().AudioVfx.PlayOneShot(clip1); //define el daño y ejecuta el efecto float Daño = CalculoDaño.CalcularDaño(QuienAtaca, NombreDelAtaque); Daño = (int)Daño; Debug.Log("valor del daño : " + Daño); BehaviourCall.StartCoroutine(CalculoDaño.EjecutarDaño(QuienAtaca, Daño)); yield return(new WaitForSeconds(1.2f)); MonoBehaviour.Destroy(ObjetoInsta.gameObject); bool Activaefecto = false; if (SecuenciasAux.RetornaSitieneEstadoAlterado(TwovsTwo, QuienAtaca) == true) { Activaefecto = CalculoDaño.ProbailidadEfecto(probabilidadEfecto); if (Activaefecto == true) { Debug.Log("Active envenenamiento "); //Efeto Evenenamiento CalculoDaño.PausaEjecucionEvento = true; BehaviourCall.StartCoroutine(SecuenciasAux.EnvenenamientoEfecto(ImagenPersonaje)); yield return(new WaitWhile(() => CalculoDaño.PausaEjecucionEvento == true)); SecuenciasAux.CambiaEstadoCrewild(QuienAtaca, EstadosEnum.poison); } } //salir de la seccuencia yield return(new WaitWhile(() => CalculoDaño.PausaEjecucionEvento == true)); yield return(new WaitWhile(() => lAnimacionesAux.Disparador == true)); lAnimacionesAux.Disparador = false; // animationBrawler.GetComponent<animationScritpBatle>().dialogue = true; animationBrawler.GetComponent <animationScritpBatle>().TextoDeBatalla[0] = ""; animationBrawler.GetComponent <animationScritpBatle>().text.text = ""; animationBrawler.GetComponent <animationScritpBatle>().dialogue = true; animationBrawler.GetComponent <animationScritpBatle>().pausaIenumerator = false; yield return(0); }
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); }
public override IEnumerator AnimationBrawler(bool TwovsTwo, string QuienAtaca, Animation animationBrawler, string NombreDelAtaque, MonoBehaviour BehaviourCall) { cantidadDeusos--; Vector2 PosicionRefec = Vector2.zero; RectTransform ObjetoInsta = null; UnityEngine.UI.Image ImagenPersonaje = null; libreriaDeScrips libreriaS = GameObject.FindObjectOfType <libreriaDeScrips>(); string NombrePLayAnimt = ""; PosicionRefec = new Vector2(-144f, -74f); // animationBrawler.AddClip(this.animaBattle[0], "Attack"); ObjetoInsta = CrearObjetos.CrearObjeto("Prefac/Batalla/Disparo", "Disparo", PosicionRefec); if (TwovsTwo == false) { //ataca de espalda if (QuienAtaca == "Player") { ImagenPersonaje = animationBrawler.GetComponent <animationScritpBatle>().ImagenEnemigo; libreriaS.Batalla.imagenePlayer.sprite = libreriaS.informacionCrewild.CrewillInstancia[libreriaS.Batalla.ActualSelNumPlayer].animaCrewildEspalda[2]; NombrePLayAnimt = "DisparoSecuencia1"; } //ataca de frente else if (QuienAtaca == "Enemy") { // animationBrawler.AddClip(this.animaBattle[1], "Attack"); ImagenPersonaje = animationBrawler.GetComponent <animationScritpBatle>().imagenePlayer; libreriaS.Batalla.ImagenEnemigo.sprite = libreriaS.Batalla.EnemigosBatalla[libreriaS.Batalla.ActualSeNumEnemy].animaCrewildFrentre[2]; NombrePLayAnimt = "DisparoSecuencia2"; } } else if (TwovsTwo == true) { // sin implementaciontodavia } ObjetoInsta.GetComponent <Animation>().Play(NombrePLayAnimt); // animationBrawler.Play("Attack"); OpcionesAnimation lAnimacionesAux = ObjetoInsta.GetComponent <OpcionesAnimation>(); yield return(new WaitWhile(() => lAnimacionesAux.Disparador == false)); lAnimacionesAux.Disparador = false; SecuenciasAux.DevuelveSpriteBase(QuienAtaca); // energia disparada ObjetoInsta.GetComponent <PlayScritp>().animacion = new Sprite[3]; for (int i = 0; i < 3; i++) { ObjetoInsta.GetComponent <PlayScritp>().animacion[i] = EncontrarMetodo.DevuelveSprite("Sprites/vfx/disparo de energia/ataque 1", "Disparo " + (i + 1)); } yield return(new WaitWhile(() => lAnimacionesAux.Disparador == false)); lAnimacionesAux.Disparador = false; //impacto ObjetoInsta.GetComponent <PlayScritp>().animacion = new Sprite[1]; ObjetoInsta.GetComponent <PlayScritp>().animacion[0] = EncontrarMetodo.DevuelveSprite("Sprites/vfx/disparo de energia/ataque 1", "impacto 1"); //parpadeo BehaviourCall.StartCoroutine(SecuenciasAux.SecunciaDaño(ImagenPersonaje)); //define el daño y ejecuta el efecto float Daño = CalculoDaño.CalcularDaño(QuienAtaca, NombreDelAtaque); Daño = (int)Daño; Debug.Log("valor del daño : " + Daño); BehaviourCall.StartCoroutine(CalculoDaño.EjecutarDaño(QuienAtaca, Daño)); yield return(new WaitForSeconds(1.2f)); MonoBehaviour.Destroy(ObjetoInsta.gameObject); //salir de la seccuencia yield return(new WaitWhile(() => CalculoDaño.PausaEjecucionEvento == true)); yield return(new WaitWhile(() => lAnimacionesAux.Disparador == true)); lAnimacionesAux.Disparador = false; // animationBrawler.GetComponent<animationScritpBatle>().dialogue = true; animationBrawler.GetComponent <animationScritpBatle>().TextoDeBatalla[0] = ""; animationBrawler.GetComponent <animationScritpBatle>().text.text = ""; animationBrawler.GetComponent <animationScritpBatle>().dialogue = true; animationBrawler.GetComponent <animationScritpBatle>().pausaIenumerator = false; }
// activa todos menus del jugador void ActivaMenus() { /* * MenuCrewilds * MenuEstados * MenuObjetos * MenuJugador * MenuEquipo * MenuGuardado * MenuSalirA */ switch (NumSquareBraquet) { // menu de criaturas case 0: Debug.Log("menu de criaturas"); if (EncontrarMetodo.DefineSiHaycriaturas()) { Invoke("invokeTimePause", 0.1f); LibreriaS.SeleccionDeCriaturas.SelectPos(); LibreriaS.SeleccionDeCriaturas.actualizaDatos(); } break; // Menu Estados case 1: Debug.Log("Menu Estados"); if (EncontrarMetodo.DefineSiHaycriaturas()) { MenuEstados.enabled = true; CreWildInfoScript.Active = true; LibreriaS.SeleccionDeCriaturas.actualizaDatos(); } break; // Menu Objetos case 2: Debug.Log("Menu Objetos"); Invoke("invokeIncentario", 0.1f); Invoke("invokeInventarioAux", 0.05f); break; // Menu Jugador case 3: Debug.Log(" Menu Jugador"); MenuJugador.enabled = true; LibreriaS.JugadorInfo.activador = true; break; // Menu Equipo case 4: Debug.Log("Menu Equipo"); MenuEquipo.enabled = true; Invoke("invokeEquipo", 0.1f); break; // Menu Guardado case 5: Debug.Log(" Menu Guardado"); MenuGuardado.enabled = true; Invoke("InvokeGuardado", 0.1f); break; // Menu Salir A case 6: Debug.Log("Menu Salir A"); SceneManager.LoadScene("Intro"); MenuSalirA.enabled = true; break; // Menu Salir del menu case 7: Debug.Log("Salir"); SalirMenuSeleccion(); break; } }
public DefinirCreaturasAllamar(string nombre, int niveles) { NombreCriatura = nombre; nivel = niveles; criatura = EncontrarMetodo.EncontrarCrewild(NombreCriatura, nivel); }