示例#1
0
    //Devuelve una lista con los objetos NPC_Dialogo del interactuable, vacía si no tiene ninguno
    public List <Dialogo> DevolverDialogos()
    {
        List <Dialogo> dialogos = new List <Dialogo>();

        for (int i = 0; i < acciones.Count; i++)
        {
            DatosAccion datosAccion = acciones[i];

            if (datosAccion.GetType() == typeof(DatosAccionDialogo))
            {
                DatosAccionDialogo datosAccionDialogo = datosAccion as DatosAccionDialogo;
                dialogos.Add(datosAccionDialogo.DevuelveDialogo());
            }
        }

        return(dialogos);
    }
示例#2
0
    //Devuelve un objeto NPC_Dialogo con la ID pasada (null si no lo ha encontrado)
    public Dialogo DevolverDialogo(int IDDialogo)
    {
        Dialogo dialogo = null;

        for (int i = 0; i < acciones.Count; i++)
        {
            DatosAccion datosAccion = acciones[i];

            if (datosAccion.GetType() == typeof(DatosAccionDialogo))
            {
                DatosAccionDialogo datosAccionDialogo = datosAccion as DatosAccionDialogo;
                if (IDDialogo == datosAccionDialogo.DevuelveIDDialogo())
                {
                    dialogo = datosAccionDialogo.DevuelveDialogo();
                }
            }
        }

        return(dialogo);
    }
示例#3
0
    //Rellena las listas de acciones
    private void CargarAcciones()
    {
        accionesGO = new List <GameObject>();

        //Si existe un fichero guardado, cargamos ese fichero, sino cargamos el fichero por defecto
        if (System.IO.File.Exists(Manager.rutaDatosAccionGuardados + ID.ToString() + ".xml"))
        {
            acciones = LoadDatosAccion(Manager.rutaDatosAccionGuardados + ID.ToString() + ".xml");
        }
        else
        {
            acciones = LoadDatosAccion(Manager.rutaDatosAccion + ID.ToString() + ".xml");
        }

        //Cargamos el inventario, necesario para comprobar si ciertas acciones se muestran
        Inventario inventario;

        //Cargamos el inventario si existe, sino lo creamos
        if (System.IO.File.Exists(Manager.rutaInventario + "Inventario.xml"))
        {
            inventario = Inventario.LoadInventario(Manager.rutaInventario + "Inventario.xml");
        }
        else
        {
            inventario = new Inventario();
        }

        //Creamos los gameObject que representan las acciones
        for (int i = 0; i < acciones.Count; i++)
        {
            //Comprobamos si los requisitos para mostrar la accion son correctos. Si lo son, creamos la accion
            if (MostrarAccion(acciones[i], inventario))
            {
                GameObject   AccionGO     = new GameObject("Accion" + i.ToString());
                AccionObjeto accionObjeto = AccionGO.AddComponent <AccionObjeto>();

                accionObjeto.Inicializar(ID, i);

                //Carga la acción en la lista de acciones GameObjects
                CargaAccionGO(AccionGO, i);
            }

            //Carga el dialogo si la accion es de tipo dialogo aunque no se muestre
            if (acciones[i].GetType() == typeof(DatosAccionDialogo))
            {
                DatosAccionDialogo datosAccionDialogo = acciones[i] as DatosAccionDialogo;
                datosAccionDialogo.CargaDialogo();

                Dialogo dialogo = datosAccionDialogo.DevuelveDialogo();

                //Cargamos las intros a distancia de la acciónDialogo (si los tiene)
                //Si el dialogo es a distancia creamos el box collider
                for (int j = 0; j < dialogo.DevuelveNumeroIntros(); j++)
                {
                    if (dialogo.IntroEsADistancia(j))
                    {
                        CrearDialogoADistanciaArea(dialogo, j);
                    }
                }
            }
        }

        //Cargamos la UI de las acciones actuales
        CargarAccionesUI();

        //Ocultamos el texto de las acciones
        DesactivarTextoAcciones();
    }
示例#4
0
	private DatosAccionDialogo datosAccionDialogo; //DatosAccion del dialogo

	//Establece las variables
	public void cargarDialogo(Interactuable interactuable, DatosAccionDialogo datosAccionDialogo)
	{
		this.datosAccionDialogo = datosAccionDialogo;
		this.interactuable = interactuable;
	}