diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/data/mod.rs | 11 | ||||
-rw-r--r-- | server/src/entity/customers.rs | 6 |
2 files changed, 14 insertions, 3 deletions
diff --git a/server/src/data/mod.rs b/server/src/data/mod.rs index 549574c7..57051fe9 100644 --- a/server/src/data/mod.rs +++ b/server/src/data/mod.rs @@ -77,6 +77,7 @@ pub struct MapDecl { #[serde(default)] tile_entities: HashMap<char, EntityDecl>, #[serde(default)] score_baseline: i64, #[serde(default)] default_timer: Option<u64>, + #[serde(default)] flags: ServerdataFlags, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -95,7 +96,14 @@ pub struct Serverdata { pub customer_spawn: Vec2, pub score_baseline: i64, pub default_timer: Option<Duration>, - pub book: DocumentElement + pub book: DocumentElement, + pub flags: ServerdataFlags, +} + +#[rustfmt::skip] +#[derive(Debug, Clone, Default, Deserialize)] +pub struct ServerdataFlags { + #[serde(default)] pub disable_unknown_orders: bool, } #[derive(Debug, Deserialize, Default)] @@ -310,6 +318,7 @@ pub fn build_data( Serverdata { initial_map, chef_spawn, + flags: map_in.flags, customer_spawn, default_timer, book, diff --git a/server/src/entity/customers.rs b/server/src/entity/customers.rs index 0c3ced8d..02051901 100644 --- a/server/src/entity/customers.rs +++ b/server/src/entity/customers.rs @@ -17,7 +17,7 @@ */ use super::{bot::BotDriver, Entity, EntityContext}; use anyhow::Result; -use hurrycurry_bot::algos::Customer; +use hurrycurry_bot::algos::{Customer, CustomerConfig}; use hurrycurry_protocol::PlayerClass; use rand::random; @@ -58,7 +58,9 @@ impl Entity for Customers { "".to_string(), -1 - random::<u16>() as i32, PlayerClass::Customer, - Customer::default(), + Customer::new(CustomerConfig { + unknown_order: !c.serverdata.flags.disable_unknown_orders, + }), ); self.customers.push(bot) } |