#[derive(Debug)]
pub struct Sfor {
pub atk: f32,
pub dfe: f32,
pub pow: f32,
}
impl Sfor {
pub fn cal(&self) -> f32 {
let dmg = (37.0 * self.atk * self.pow / 41.0).round() / self.dfe;
return dmg;
}
}
#[derive(Debug)]
pub struct Cfor {
pub atk: f32, pub dfe: f32, pub pow: f32, pub deal: f32, pub pow_appd: f32, pub atk_buff: f32, pub dfe_buff: f32, pub pow_buff: f32, pub prop: f32, pub counter: f32, pub reduce: f32, }
impl Cfor {
pub fn new(atk: f32, dfe:f32, pow:f32) -> Self {
Self {
atk,
dfe,
pow,
deal: 1.0,
pow_appd: 0.0,
atk_buff: 1.0,
dfe_buff: 1.0,
pow_buff: 1.0,
prop: 1.0,
counter: 1.0,
reduce: 0.0,
}
}
pub fn cal(&self) -> f32 {
(37.0 * (self.atk * self.atk_buff) * (self.pow * self.deal + self.pow_appd) * self.pow_buff * self.prop * self.counter * (1.0 - self.reduce)).round() / 41.0 / (self.dfe * self.dfe_buff)
}
}