diff options
Diffstat (limited to 'server/src/entity/customers.rs')
| -rw-r--r-- | server/src/entity/customers.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/server/src/entity/customers.rs b/server/src/entity/customers.rs index 148faf81..c1bfb525 100644 --- a/server/src/entity/customers.rs +++ b/server/src/entity/customers.rs @@ -25,16 +25,18 @@ use std::random::random; pub struct Customers { customers: Vec<BotDriver<Customer>>, + current_spawn_cooldown: f32, spawn_cooldown: f32, chair_count: Option<usize>, scaling_factor: f32, } impl Customers { - pub fn new(scaling_factor: f32) -> Self { + pub fn new(scaling_factor: f32, spawn_cooldown: f32) -> Self { Self { - customers: Default::default(), - spawn_cooldown: 0., + customers: Vec::new(), + current_spawn_cooldown: 0., + spawn_cooldown, chair_count: None, scaling_factor, } @@ -52,10 +54,11 @@ impl Entity for Customers { }); let max_count = (self.scaling_factor * chairs as f32).max(1.) as usize; - self.spawn_cooldown -= c.dt; - self.spawn_cooldown = self.spawn_cooldown.max(0.); - if self.customers.len() < max_count && self.spawn_cooldown <= 0. { - self.spawn_cooldown = 5. + random_float() * 5.; + self.current_spawn_cooldown -= c.dt; + self.current_spawn_cooldown = self.current_spawn_cooldown.max(0.); + if self.customers.len() < max_count && self.current_spawn_cooldown <= 0. { + self.current_spawn_cooldown = + self.spawn_cooldown + random_float() * self.spawn_cooldown; let bot = BotDriver::new( "".to_string(), Character { |