fix game end bits
This commit is contained in:
parent
81a02421dd
commit
aa6272c77d
@ -43,8 +43,8 @@ pub fn invader_write(id: Uuid) -> Result<Uuid, Error> {
|
||||
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);
|
||||
|
||||
|
||||
@ -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() {
|
||||
|
||||
@ -306,7 +306,7 @@ impl Item {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn cost(&self) -> u16 {
|
||||
pub fn cost(&self) -> usize {
|
||||
match self {
|
||||
Item::Red => 1,
|
||||
Item::Green => 1,
|
||||
|
||||
@ -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)]
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -21,7 +21,7 @@ use item::*;
|
||||
|
||||
#[derive(Debug,Clone,Serialize,Deserialize)]
|
||||
pub struct Vbox {
|
||||
pub bits: u16,
|
||||
pub bits: usize,
|
||||
pub free: Vec<Vec<Option<Item>>>,
|
||||
pub bound: Vec<Item>,
|
||||
}
|
||||
@ -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
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user