aboutsummaryrefslogtreecommitdiff
path: root/server/bot/src/algos/customer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/bot/src/algos/customer.rs')
-rw-r--r--server/bot/src/algos/customer.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/server/bot/src/algos/customer.rs b/server/bot/src/algos/customer.rs
index b243bd55..b0ece9dd 100644
--- a/server/bot/src/algos/customer.rs
+++ b/server/bot/src/algos/customer.rs
@@ -22,7 +22,7 @@ use crate::{
use hurrycurry_client_lib::Game;
use hurrycurry_protocol::{
glam::{IVec2, Vec2},
- DemandIndex, Message, PacketS, PlayerClass, PlayerID, Score,
+ DemandIndex, Hand, Message, PacketS, PlayerClass, PlayerID, Score,
};
use log::info;
use rand::{random, seq::IndexedRandom, thread_rng};
@@ -313,6 +313,7 @@ impl CustomerState {
PacketS::Interact {
pos: Some(pos),
player: me,
+ hand: Hand(0),
},
PacketS::ApplyScore(Score {
demands_completed: 1,
@@ -322,6 +323,7 @@ impl CustomerState {
PacketS::Interact {
pos: None,
player: me,
+ hand: Hand(0),
},
],
..Default::default()
@@ -354,6 +356,7 @@ impl CustomerState {
extra: vec![PacketS::ReplaceHand {
player: me,
item: demand.output,
+ hand: Hand(0),
}],
..Default::default()
};
@@ -369,7 +372,12 @@ impl CustomerState {
cooldown,
} => {
*cooldown -= dt;
- if game.players.get(&me).is_some_and(|pl| pl.item.is_none()) {
+ if game
+ .players
+ .get(&me)
+ .is_some_and(|pl| pl.items[0].is_none())
+ // TODO index out of bounds?
+ {
if let Some(path) = find_path(&game.walkable, pos.as_ivec2(), *origin) {
*self = CustomerState::Exiting { path };
}
@@ -383,10 +391,12 @@ impl CustomerState {
PacketS::Interact {
player: me,
pos: Some(*table),
+ hand: Hand(0),
},
PacketS::Interact {
player: me,
pos: None,
+ hand: Hand(0),
},
],
direction,