battle struct

This commit is contained in:
ntr 2018-08-20 11:34:02 +10:00
parent c42bc386dd
commit eb84b5b934

View File

@ -34,6 +34,12 @@ struct Encounter {
player: Cryp,
}
pub struct Battle {
a: Cryp,
b: Cryp,
// winner: Option<Cryp>,
}
fn att_roll(value: u64, att: Attribute) -> Roll {
let mut rng = thread_rng();
let roll: u64 = rng.gen();
@ -59,7 +65,7 @@ fn cryp_turn(c: &Cryp) -> Turn {
return Turn { dmg, def }
}
pub fn battle(mut a: Cryp, mut b: Cryp) -> (Cryp, Cryp) {
pub fn battle(mut a: Cryp, mut b: Cryp) -> Battle {
// println!("battle:",);
// println!("{:?}", cryps[0]);
// println!("{:?}", cryps[1]);
@ -72,8 +78,16 @@ pub fn battle(mut a: Cryp, mut b: Cryp) -> (Cryp, Cryp) {
b = b.assign_dmg(&a, &b_turn, &a_turn);
// println!("{:?}", combat);
if vec![&a, &b].iter().any(|c| c.hp == 0) {
break (a, b);
let mut finished = false;
{
if vec![&a, &b].iter().any(|c| c.hp == 0) {
finished = true
}
}
if finished {
break Battle { a, b };
}
}
}
@ -88,7 +102,8 @@ fn pve(plr: Cryp) -> Encounter {
.create();
// have to reassign here because battle takes ownership
let (plr, mob) = battle(plr, mob);
let Battle { a: plr, b: mob } = battle(plr, mob);
let win = vec![&plr, &mob].iter().any(|c| c.id == plr.id && c.hp > 0);
if win {