dofus_dmg_calculator/
lib.rs

1pub fn compute_dmg_estimation(
2    base_damage: u64,
3    fixed_damage: u64,
4    stat_points: u64,
5    power: u64,
6) -> u64 {
7    let multiplier = 1.0 + (stat_points + power) as f64 / 100.0;
8    let total = base_damage as f64 * multiplier + fixed_damage as f64;
9    total.floor() as u64
10}
11
12#[cfg(test)]
13mod tests {
14    use super::*;
15
16    #[test]
17    fn it_computes_dmg_estimation_with_null_values() {
18        let expected = 0;
19        let actual = compute_dmg_estimation(0, 0, 0, 0);
20        assert_eq!(actual, expected);
21    }
22
23    #[test]
24    fn it_computes_dmg_estimation_with_positive_values() {
25        let expected = 56;
26        let actual = compute_dmg_estimation(9, 34, 128, 23);
27        assert_eq!(actual, expected);
28    }
29}