summaryrefslogtreecommitdiff
path: root/server/bot
diff options
context:
space:
mode:
Diffstat (limited to 'server/bot')
-rw-r--r--server/bot/src/algos/dishwasher.rs18
1 files changed, 15 insertions, 3 deletions
diff --git a/server/bot/src/algos/dishwasher.rs b/server/bot/src/algos/dishwasher.rs
index bfa903e5..bfe57d0c 100644
--- a/server/bot/src/algos/dishwasher.rs
+++ b/server/bot/src/algos/dishwasher.rs
@@ -1,5 +1,6 @@
/*
Hurry Curry! - a game about cooking
+ Copyright 2024 Miner34
Copyright 2024 metamuffin
This program is free software: you can redistribute it and/or modify
@@ -24,12 +25,20 @@ use hurrycurry_protocol::{glam::IVec2, ItemIndex, PlayerID};
pub struct DishWasher {
path: Option<(Path, IVec2, f32)>,
cooldown: f32,
+ dirty_plate: Option<ItemIndex>,
}
type LogicRes<Out = ()> = Result<Out, ()>;
impl BotAlgo for DishWasher {
fn tick(&mut self, me: PlayerID, game: &Game, dt: f32) -> BotInput {
+ if let None = self.dirty_plate {
+ self.dirty_plate = game.data.get_item_by_name("dirty-plate");
+ if let None = self.dirty_plate {
+ return BotInput::default();
+ }
+ }
+
let Some(player) = game.players.get(&me) else {
return BotInput::default();
};
@@ -86,11 +95,14 @@ impl State for DishWasher {
impl Context<'_, DishWasher> {
fn update(&mut self) -> LogicRes {
- if let Some(pos) = self.find_item_on_map(ItemIndex(0)) {
+ if let Some(pos) = self.find_item_on_map(self.state.dirty_plate.unwrap()) {
self.assert_tile_is_clear(pos)?;
}
- if self.is_hand_item(ItemIndex(0)) {
- self.interact_with(self.find_empty_interactable_tile_by_name("sink").unwrap(), 2.0)?;
+ if self.is_hand_item(self.state.dirty_plate.unwrap()) {
+ self.interact_with(
+ self.find_empty_interactable_tile_by_name("sink").unwrap(),
+ 2.0,
+ )?;
}
self.assert_hand_is_clear()?;
Ok(())