Comando cerrar, opción salida, implementado en un sentido.Falta o sentido oposto da salida

This commit is contained in:
serxoz 2022-09-26 13:31:46 +02:00
parent cb8b9790f0
commit 874fc0356a

View File

@ -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