From 139eab701e8d19aea3b8722fd305e47ffbcf56b3 Mon Sep 17 00:00:00 2001 From: ntr Date: Sat, 4 Aug 2018 16:08:48 +1000 Subject: [PATCH] init --- .gitignore | 3 +++ Cargo.toml | 7 ++++++ README.md | 15 +++++++++++ src/lib.rs | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.toml create mode 100644 README.md create mode 100644 src/lib.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..4308d822 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +target/ +**/*.rs.bk +Cargo.lock diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 00000000..156e5c2c --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "cryps" +version = "0.1.0" +authors = ["ntr "] + +[dependencies] +rand = "0.5.4" diff --git a/README.md b/README.md new file mode 100644 index 00000000..51b6b62f --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# Cryps ("creeps") // Creeptography + +## Stats +str agi int +items +wallet value? +gain 1 lvl per battle + + +## Rolling + +stat & rng +block hash or totally random + +friendship on ties? \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 00000000..f3ece246 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,73 @@ +extern crate rand; + +use rand::prelude::*; + +// items? +// stranth + stam + intel + luck? +struct Cryp { + name: String, + dmg: u64, + def: u64, + stam: u64, +} + +pub struct Turn { + dmg: u64, + def: u64, +} + +fn att_roll(rng: &mut ThreadRng, att: u64) -> u64 { + let roll: u64 = rng.gen(); + println!("stat: {:b}", att); + println!("roll: {:b}", roll); + println!("outp: {:b}\n", att & roll); + return att & roll; +} + +fn cryp_turn(mut rng: &mut ThreadRng, c: Cryp) -> Turn { + let dmg = att_roll(&mut rng, c.dmg); + let def = att_roll(&mut rng, c.def); + // att_roll(rng, c.stam); + + return Turn { dmg, def } +} + +fn battle(a: Cryp, b: Cryp) -> Vec { + let mut rng = thread_rng(); + let mut turns = Vec::new(); + + turns.push(cryp_turn(&mut rng, a)); + turns.push(cryp_turn(&mut rng, b)); + + return turns; +} + +pub fn main() -> Vec { + let a = Cryp { + name: "pronounced \"creeep\"".to_string(), + dmg: 213213213, + def: 129435899, + stam: 342687328, + }; + + let b = Cryp { + name: "lemongrass tea".to_string(), + dmg: 213213213, + def: 129435899, + stam: 342687328, + }; + + + return battle(a, b); +} + +#[cfg(test)] +mod tests { + use main; + #[test] + fn it_works() { + main(); + return; + } +} +