From 1504c9975b03dba27b6047f74e604188cd91f710 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 20 Sep 2024 14:19:32 +0200 Subject: fix customer crash when no demands exist --- server/bot/src/algos/customer.rs | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'server/bot/src/algos/customer.rs') diff --git a/server/bot/src/algos/customer.rs b/server/bot/src/algos/customer.rs index 592d0574..ec8f2283 100644 --- a/server/bot/src/algos/customer.rs +++ b/server/bot/src/algos/customer.rs @@ -65,22 +65,24 @@ impl BotAlgo for Customer { let pos = playerdata.movement.position; match self { Customer::New => { - if let Some(&chair) = game - .tiles - .iter() - .filter(|(_, t)| game.data.tile_name(t.kind) == "chair") - .map(|(p, _)| *p) - .collect::>() - .choose(&mut thread_rng()) - { - if let Some(path) = find_path(&game.walkable, pos.as_ivec2(), chair) { - info!("{me:?} -> entering"); - *self = Customer::Entering { - path, - chair, - origin: pos.as_ivec2(), - ticks: 0, - }; + if !game.data.demands.is_empty() { + if let Some(&chair) = game + .tiles + .iter() + .filter(|(_, t)| game.data.tile_name(t.kind) == "chair") + .map(|(p, _)| *p) + .collect::>() + .choose(&mut thread_rng()) + { + if let Some(path) = find_path(&game.walkable, pos.as_ivec2(), chair) { + info!("{me:?} -> entering"); + *self = Customer::Entering { + path, + chair, + origin: pos.as_ivec2(), + ticks: 0, + }; + } } } BotInput::default() -- cgit v1.2.3-70-g09d2