diff options
Diffstat (limited to 'server/bot')
| -rw-r--r-- | server/bot/src/algos/simple.rs | 6 | ||||
| -rw-r--r-- | server/bot/src/algos/waiter.rs | 5 | 
2 files changed, 6 insertions, 5 deletions
| diff --git a/server/bot/src/algos/simple.rs b/server/bot/src/algos/simple.rs index 06bf76ab..f232062a 100644 --- a/server/bot/src/algos/simple.rs +++ b/server/bot/src/algos/simple.rs @@ -139,12 +139,12 @@ impl<S> Context<'_, S> {                  _ => None,              })      } -    pub fn find_demands(&self) -> Vec<(ItemIndex, IVec2)> { +    pub fn find_demands_with_table(&self) -> Vec<(ItemIndex, IVec2, f32)> {          self.game              .players              .iter()              .filter_map(|(_, pl)| match &pl.communicate_persist { -                Some((Message::Item(item), _)) => { +                Some((Message::Item(item), timeout)) => {                      let pos = pl.movement.position.as_ivec2();                      [IVec2::X, IVec2::Y, -IVec2::X, -IVec2::Y]                          .into_iter() @@ -155,7 +155,7 @@ impl<S> Context<'_, S> {                                  .is_some_and(|t| self.game.data.tile_interact[t.kind.0])                          })                          .map(|off| pos + off) -                        .map(|pos| (*item, pos)) +                        .map(|pos| (*item, pos, timeout.remaining))                  }                  _ => None,              }) diff --git a/server/bot/src/algos/waiter.rs b/server/bot/src/algos/waiter.rs index 58a3f292..ab0402e6 100644 --- a/server/bot/src/algos/waiter.rs +++ b/server/bot/src/algos/waiter.rs @@ -102,8 +102,9 @@ impl Context<'_, Waiter> {          if let Some(pos) = self.find_occupied_table_or_floor() {              self.assert_tile_is_clear(pos)?;          } -        let dems = self.find_demands(); -        for (item, table) in dems { +        let mut dems = self.find_demands_with_table(); +        dems.sort_by_key(|(_, _, x)| (*x * 1000.) as i32); +        for (item, table, _) in dems {              if self.game.data.item_name(item) == "unknown-order" {                  self.interact_with(table, 0.)?;              } | 
