/// <summary>
 /// Borra varias respuestas
 /// </summary>
 /// <param name="respuestas">array de tipo RespuestaNPCBase</param>
 public void BorrarRespuesta(RespuestaNPCBase[] respuestas)
 {
     foreach (RespuestaNPCBase respuesta in respuestas)
     {
         conversacionInteractuable.Remove(respuesta);
     }
 }
 /// <summary>
 /// Añade varias respuestas a la conversacion
 /// </summary>
 /// <param name="respuestas">array de tipo RespuestaNPCBase</param>
 public void AddRespuesta(RespuestaNPCBase[] respuestas)
 {
     conversacionInteractuable.AddRange(respuestas);
 }
 /// <summary>
 /// Borra una respuesta
 /// </summary>
 /// <param name="respuesta">respuesta tipo RespuestaNPCBase</param>
 public void BorrarRespuesta(RespuestaNPCBase respuesta)
 {
     conversacionInteractuable.Remove(respuesta);
 }
 /// <summary>
 /// Añade una respuesta a la conversacion
 /// </summary>
 /// <param name="respuesta">respuesta tipo RespuestaNPCBase</param>
 public void AddRespuesta(RespuestaNPCBase respuesta)
 {
     conversacionInteractuable.Add(respuesta);
 }
        /// <summary>
        /// Constructor sobrecargado de la Clase
        /// </summary>
        /// <param name="nombre">nombre del interactuable</param>
        /// <param name="respuestas">array de tipo RespuestaNPCBase de respuestas a mostrar del interactuable</param>
        /// <param name="idComienzo">valor entero que marca cual sera la RespuestaNPCBase donde comenzara la conversacion</param>
        public InteractuableGenerico(string nombre, RespuestaNPCBase[] respuestas, int idComienzo)
        {
            Inicializar_Listas ();

            this.nombre = nombre;
            inicioConversacion = idComienzo;
            AddRespuesta(respuestas);
        }
        /// <summary>
        /// Constructor sobrecargado de la Clase
        /// </summary>
        /// <param name="nombre">nombre del interactuable</param>
        /// <param name="respuestas">array de tipo RespuestaNPCBase de respuestas a mostrar del personaje</param>
        public InteractuableGenerico(string nombre, RespuestaNPCBase[] respuestas)
        {
            Inicializar_Listas ();

            this.nombre = nombre;
            AddRespuesta(respuestas);
        }
        /// <summary>
        /// Constructor sobrecargado de la Clase
        /// </summary>
        /// <param name="respuestas">array de tipo RespuestaNPCBase de respuestas a mostrar del interactuable</param>
        public InteractuableGenerico(RespuestaNPCBase[] respuestas)
        {
            Inicializar_Listas ();

            AddRespuesta(respuestas);
        }
Example #8
0
    public void Reestructurar_Respuestas(int numeroPregunta, bool inicio)
    {
        PreguntaUsuarioBase pregunta = new PreguntaUsuarioBase();

        if (inicio)
            nuevaRespuesta = GameCenter.InstanceRef.controladoraJuego.interactuablePulsado.Devolver_Respuesta (numeroPregunta);
        else
        {
            pregunta = GameCenter.InstanceRef.controladoraJuego.interactuablePulsado.Devolver_Pregunta (numeroPregunta);
            pregunta.PreguntaEjecutada = true;

            if (GameCenter.InstanceRef.controladoraJuego.interactuablePulsado.PreguntaConTirada (numeroPregunta))
            {
                int valorHabilidad = GameCenter.InstanceRef.controladoraJuego.jugadorActual.HabilidadesJugador.Devolver_Valor_Segun_Enum (pregunta.ComprobacionHabilidad);
                int resultado = GameCenter.InstanceRef.controladoraJuego.Lanzar_Dados ("1D100");

                pregunta.IdRespuestaNPC = (resultado < valorHabilidad) ? pregunta.IdRespuestaAcierto : pregunta.IdRespuestaFallo;
            }

            nuevaRespuesta = GameCenter.InstanceRef.controladoraJuego.interactuablePulsado.Devolver_Respuesta (pregunta.IdRespuestaNPC);
        }

        //Si existe respuesta
        if (nuevaRespuesta != null)
        {
            Blanquear_Texto_Lateral ("yellow", "white");
            //Si el texto lateral esta vacio
            if (textoLateral.text != string.Empty)
            {
                float anteriorSizeCajaTexto = textoLateralOpciones.rectCajaTexto.rect.height;
                if(pregunta.TextoPregunta != null)
                    Insertar_Ventana_Lateral_Texto (pregunta.TextoPregunta, colorTexto.verde, tipoTexto.negrita);
                Insertar_Ventana_Lateral_Texto (nuevaRespuesta.TextoRespuesta, colorTexto.amarillo);
                Deslizar_Ventana_Lateral (anteriorSizeCajaTexto);
            }
            //Si el texto lateral no esta vacio
            else
                Insertar_Ventana_Lateral_Texto (nuevaRespuesta.TextoRespuesta, colorTexto.amarillo);

            //Comprobacion si la respuesta tiene un desbloqueo o accion asociada
            if(nuevaRespuesta.Comprobacion)
            {
                //Desbloqueo de localizacion
                if(nuevaRespuesta.LocalizacionSeleccionada != Localizaciones.Ninguna)
                {
                    if(!GameCenter.InstanceRef.controladoraJuego.jugadorActual.LocalizacionesDescubiertas.Contains(nuevaRespuesta.LocalizacionSeleccionada))
                    {
                        Insertar_Ventana_Lateral_Texto(nuevaRespuesta.LocalizacionSeleccionada, colorTexto.verde);
                        GameCenter.InstanceRef.controladoraJuego.jugadorActual.AddLocalizacionDescubierta(nuevaRespuesta.LocalizacionSeleccionada);
                    }
                }
            }

            //Comprobacion de que la respuesta no tiene pregunta asociada y vuelve a una pregunta anterior
            if(nuevaRespuesta.SinRespuesta)
                nuevaRespuesta = GameCenter.InstanceRef.controladoraJuego.interactuablePulsado.Devolver_Respuesta (nuevaRespuesta.DireccionRespuesta);

            //Generamos las preguntas asociadas a la respuesta
            listaPreguntas.Generar_Preguntas (Filtrar_Preguntas (nuevaRespuesta.MostrarPreguntas ()));

        }
        //Sino existe respuesta
        else
        {
            Vaciar_Texto_Lateral();
            Vaciar_Panel_Preguntas();
            textoInferiorOpciones.gameObject.SetActive (true);
            panelPreguntasOpciones.gameObject.SetActive (false);
            panelObjetosOpciones.Activar ("Hablar");
        }
    }