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); } }