This commit is contained in:
ntr 2018-08-19 14:18:08 +10:00
parent 86094dce12
commit 9ea8361ba9
4 changed files with 49 additions and 29 deletions

View File

@ -5,9 +5,21 @@
## Rolling ## Rolling
stat & rng stat & rng
block hash or totally random block hash or totally random
roll server that prints a roll every second?
friendship on ties? friendship on ties?
Def
0001011011001100110101000000101111100110101111110100100001000001 - roll
0000000000000000000000000000000000000000000000000000000000001111 ^ steel armour
0000000000000000000000000000000000000000000000000000001111000000 ^ stoney trait
0001011011001100110101000000101111100110101111110100101111001111 = modified roll
0000000000000000000000000000000000000000000000000000000111000010 & def attribute
0000000000000000000000000000000000000000000000000000000111000010 = roll w/ stats
0000000000000000000000000000000000000000000000000000000001000000 = roll w/out stats
## missions ## missions
also the idea is like also the idea is like
the currency is kinda like path right the currency is kinda like path right

View File

@ -33,12 +33,10 @@ struct Encounter {
success: bool, success: bool,
} }
fn att_roll(value: u64, att: Attribute) -> Roll { fn att_roll(value: u64, att: Attribute) -> Roll {
let mut rng = thread_rng(); let mut rng = thread_rng();
let roll: u64 = rng.gen(); let roll: u64 = rng.gen();
return Roll { att, value, roll, result: value & roll }; return Roll { att, value, roll, result: value ^ roll };
} }
fn print_roll(r: &Roll) { fn print_roll(r: &Roll) {
@ -54,8 +52,8 @@ fn cryp_turn(c: &Cryp) -> Turn {
let dmg = att_roll(c.dmg, Attribute::Dmg); let dmg = att_roll(c.dmg, Attribute::Dmg);
let def = att_roll(c.def, Attribute::Def); let def = att_roll(c.def, Attribute::Def);
// print_roll(&dmg); print_roll(&dmg);
// print_roll(&def); print_roll(&def);
return Turn { dmg, def } return Turn { dmg, def }
} }
@ -149,6 +147,7 @@ pub fn levelling(mut c: Cryp) -> Cryp {
c = c.add_xp(); c = c.add_xp();
println!("{:?} now has {:?} xp and is lvl {:?}", c.name, c.xp, c.lvl); println!("{:?} now has {:?} xp and is lvl {:?}", c.name, c.xp, c.lvl);
// LEVEL CAP
if c.lvl == 12 { if c.lvl == 12 {
break c; break c;
} }
@ -157,3 +156,19 @@ pub fn levelling(mut c: Cryp) -> Cryp {
} }
} }
#[cfg(test)]
mod tests {
use *;
#[test]
fn pve_test() {
let player = Cryp::new()
.named("ca phe sua da".to_string())
.level(2)
.create();
levelling(player);
return;
}
}

View File

@ -74,3 +74,20 @@ impl Cryp {
} }
#[cfg(test)]
mod tests {
use *;
#[test]
fn create_cryp_test() {
let level_two = Cryp::new()
.named("hatchling".to_string())
.level(2)
.create();
assert!(level_two.dmg <= 2_u64.pow(2));
assert!(level_two.def <= 2_u64.pow(2));
assert!(level_two.stam < 2_u64.pow(2));
println!("{:?}", level_two);
return;
}
}

View File

@ -45,29 +45,5 @@ mod tests {
main(); main();
return; return;
} }
#[test]
fn create_cryp_test() {
let lvl_eight = Cryp::new()
.named("hatchling".to_string())
.level(2)
.create();
assert!(lvl_eight.dmg <= 2_u64.pow(2));
assert!(lvl_eight.def <= 2_u64.pow(2));
assert!(lvl_eight.stam < 2_u64.pow(2));
println!("{:?}", lvl_eight);
return;
}
#[test]
fn pve_test() {
let player = Cryp::new()
.named("ca phe sua da".to_string())
.level(2)
.create();
levelling(player);
return;
}
} }