From e49a85505701740b195a03892e1fc5cf8d6382a2 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 4 Jun 2024 19:53:43 +0200 Subject: fix client disconnect --- src/game/server.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/game/server.rs') diff --git a/src/game/server.rs b/src/game/server.rs index f1d10d2..f5de1bf 100644 --- a/src/game/server.rs +++ b/src/game/server.rs @@ -29,19 +29,23 @@ pub async fn game_server(config: Config, state: Arc) -> Result<()> { } async fn game_loop(config: Config, state: Arc) { + let mut speed = config.tickrate; loop { - sleep(Duration::from_secs_f32(1. / config.tickrate)).await; + sleep(Duration::from_secs_f32(1. / speed)).await; let mut g = state.game.write().await; let res = g.tick(); match res { ControlFlow::Continue(()) => { let _ = state.tick.send(false); + speed += config.tickrate_speedup; + speed = speed.min(config.tickrate_max) } ControlFlow::Break(winner) => { info!("winner: {winner:?}"); let p = state.players.read().await; *g = Game::new(p.clone().into_iter().collect()); + speed = config.tickrate; let _ = state.tick.send(true); } } -- cgit v1.2.3-70-g09d2