public void MostrarDetallesPokemon(PokemonModelo pokemonDatos)
    {
        gameObject.SetActive(true);
        UIControlador.Instancia.DetallesPokemon.imagen.sprite = pokemonDatos.DatosFijos.sprite;
        UIControlador.Instancia.DetallesPokemon.nombre.text   = pokemonDatos.DatosFijos.nombre;
        string ele = string.Empty;

        if (pokemonDatos.DatosFijos.tipoElemento1 != Elemento.NINGUNO)
        {
            ele = Herramientas.TextoAtaqueElemento(pokemonDatos.DatosFijos.tipoElemento1);
        }
        if (pokemonDatos.DatosFijos.tipoElemento2 != Elemento.NINGUNO)
        {
            ele = string.Concat(ele, " ", Herramientas.TextoAtaqueElemento(pokemonDatos.DatosFijos.tipoElemento2));
        }
        UIControlador.Instancia.DetallesPokemon.elementos.text = ele;

        UIControlador.Instancia.DetallesPokemon.ataques1.MostrarAtaque(pokemonDatos.Ataques()[0], pokemonDatos);
        UIControlador.Instancia.DetallesPokemon.ataques2.MostrarAtaque(pokemonDatos.Ataques()[1], pokemonDatos);
        UIControlador.Instancia.DetallesPokemon.ataques3.MostrarAtaque(pokemonDatos.Ataques()[2], pokemonDatos);
        UIControlador.Instancia.DetallesPokemon.ataques4.MostrarAtaque(pokemonDatos.Ataques()[3], pokemonDatos);

        UIControlador.Instancia.DetallesPokemon.salud.text         = pokemonDatos.EstadisticaSaludMaxima().ToString();
        UIControlador.Instancia.DetallesPokemon.ataqueFisico.text  = pokemonDatos.EstadisticaAtaqueFisico().ToString();
        UIControlador.Instancia.DetallesPokemon.defensaFisica.text = pokemonDatos.EstadisticaDefensaFisica().ToString();
        UIControlador.Instancia.DetallesPokemon.ataqueMagico.text  = pokemonDatos.EstadisticaAtaqueMagico().ToString();
        UIControlador.Instancia.DetallesPokemon.defensaMagica.text = pokemonDatos.EstadisticaDefensaMagica().ToString();
        UIControlador.Instancia.DetallesPokemon.velocidad.text     = pokemonDatos.EstadisticaVelocidad().ToString();
    }
    public void MostrarVentana(PokemonModelo pokemon, AtaqueID nuevoAtaque)
    {
        this.pokemon        = pokemon;
        nuevoAtaqueAprender = ControladorDatos.Instancia.ObtenerAtaque(nuevoAtaque);
        AtaqueSeleccionado  = null;

        nuevoAtaqueNombre.text     = nuevoAtaqueAprender.nombre;
        nuevoAtaqueElemento.text   = Herramientas.TextoAtaqueElemento(nuevoAtaqueAprender.ataqueElemento);
        nuevoAtaquePoderYTipo.text = string.Concat(nuevoAtaqueAprender.poder, " ", nuevoAtaqueAprender.TextoTipoAtaque());

        for (int i = 0; i < detallesAtaques.Length; i++)
        {
            detallesAtaques[i].gameObject.SetActive(false);
        }

        for (int i = 0; i < pokemon.Ataques().Length; i++)
        {
            detallesAtaques[i].MostrarAtaque(pokemon.Ataques()[i].DatosFijos, this);
        }

        gameObject.SetActive(true);
    }
    public IEnumerator SubeDeNivelComprobarAtaquesAprendidos(PokemonModelo pokemon)
    {
        for (int i = 0; i < pokemon.DatosFijos.listaDeAtaques.Count; i++)
        {
            if (pokemon.DatosFijos.listaDeAtaques[i].nivelAprender == pokemon.Nivel && pokemon.DatosFijos.listaDeAtaques[i].ataque != AtaqueID.NINGUNO)
            {
                Ataque ataque = ControladorDatos.Instancia.ObtenerAtaque(pokemon.DatosFijos.listaDeAtaques[i].ataque);

                //... Si tiene menos de 4 ataques aprendidos lo asignamos directamente
                if (pokemon.Ataques().Count(x => x.ID == AtaqueID.NINGUNO) > 0)
                {
                    pokemon.AprenderNuevoAtaque(AtaqueID.NINGUNO, pokemon.DatosFijos.listaDeAtaques[i].ataque);

                    string texto = Ajustes.Instancia.textoNuevoAtaqueAprendido
                                   .Replace(Ajustes.Instancia.palabraParaReemplazarEnLosTexto1, pokemon.DatosFijos.nombre)
                                   .Replace(Ajustes.Instancia.palabraParaReemplazarEnLosTexto2, ataque.nombre);
                    yield return(StartCoroutine(UIControlador.Instancia.Dialogo.componentePrincipal.MostrarTextoCorrutina(texto, false)));
                }
                else
                {
                    string texto = Ajustes.Instancia.textoPreguntarAprenderNuevoAtaque
                                   .Replace(Ajustes.Instancia.palabraParaReemplazarEnLosTexto1, pokemon.DatosFijos.nombre)
                                   .Replace(Ajustes.Instancia.palabraParaReemplazarEnLosTexto2, ataque.nombre);
                    yield return(StartCoroutine(UIControlador.Instancia.Dialogo.componentePrincipal.MostrarTextoCorrutina(texto, false, true)));

                    UIControlador.Instancia.AprenderAtaque.MostrarVentana(pokemon, pokemon.DatosFijos.listaDeAtaques[i].ataque);
                    while (UIControlador.Instancia.AprenderAtaque.gameObject.activeSelf)
                    {
                        yield return(null);
                    }
                }
                break;
            }
            yield return(null);
        }

        yield return(new WaitForSeconds(0.5f));
    }