combat
This commit is contained in:
parent
86094dce12
commit
9ea8361ba9
12
README.md
12
README.md
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
17
src/cryp.rs
17
src/cryp.rs
@ -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;
|
||||
}
|
||||
}
|
||||
24
src/lib.rs
24
src/lib.rs
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user