diff options
Diffstat (limited to 'src/spectate/mod.rs')
-rw-r--r-- | src/spectate/mod.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/spectate/mod.rs b/src/spectate/mod.rs index f80551e..3da4a0d 100644 --- a/src/spectate/mod.rs +++ b/src/spectate/mod.rs @@ -1,5 +1,6 @@ +use crate::State; use serde::Deserialize; -use std::net::SocketAddr; +use std::{net::SocketAddr, sync::Arc}; pub mod server; @@ -7,3 +8,20 @@ pub mod server; pub struct Config { bind: SocketAddr, } + +async fn stats_loop(state: Arc<State>) { + let mut ticks = state.tick.subscribe(); + while let Ok(end) = ticks.recv().await { + if let Some(winner) = end { + if let Some(winner) = winner { + if let Some(winner) = state.players.write().await.get(&winner).cloned() { + let mut h = state.win_history.write().await; + h.push_front(winner); + while h.len() > 64 { + h.pop_back(); + } + } + } + } + } +} |