From 52cf570a70b3c706227c236fd3febb1b47afc8fd Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 6 Mar 2019 18:35:22 +1100 Subject: [PATCH] update scores ignores phase --- server/src/instance.rs | 12 ++++++------ server/src/player.rs | 6 +++--- server/src/vbox.rs | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/server/src/instance.rs b/server/src/instance.rs index 4dec28b0..3794834e 100644 --- a/server/src/instance.rs +++ b/server/src/instance.rs @@ -70,9 +70,9 @@ impl Instance { self } - pub fn player_update(mut self, player: Player) -> Result { - if self.phase != InstancePhase::Vbox { - return Err(format_err!("instance not in vbox phase {:?}", self.phase)); + pub fn player_update(mut self, player: Player, ignore_phase: bool) -> Result { + if !ignore_phase && self.phase != InstancePhase::Vbox { + return Err(format_err!("instance not in vbox phase ({:?})", self.phase)); } let i = self.players @@ -447,7 +447,7 @@ pub fn instance_ready(params: InstanceReadyParams, tx: &mut Transaction, account } }; - player_update(tx, player)?; + player_update(tx, player, false)?; instance_update(tx, instance)?; return Ok(game); } @@ -476,7 +476,7 @@ pub fn instance_game_finished(tx: &mut Transaction, game: &Game, instance_id: Uu false => player.add_loss(), }; println!("{:?}", player); - player_update(tx, player)?; + player_update(tx, player, true)?; }, } } @@ -497,7 +497,7 @@ pub fn instance_game_finished(tx: &mut Transaction, game: &Game, instance_id: Uu .filter(|p| !p.bot) { let mut player = player_get(tx, player.account, instance_id)?; player.vbox.fill(); - player_update(tx, player)?; + player_update(tx, player, false)?; } } diff --git a/server/src/player.rs b/server/src/player.rs index d02200b6..ad10e591 100644 --- a/server/src/player.rs +++ b/server/src/player.rs @@ -113,12 +113,12 @@ pub fn player_create(tx: &mut Transaction, player: &Player, account: &Account) - return Ok(()); } -pub fn player_update(tx: &mut Transaction, player: Player) -> Result { +pub fn player_update(tx: &mut Transaction, player: Player, ignore_phase: bool) -> Result { // update the instance this player is associated with // if not a global player if player.instance != Uuid::nil() { let instance = instance_get(tx, player.instance)? - .player_update(player.clone())?; + .player_update(player.clone(), ignore_phase)?; instance_update(tx, instance)?; } @@ -181,5 +181,5 @@ pub fn player_cryps_set(params: PlayerCrypsSetParams, tx: &mut Transaction, acco player.cryps = cryps; - player_update(tx, player) + player_update(tx, player, false) } diff --git a/server/src/vbox.rs b/server/src/vbox.rs index 64aa38aa..dd8c3097 100644 --- a/server/src/vbox.rs +++ b/server/src/vbox.rs @@ -387,25 +387,25 @@ impl Vbox { pub fn vbox_discard(params: VboxDiscardParams, tx: &mut Transaction, account: &Account) -> Result { let mut player = player_get(tx, account.id, params.instance_id)?; player.vbox.fill(); - return player_update(tx, player); + return player_update(tx, player, false); } pub fn vbox_accept(params: VboxAcceptParams, tx: &mut Transaction, account: &Account) -> Result { let mut player = player_get(tx, account.id, params.instance_id)?; player.vbox.accept(params.group, params.index)?; - return player_update(tx, player); + return player_update(tx, player, false); } pub fn vbox_combine(params: VboxCombineParams, tx: &mut Transaction, account: &Account) -> Result { let mut player = player_get(tx, account.id, params.instance_id)?; player.vbox.combine(params.indices)?; - return player_update(tx, player); + return player_update(tx, player, false); } pub fn vbox_drop(params: VboxDropParams, tx: &mut Transaction, account: &Account) -> Result { let mut player = player_get(tx, account.id, params.instance_id)?; player.vbox.drop(params.index)?; - return player_update(tx, player); + return player_update(tx, player, false); } pub fn vbox_apply(params: VboxApplyParams, tx: &mut Transaction, account: &Account) -> Result { @@ -432,7 +432,7 @@ pub fn vbox_apply(params: VboxApplyParams, tx: &mut Transaction, account: &Accou }, } - return player_update(tx, player); + return player_update(tx, player, false); }