battle struct
This commit is contained in:
parent
c42bc386dd
commit
eb84b5b934
@ -34,6 +34,12 @@ struct Encounter {
|
|||||||
player: Cryp,
|
player: Cryp,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub struct Battle {
|
||||||
|
a: Cryp,
|
||||||
|
b: Cryp,
|
||||||
|
// winner: Option<Cryp>,
|
||||||
|
}
|
||||||
|
|
||||||
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();
|
||||||
@ -59,7 +65,7 @@ fn cryp_turn(c: &Cryp) -> Turn {
|
|||||||
return Turn { dmg, def }
|
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!("battle:",);
|
||||||
// println!("{:?}", cryps[0]);
|
// println!("{:?}", cryps[0]);
|
||||||
// println!("{:?}", cryps[1]);
|
// 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);
|
b = b.assign_dmg(&a, &b_turn, &a_turn);
|
||||||
// println!("{:?}", combat);
|
// 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();
|
.create();
|
||||||
|
|
||||||
// have to reassign here because battle takes ownership
|
// 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);
|
let win = vec![&plr, &mob].iter().any(|c| c.id == plr.id && c.hp > 0);
|
||||||
|
|
||||||
if win {
|
if win {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user