commit bf48b47d5f7b3c94484d833b43da334c5b8ac6be from: the xhr date: Thu Oct 21 08:26:01 2021 UTC First rolls commit - d51286b2d1ea4f5be109ed6d76f006a0637d1873 commit + bf48b47d5f7b3c94484d833b43da334c5b8ac6be blob - d1869cad1aa3259156b8583bad330c18cee625ce blob + c79ab0248454c36a668a6ff3b50011c45a8aac83 --- Cargo.toml +++ Cargo.toml @@ -10,3 +10,4 @@ edition = "2018" log = "0.4.14" env_logger = "0.9.0" rustyline = "9.0.0" +rand = "0.8.4" blob - 5fbe349ec64c01c5da245119913a5f43f9972142 blob + 44452112f6fe039d5cf84def7891feeea278123c --- src/main.rs +++ src/main.rs @@ -7,6 +7,7 @@ use rustyline::Editor; use std::env; mod character; +mod rolls; pub use character::Character; @@ -21,6 +22,8 @@ struct Game { impl Game { fn execute_command(&mut self) { match self.command.as_str() { + "oracle" => println!("<{}>", rolls::d100()), + "challenge" => println!("<{}>", rolls::d10()), "q" => self.shutdown(), _ => println!("Unkown command"), } @@ -63,14 +66,15 @@ impl Game { } fn load_history(&mut self) { - let hp = self.sfpath.push_str("history"); - if self.rl.load_history(hp).is_err() { - println!("No previous history."); + let hp = self.sfpath.clone() + "history"; + if self.rl.load_history(&hp).is_err() { + log::info!("No previous history."); } } fn shutdown(&mut self) { - self.rl.save_history("history").unwrap(); + let hp = self.sfpath.clone() + "history"; + self.rl.save_history(&hp).unwrap(); std::process::exit(0) } @@ -87,16 +91,13 @@ fn main() { match readline { Ok(line) => { game.rl.add_history_entry(line.as_str()); - println!("Line: {}", line); game.command = line.to_string(); game.execute_command(); }, Err(ReadlineError::Interrupted) => { - println!("CTRL-C"); break }, Err(ReadlineError::Eof) => { - println!("CTRL-D"); break }, Err(err) => { blob - /dev/null blob + 40ae66cde2bb24e2f51e173a708ecb32d57a7d1f (mode 644) --- /dev/null +++ src/rolls.rs @@ -0,0 +1,16 @@ +use rand::Rng; + +pub fn d100() -> i32 { + let mut rng = rand::thread_rng(); + rng.gen_range(0..101) +} + +pub fn d10() -> i32 { + let mut rng = rand::thread_rng(); + rng.gen_range(1..11) +} + +pub fn d6() -> i32 { + let mut rng = rand::thread_rng(); + rng.gen_range(1..7) +}