fix out of range int

This commit is contained in:
ntr 2018-09-06 00:51:41 +10:00
parent 9212cff67a
commit 81562f6db6
3 changed files with 8 additions and 11 deletions

View File

@ -140,13 +140,12 @@ impl Cryp {
pub fn create(mut self) -> Cryp {
let mut rng = thread_rng();
let lvl_as_two_pwr = 2_u64.pow(self.lvl.into());
let max = match self.lvl == 64 {
true => u64::max_value(),
false => lvl_as_two_pwr,
false => 2_u64.pow(self.lvl.into()),
};
self.xp = lvl_as_two_pwr;
self.xp = max;
self.dmg.set(rng.gen_range(1, max));
self.def.set(rng.gen_range(1, max));
@ -185,17 +184,13 @@ mod tests {
#[test]
fn create_cryp_test() {
let level_two = Cryp::new()
let max_level = Cryp::new()
.named("hatchling".to_string())
.level(2)
.level(64)
.learn(Skill::Stoney)
.create();
let f = File::open("cryp.cbor").unwrap();
let opened: Cryp = from_reader(f).unwrap();
println!("{:?}", opened);
assert_eq!(max_level.lvl, 64);
return;
}
}

View File

@ -17,6 +17,7 @@ mod skill;
use std::rc::Rc;
use std::cell::Cell;
use ws::{listen, Handler, Sender, Result, Message, Handshake, CloseCode, Error};
use serde_cbor::{to_value};
use net::{generate};
@ -36,6 +37,7 @@ impl Handler for Server {
fn on_message(&mut self, msg: Message) -> Result<()> {
// Tell the user the current count
println!("The number of live connections is {}", self.count.get());
println!("{:?}", to_value(msg.into_data()).unwrap());
let reply = Message::binary(generate());

View File

@ -5,7 +5,7 @@ use serde_cbor::{to_vec};
pub fn generate() -> Vec<u8> {
let level_two = Cryp::new()
.named("hatchling".to_string())
.level(2)
.level(64)
.learn(Skill::Stoney)
.create();