private void MostrarVentanaConfirmacion(EventoBase mensaje)
    {
        EventoMostrarVentanaConfirmacion e = (EventoMostrarVentanaConfirmacion)mensaje;

        if (e.EncolarCorrutina)
        {
            ControladorDatos.Instancia.AniadirCorrutinaACola(MostrarVentanaConfirmacion(e));
        }
        else
        {
            StartCoroutine(MostrarVentanaConfirmacion(e));
        }
    }
    private IEnumerator MostrarVentanaConfirmacion(EventoMostrarVentanaConfirmacion e)
    {
        if (e.PokemonPreview != PokemonID.NINGUNO)
        {
            ventanaPokemonPreview.gameObject.SetActive(true);
            ventanaPokemonPreview.sprite = ControladorDatos.Instancia.ObtenerPokemon(e.PokemonPreview).sprite;
        }
        ventanConfirmacion.MostrarVentana();
        yield return(StartCoroutine(MostrarTextoCorrutina(e.MensajeConfirmacion, false, false, 0f)));

        while (ventanConfirmacion.UltimaEleccion == Eleccion.EnEspera)
        {
            yield return(null);
        }
        ventanaPokemonPreview.gameObject.SetActive(false);
        if (ventanConfirmacion.UltimaEleccion == Eleccion.Si)
        {
            if (!string.IsNullOrEmpty(e.MensajeTrasAceptar))
            {
                yield return(StartCoroutine(MostrarTextoCorrutina(e.MensajeTrasAceptar, true)));
            }
            if (e.AccionConfirmar != null)
            {
                e.AccionConfirmar();
            }
        }
        else if (ventanConfirmacion.UltimaEleccion == Eleccion.No)
        {
            if (!string.IsNullOrEmpty(e.MensajeTrasRechazar))
            {
                yield return(StartCoroutine(MostrarTextoCorrutina(e.MensajeTrasRechazar, true)));
            }
            if (e.AccionDenegar != null)
            {
                e.AccionDenegar();
            }
        }
        FinalizarDialogo();
    }