init
This commit is contained in:
+73
@@ -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<Turn> {
|
||||
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<Turn> {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user