private IEnumerator AddObjeto(int num, GameObject popupGO) { Inventario inventarioPropio; //Buscamos el inventario en la colaobjetos ColaObjeto inventarioCola = Manager.instance.GetColaObjetos(Manager.rutaInventario + "Inventario.xml"); //Se ha encontrado en la cola de objetos if (inventarioCola != null) { ObjetoSerializable objetoSerializable = inventarioCola.GetObjeto(); inventarioPropio = objetoSerializable as Inventario; } //No se ha encontrado en la cola de objetos else { //Cargamos el inventario si existe, sino lo creamos if (System.IO.File.Exists(Manager.rutaInventario + "Inventario.xml")) { inventarioPropio = Inventario.LoadInventario(Manager.rutaInventario + "Inventario.xml"); } else { inventarioPropio = new Inventario(); } } inventarioPropio.AddObjeto(inventario.DevolverID(num), 1); inventarioPropio.AddToColaObjetos(); yield return(StartCoroutine(UIPopUpObjeto.MostrarPopupObjetos())); Destroy(popupGO); }
/* * * * COLAOBJETOS * * */ public void AddToColaObjetos(string path, ObjetoSerializable objetoSerializable) { //Comprobamos si ya existe el objeto indicado //Si ya existe, lo eliminamos if (ColaObjetoExiste(path)) { RemoveFromColaObjetos(path); } ColaObjeto colaObjeto = new ColaObjeto(objetoSerializable, path); colaObjetos.Add(colaObjeto); }
//Guardamos los objetos de la cola y la vaciamos public void SerializarCola() { for (var i = 0; i < colaObjetos.Count; i++) { string ruta = colaObjetos[i].GetRuta(); ObjetoSerializable objetoSerializable = colaObjetos[i].GetObjeto(); SerializeData(objetoSerializable, Path.GetDirectoryName(ruta), Path.GetFileName(ruta)); //Si el inventario se ha actualizado, actualizamos el estado //de las acciones de los interactuables if (ruta == rutaInventario + "Inventario.xml") { Inventario inventario = objetoSerializable as Inventario; ActualizarAcciones(inventario); } } colaObjetos.Clear(); }
public void GuardarValor() { if (activado != activadoActual) { if (activadoActual) { datos.SetValorVariable(numVariable, valorInicial + 1); } else { datos.SetValorVariable(numVariable, valorInicial - 1); } datos.Serialize(); //CAMBIAR EN EL FUTURO //Buscamos el inventario en la colaobjetos Inventario inventario; ColaObjeto inventarioCola = Manager.instance.GetColaObjetos(Manager.rutaInventario + "Inventario.xml"); //Se ha encontrado en la cola de objetos if (inventarioCola != null) { ObjetoSerializable objetoSerializable = inventarioCola.GetObjeto(); inventario = objetoSerializable as Inventario; } //No se ha encontrado en la cola de objetos else { //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(); } } Manager.instance.ActualizarAcciones(inventario); } }
private void SetOptionButton(GameObject button, DialogueOption dialogueOption) { bool mostrar = true; for (int i = 0; i < dialogueOption.DevuelveNumeroGrupos(); i++) { int IDGrupo = dialogueOption.DevuelveIDGrupo(i); //Miramos si la opción está asignada a algún grupo Grupo grupo = Manager.instance.DevolverGrupoActivo(IDGrupo); if (grupo != null) { List <DialogueOptionGrupoVariables> variables = dialogueOption.DevuelveVariables(i); for (int j = 0; i < variables.Count; j++) { //Si la variable de la opcion es mayor que la actual del grupo, no se muestra la opción if (variables[j].valor > grupo.variables[variables[j].numVariable]) { mostrar = false; } } } //El grupo no está activo else { mostrar = false; } } if (mostrar) { //Creamos un objeto inventario Inventario inventario; //Buscamos el inventario en la colaobjetos ColaObjeto inventarioCola = Manager.instance.GetColaObjetos(Manager.rutaInventario + "Inventario.xml"); //Se ha encontrado en la cola de objetos if (inventarioCola != null) { ObjetoSerializable objetoSerializable = inventarioCola.GetObjeto(); inventario = objetoSerializable as Inventario; } //No se ha encontrado en la cola de objetos else { //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(); } } for (int i = 0; i < dialogueOption.DevuelveNumeroObjetos(); i++) { int IDObjeto = dialogueOption.DevuelveIDObjeto(i); bool enPosesion = dialogueOption.DevuelveObjetoPosesion(i); bool existe = inventario.ObjetoInventarioExiste(IDObjeto); //Mostramos la opción solo si coincide el parámetro if (enPosesion != existe) { mostrar = false; } } } if (mostrar) { UIDialogo.instance.SetOptionButton(button, dialogueOption); } }
private string ruta; //Indica en que directorio, con el nombre del fichero, se debe serializar el objetoSer public ColaObjeto(ObjetoSerializable objetoSerializable, string ruta) { objeto = objetoSerializable; this.ruta = ruta; }