integer evasion
This commit is contained in:
parent
6fa3fc043f
commit
feacd368a1
@ -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,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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)]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user