From 874fc0356a39ef54af3f62dce1003b84beff4bdb Mon Sep 17 00:00:00 2001 From: serxoz Date: Mon, 26 Sep 2022 13:31:46 +0200 Subject: [PATCH] =?UTF-8?q?Comando=20cerrar,=20opci=C3=B3n=20salida,=20imp?= =?UTF-8?q?lementado=20en=20un=20sentido.Falta=20o=20sentido=20oposto=20da?= =?UTF-8?q?=20salida?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/player.rs | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/player.rs b/src/player.rs index 0da6e4c..878041c 100644 --- a/src/player.rs +++ b/src/player.rs @@ -187,31 +187,32 @@ pub fn execute_close(player: &mut Player, nombre: &str) -> String { if objeto.is_ok() { let mut obj = objeto.unwrap(); - println!("{:?}", obj); + // println!("{:?}", obj); if obj.tipo == "salida" { - for (pos, condicion) in obj.condiciones.iter().enumerate() { - if condicion.as_ref().unwrap() == "open" { - output = String::from("Está abierta."); - // actualizar a salida en sentido contrario - // implementar get_salida_opuesta() para actualizar o sentido contario tamén + if obj.condiciones.len() > 0 { + for (pos, condicion) in obj.condiciones.iter().enumerate() { + if condicion.as_ref().unwrap() == "open" { + // actualizar a salida en sentido contrario + // implementar get_salida_opuesta() para actualizar o sentido contario tamén - obj.condiciones[pos] = Some("closed".to_string()); - let res = update_object_conditions(location.to_string(), obj.condiciones); - - // non actualiza, da ok pero actualiza 0 rows - match res { - Ok(n) => println!("actualizados {} rows", n), - Err(error) => println!("Error actualizando: {:?}", error), - }; - - break; - } else if condicion.as_ref().unwrap() == "closed" { - output = String::from("Ya está cerrada."); - break; - } else { - output = String::from(""); + obj.condiciones[pos] = Some("closed".to_string()); // cambia 'open' por 'closed' + let res = update_object_conditions(obj.tag, obj.condiciones); + if res.is_ok() && res.unwrap() > 0 { + output = String::from("Ahora está cerrada."); + } else { + output = String::from("No se pudo cerrar."); + } + break; + } else if condicion.as_ref().unwrap() == "closed" { + output = String::from("Ya está cerrada."); + break; + } else { + output = String::from("No es necesario."); + } } + } else { + output = String::from("No es necesario."); } } else { // é un item