aboutsummaryrefslogtreecommitdiff
path: root/server/bot/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/bot/src')
-rw-r--r--server/bot/src/algos/customer.rs12
-rw-r--r--server/bot/src/algos/frank.rs4
-rw-r--r--server/bot/src/main.rs5
3 files changed, 14 insertions, 7 deletions
diff --git a/server/bot/src/algos/customer.rs b/server/bot/src/algos/customer.rs
index e602addc..6a45e379 100644
--- a/server/bot/src/algos/customer.rs
+++ b/server/bot/src/algos/customer.rs
@@ -20,7 +20,9 @@ use crate::{
BotAlgo, BotInput,
};
use hurrycurry_client_lib::Game;
-use hurrycurry_protocol::{glam::IVec2, DemandIndex, Message, PacketS, PlayerID, Score};
+use hurrycurry_protocol::{
+ glam::IVec2, DemandIndex, Message, PacketS, PlayerClass, PlayerID, Score,
+};
use log::info;
use rand::{random, seq::IndexedRandom, thread_rng};
@@ -124,7 +126,7 @@ impl BotAlgo for Customer {
.players
.iter()
.find(|(id, p)| {
- p.character < 0
+ p.class == PlayerClass::Customer
&& **id != me
&& p.movement.position.distance(chair.as_vec2() + 0.5) < 1.
})
@@ -186,7 +188,11 @@ impl BotAlgo for Customer {
if !*pinned {
let mut pin = false;
game.players_spatial_index.query(pos, 3., |pid, _| {
- if game.players.get(&pid).map_or(false, |p| p.character >= 0) {
+ if game
+ .players
+ .get(&pid)
+ .map_or(false, |p| p.class.is_cheflike())
+ {
pin = true
}
});
diff --git a/server/bot/src/algos/frank.rs b/server/bot/src/algos/frank.rs
index 854c73bb..1e02e297 100644
--- a/server/bot/src/algos/frank.rs
+++ b/server/bot/src/algos/frank.rs
@@ -20,7 +20,7 @@ use crate::{
BotAlgo, BotInput,
};
use hurrycurry_client_lib::Game;
-use hurrycurry_protocol::{glam::Vec2, Message, PacketS, PlayerID};
+use hurrycurry_protocol::{glam::Vec2, Message, PacketS, PlayerClass, PlayerID};
use rand::{seq::IndexedRandom, thread_rng};
#[derive(Default)]
@@ -116,7 +116,7 @@ fn find_chef(game: &Game, me: PlayerID) -> Option<PlayerID> {
let chefs = game
.players
.iter()
- .filter(|(i, p)| p.character >= 0 && **i != me)
+ .filter(|(i, p)| p.class == PlayerClass::Chef && **i != me)
.map(|(i, _)| *i)
.collect::<Vec<_>>();
chefs.choose(&mut thread_rng()).copied()
diff --git a/server/bot/src/main.rs b/server/bot/src/main.rs
index 0e6aed36..61ae1c1c 100644
--- a/server/bot/src/main.rs
+++ b/server/bot/src/main.rs
@@ -19,7 +19,7 @@ use anyhow::Result;
use clap::Parser;
use hurrycurry_bot::{algos::ALGO_CONSTRUCTORS, BotAlgo, BotInput};
use hurrycurry_client_lib::{network::sync::Network, Game};
-use hurrycurry_protocol::{PacketC, PacketS, PlayerID};
+use hurrycurry_protocol::{PacketC, PacketS, PlayerClass, PlayerID};
use log::warn;
use std::{thread::sleep, time::Duration};
@@ -29,7 +29,7 @@ struct Args {
#[arg(short, long)]
username: Option<String>,
/// Bot character id
- #[arg(short, long, default_value_t = 51)]
+ #[arg(short, long, default_value_t = 0)]
character: i32,
algo: String,
/// Websocket address of the server
@@ -57,6 +57,7 @@ fn main() -> Result<()> {
network.queue_out.push_back(PacketS::Join {
name: format!("{}-bot", args.username.clone().unwrap_or(args.algo.clone())),
character: args.character,
+ class: PlayerClass::Bot,
id: None,
});