From 2a81c045deffa481d4021f3ef960e2fb706ff011 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 12 Aug 2024 16:14:17 +0200 Subject: bot: idle waiter clears hand --- server/bot/src/algos/waiter.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'server/bot/src') diff --git a/server/bot/src/algos/waiter.rs b/server/bot/src/algos/waiter.rs index 125b5510..364f26c8 100644 --- a/server/bot/src/algos/waiter.rs +++ b/server/bot/src/algos/waiter.rs @@ -68,26 +68,28 @@ impl State for Waiter { } impl Context<'_, Waiter> { - fn aquire_item(&mut self, item: ItemIndex) -> LogicRes { + fn aquire_item(&mut self, item: ItemIndex) -> LogicRes { debug!("aquire item {:?}", self.game.data.item_names[item.0]); if self.is_hand_item(item) { - return Ok(()); + return Ok(true); } if let Some(pos) = self.find_item_on_map(item) { self.assert_hand_is_clear()?; self.interact_with(pos, 0.)?; - return Ok(()); + return Ok(true); } - Err(()) + Ok(false) } fn update(&mut self) -> LogicRes { if let Some(pos) = self.find_occupied_table_or_floor() { self.assert_tile_is_clear(pos)?; } if let Some((item, table)) = self.find_demand() { - self.aquire_item(item)?; - self.interact_with(table, 0.)?; + if self.aquire_item(item)? { + self.interact_with(table, 0.)?; + } } + self.assert_hand_is_clear()?; Ok(()) } } -- cgit v1.2.3-70-g09d2