diff --git a/server/src/img.rs b/server/src/img.rs index 75b0d95f..d9309323 100644 --- a/server/src/img.rs +++ b/server/src/img.rs @@ -43,8 +43,8 @@ pub fn invader_write(id: Uuid) -> Result { let mut colours = std::iter ::repeat_with(|| { let h = rng.gen_range(0, 360); - let s = s_dist.sample(&mut rng) as u16; - let l = l_dist.sample(&mut rng) as u16; + let s = s_dist.sample(&mut rng) as usize; + let l = l_dist.sample(&mut rng) as usize; format!("hsl({:}, {:}%, {:}%)", h, s, l) }) .take(3) @@ -201,7 +201,7 @@ mod tests { // - let actions = mode_drops(mode); // + let log_normal = LogNormal::new(1.0, 1.0); -// + let num_drops = log_normal.sample(&mut rng).floor() as u16; +// + let num_drops = log_normal.sample(&mut rng).floor() as usize; // + // + println!("{:?} drops", num_drops); diff --git a/server/src/instance.rs b/server/src/instance.rs index 3061cb10..57bc00aa 100644 --- a/server/src/instance.rs +++ b/server/src/instance.rs @@ -403,6 +403,8 @@ impl Instance { None => return Ok(self.finish()), }; + let bits = 12 + 6 * self.rounds.len(); + { let loser = self.players.iter() .find(|p| p.id != winner_id) @@ -414,6 +416,7 @@ impl Instance { .unwrap(); winner.score = winner.score.add_win(&loser); + winner.vbox.balance_add(bits.into()); } { @@ -422,6 +425,7 @@ impl Instance { .unwrap(); loser.score = loser.score.add_loss(); + loser.vbox.balance_add(bits.into()); } if self.all_games_finished() { diff --git a/server/src/item.rs b/server/src/item.rs index a2d4b5cf..55c883f9 100644 --- a/server/src/item.rs +++ b/server/src/item.rs @@ -306,7 +306,7 @@ impl Item { } } - pub fn cost(&self) -> u16 { + pub fn cost(&self) -> usize { match self { Item::Red => 1, Item::Green => 1, diff --git a/server/src/mtx.rs b/server/src/mtx.rs index 81aeadbe..e71a481b 100644 --- a/server/src/mtx.rs +++ b/server/src/mtx.rs @@ -36,7 +36,7 @@ pub struct Shop { #[derive(Debug,Copy,Clone,PartialEq,Serialize,Deserialize)] pub struct Listing { variant: MtxVariant, - credits: u16, + credits: usize, } #[derive(Debug,Copy,Clone,PartialEq,Serialize,Deserialize)] diff --git a/server/src/player.rs b/server/src/player.rs index 8c42743d..5f6b3259 100644 --- a/server/src/player.rs +++ b/server/src/player.rs @@ -12,7 +12,7 @@ use vbox::{Vbox}; use item::{Item, ItemEffect}; use effect::{Effect}; -const DISCARD_COST: u16 = 2; +const DISCARD_COST: usize = 2; #[derive(Debug,Copy,Clone,Serialize,Deserialize,Eq,PartialEq)] pub enum Score { diff --git a/server/src/vbox.rs b/server/src/vbox.rs index 4e2e1a96..7088d0e9 100644 --- a/server/src/vbox.rs +++ b/server/src/vbox.rs @@ -21,7 +21,7 @@ use item::*; #[derive(Debug,Clone,Serialize,Deserialize)] pub struct Vbox { - pub bits: u16, + pub bits: usize, pub free: Vec>>, pub bound: Vec, } @@ -47,7 +47,7 @@ impl Vbox { } } - pub fn balance_sub(&mut self, amount: u16) -> Result<&mut Vbox, Error> { + pub fn balance_sub(&mut self, amount: usize) -> Result<&mut Vbox, Error> { let new_balance = self.bits .checked_sub(amount) .ok_or(format_err!("insufficient balance: {:?}", self.bits))?; @@ -57,7 +57,7 @@ impl Vbox { Ok(self) } - pub fn balance_add(&mut self, amount: u16) -> &mut Vbox { + pub fn balance_add(&mut self, amount: usize) -> &mut Vbox { self.bits = self.bits.saturating_add(amount); self }