integer evasion

This commit is contained in:
ntr 2019-01-13 15:28:39 +11:00
parent 6fa3fc043f
commit feacd368a1
2 changed files with 8 additions and 8 deletions

View File

@ -526,20 +526,20 @@ impl Cryp {
pub fn evade(&self, skill: Skill) -> Option<ResolutionResult> {
let mut rng = thread_rng();
let hp_pct = self.hp.base as f64 / self.stamina.base as f64;
let evasion_rating = self.evasion.base as f64 * hp_pct;
let hp_pct = (self.hp.base * 100) / self.stamina.base;
let evasion_rating = (self.evasion.base * hp_pct) / 100;
// println!("{:?}", evasion_rating);
if evasion_rating == 0.0 {
println!("{:?}", evasion_rating);
if evasion_rating == 0 {
return None;
}
let roll = rng.gen_bool(evasion_rating / 100.0);
let roll = rng.gen_range(0, 100);
match roll {
match roll > evasion_rating {
true => Some(ResolutionResult::Evasion {
skill,
evasion_rating: evasion_rating.round(),
evasion_rating: evasion_rating,
}),
false => None,
}

View File

@ -70,7 +70,7 @@ pub enum ResolutionResult {
Healing { amount: u64, overhealing: u64, category: Category , immunity: Immunity },
Effect { effect: Effect, duration: u8, immunity: Immunity },
Removal { effect: Effect, immunity: Immunity },
Evasion { skill: Skill, evasion_rating: f64 },
Evasion { skill: Skill, evasion_rating: u64 },
}
#[derive(Debug,Clone,PartialEq,Serialize,Deserialize)]