diff options
author | metamuffin <metamuffin@disroot.org> | 2024-08-12 16:14:17 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-08-12 16:14:17 +0200 |
commit | 2a81c045deffa481d4021f3ef960e2fb706ff011 (patch) | |
tree | ba36fd75b82ec5196a9f8c6182458d00818a8dbd /server/bot/src/algos/waiter.rs | |
parent | 7aa0f026f6f0f72efc5513688ecec21a1e43ea74 (diff) | |
download | hurrycurry-2a81c045deffa481d4021f3ef960e2fb706ff011.tar hurrycurry-2a81c045deffa481d4021f3ef960e2fb706ff011.tar.bz2 hurrycurry-2a81c045deffa481d4021f3ef960e2fb706ff011.tar.zst |
bot: idle waiter clears hand
Diffstat (limited to 'server/bot/src/algos/waiter.rs')
-rw-r--r-- | server/bot/src/algos/waiter.rs | 14 |
1 files changed, 8 insertions, 6 deletions
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<bool> { 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(()) } } |