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> { pub fn evade(&self, skill: Skill) -> Option<ResolutionResult> {
let mut rng = thread_rng(); let mut rng = thread_rng();
let hp_pct = self.hp.base as f64 / self.stamina.base as f64; let hp_pct = (self.hp.base * 100) / self.stamina.base;
let evasion_rating = self.evasion.base as f64 * hp_pct; let evasion_rating = (self.evasion.base * hp_pct) / 100;
// println!("{:?}", evasion_rating); println!("{:?}", evasion_rating);
if evasion_rating == 0.0 { if evasion_rating == 0 {
return None; 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 { true => Some(ResolutionResult::Evasion {
skill, skill,
evasion_rating: evasion_rating.round(), evasion_rating: evasion_rating,
}), }),
false => None, false => None,
} }

View File

@ -70,7 +70,7 @@ pub enum ResolutionResult {
Healing { amount: u64, overhealing: u64, category: Category , immunity: Immunity }, Healing { amount: u64, overhealing: u64, category: Category , immunity: Immunity },
Effect { effect: Effect, duration: u8, immunity: Immunity }, Effect { effect: Effect, duration: u8, immunity: Immunity },
Removal { effect: Effect, 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)] #[derive(Debug,Clone,PartialEq,Serialize,Deserialize)]