From 9a6d75486e549c93899a82ad2458ad22f6a9b5e7 Mon Sep 17 00:00:00 2001 From: ntr Date: Mon, 10 Jun 2019 20:07:12 +1000 Subject: [PATCH] keep max rounds around --- client/src/components/instance.component.jsx | 6 +++--- server/src/instance.rs | 22 +++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/client/src/components/instance.component.jsx b/client/src/components/instance.component.jsx index 859e80ab..0ff4d243 100644 --- a/client/src/components/instance.component.jsx +++ b/client/src/components/instance.component.jsx @@ -37,9 +37,9 @@ function Instance(args) { if (!instance) return false; const instanceClasses = `instance ${nav === 'constructs' ? 'constructs-visible' : ''}`; - const lobbyInfo = (instance.phase === 'Lobby') - ? - : null; + const lobbyInfo = (instance.phase === 'InProgress') + ? null + : ; return (
setInfo(null)} > diff --git a/server/src/instance.rs b/server/src/instance.rs index debf9a08..66865bc2 100644 --- a/server/src/instance.rs +++ b/server/src/instance.rs @@ -101,6 +101,7 @@ pub struct Instance { open: bool, max_players: usize, + max_rounds: usize, password: Option, time_control: TimeControl, @@ -120,6 +121,7 @@ impl Instance { phase: InstancePhase::Lobby, open: true, max_players: 2, + max_rounds: 5, name: String::new(), time_control: TimeControl::Standard, password: None, @@ -137,6 +139,7 @@ impl Instance { phase: InstancePhase::InProgress, open: false, max_players: 0, + max_rounds: 5, time_control: TimeControl::Standard, name: "Global Matchmaking".to_string(), password: None, @@ -199,6 +202,11 @@ impl Instance { self } + fn set_max_rounds(mut self, rounds: usize) -> Instance { + self.max_rounds = rounds; + self + } + fn add_bots(mut self) -> Instance { self.open = false; iter::repeat_with(|| { @@ -355,11 +363,6 @@ impl Instance { return false; } - // both players afk - if self.players.iter().all(|p| p.wins == 0) { - return true; - } - // tennis for player in self.players.iter() { if player.wins >= 4 && player.wins >= player.losses + 2 { @@ -368,6 +371,11 @@ impl Instance { } } + // both players afk + if self.players.iter().all(|p| p.wins == 0) { + return true; + } + return false; // boN @@ -712,6 +720,7 @@ pub fn instance_new(params: InstanceLobbyParams, tx: &mut Transaction, account: let mut instance = match params.pve { true => Instance::new() .set_time_control(TimeControl::Practice) + .set_max_rounds(10) .set_name(params.name)? .add_bots(), @@ -798,8 +807,7 @@ mod tests { instance.player_ready(player_account).unwrap(); assert_eq!(instance.phase, InstancePhase::Finished); - println!("{:#?}", instance); - // assert!(instance.players.iter().any(|p| p.wins as usize == instance.max_rounds / 2 + 1)); + assert!(instance.players.iter().any(|p| p.wins as usize == instance.max_rounds / 2 + 1)); } #[test]