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
stat & rng
block hash or totally random
roll server that prints a roll every second?
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
also the idea is like
the currency is kinda like path right

View File

@ -33,12 +33,10 @@ struct Encounter {
success: bool,
}
fn att_roll(value: u64, att: Attribute) -> Roll {
let mut rng = thread_rng();
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) {
@ -54,8 +52,8 @@ fn cryp_turn(c: &Cryp) -> Turn {
let dmg = att_roll(c.dmg, Attribute::Dmg);
let def = att_roll(c.def, Attribute::Def);
// print_roll(&dmg);
// print_roll(&def);
print_roll(&dmg);
print_roll(&def);
return Turn { dmg, def }
}
@ -149,6 +147,7 @@ pub fn levelling(mut c: Cryp) -> Cryp {
c = c.add_xp();
println!("{:?} now has {:?} xp and is lvl {:?}", c.name, c.xp, c.lvl);
// LEVEL CAP
if c.lvl == 12 {
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();
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;
}
}