From 44f008740ecdfa7925d119ee4633f639e4648305 Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 13 Nov 2019 20:51:30 +1100 Subject: [PATCH] auto ready for learn mode and remove upkeep warnings --- client/src/components/instance.ctrl.btns.jsx | 5 ++++ client/src/events.jsx | 16 ------------- server/src/game.rs | 24 ++++++++++---------- server/src/player.rs | 10 +------- 4 files changed, 18 insertions(+), 37 deletions(-) diff --git a/client/src/components/instance.ctrl.btns.jsx b/client/src/components/instance.ctrl.btns.jsx index 45c26e1f..c4130385 100644 --- a/client/src/components/instance.ctrl.btns.jsx +++ b/client/src/components/instance.ctrl.btns.jsx @@ -49,6 +49,11 @@ function InstanceCtrlBtns(args) { const finished = instance && instance.phase === 'Finished'; + const skip = instance.time_control === 'Practice' && instance.phase === 'Lobby'; + if (skip) { + sendReady(); + } + return (
diff --git a/client/src/events.jsx b/client/src/events.jsx index 0741ee51..073c2ffc 100644 --- a/client/src/events.jsx +++ b/client/src/events.jsx @@ -209,7 +209,6 @@ function registerEvents(store) { return store.dispatch(actions.setInvite(code)); } - let autoReady = null; function setInstance(v) { const { account, instance, ws, tutorial } = store.getState(); if (v) { @@ -218,25 +217,10 @@ function registerEvents(store) { const player = v.players.find(p => p.id === account.id); store.dispatch(actions.setPlayer(player)); - if (!instance || v.id !== instance.id) { - clearTimeout(autoReady); - } - if (v.phase === 'Finished') { ws.sendAccountInstances(); } - if (v.phase_end && v.phase === 'Lobby' && !autoReady) { - const skip = v.time_control === 'Practice' ? 10000 : 2000; - const autoReadyDelay = Date.parse(v.phase_end) - Date.now() - skip; - autoReady = setTimeout(() => { - ws.sendInstanceReady(v.id); - autoReady = null; - }, autoReadyDelay); - } - - if (v.phase !== 'Lobby') clearTimeout(autoReady); - // instance.mobile.less hides info at @media 1000 if (localStorage.getItem('tutorial-complete') || window.innerWidth <= 1100) { store.dispatch(actions.setTutorial(null)); diff --git a/server/src/game.rs b/server/src/game.rs index 02854483..86fed074 100644 --- a/server/src/game.rs +++ b/server/src/game.rs @@ -469,14 +469,14 @@ impl Game { let mut resolutions = resolution_steps(&cast, &mut self); r_animation_ms = resolutions.iter().fold(r_animation_ms, |acc, r| acc + r.clone().get_delay()); - + // the cast itself goes into this temp vec to handle cooldowns // if theres no resolution events, the skill didn't trigger (disable etc) if resolutions.len() > 0 { casts.push(cast); } - + self.resolved.append(&mut resolutions); // while let Some(resolution) = resolutions.pop() { @@ -635,15 +635,15 @@ impl Game { for player in self.players.iter_mut() { if !player.ready { player.set_ready(true); - player.add_warning(); - info!("upkeep: {:} warned", player.name); - if player.warnings >= 3 { - player.forfeit(); - info!("upkeep: {:} forfeited", player.name); - //todo - // self.resolved.push(forfeit) - // self.log.push(format!("{:} forfeited.", player.name)); - } + // player.add_warning(); + // info!("upkeep: {:} warned", player.name); + // if player.warnings >= 3 { + // player.forfeit(); + // info!("upkeep: {:} forfeited", player.name); + // //todo + // // self.resolved.push(forfeit) + // // self.log.push(format!("{:} forfeited.", player.name)); + // } } } @@ -1622,6 +1622,6 @@ mod tests { game.players[0].set_ready(true); game.phase_end = Some(Utc::now().checked_sub_signed(Duration::seconds(500)).unwrap()); game = game.upkeep(); - assert!(game.players[1].warnings == 1); + // assert!(game.players[1].warnings == 1); } } diff --git a/server/src/player.rs b/server/src/player.rs index 0e0baf56..ffa7c379 100644 --- a/server/src/player.rs +++ b/server/src/player.rs @@ -63,7 +63,6 @@ pub struct Player { pub constructs: Vec, pub bot: bool, pub ready: bool, - pub warnings: u8, pub draw_offered: bool, pub score: Score, } @@ -85,7 +84,6 @@ impl Player { constructs, bot: false, ready: false, - warnings: 0, draw_offered: false, score: Score::Zero, }) @@ -100,7 +98,6 @@ impl Player { constructs, bot: false, ready: false, - warnings: 0, draw_offered: false, score: Score::Zero, } @@ -134,11 +131,6 @@ impl Player { self } - pub fn add_warning(&mut self) -> &mut Player { - self.warnings += 1; - self - } - pub fn forfeit(&mut self) -> &mut Player { for construct in self.constructs.iter_mut() { construct.force_ko(); @@ -358,7 +350,7 @@ impl Player { } self.vbox.bound.push(target); - + if target_construct_id.is_some() { let equip_index = self.vbox.bound.len() - 1; self.vbox_apply(equip_index, target_construct_id.expect("no construct"))?;