Skip to main content

nil_core/military/unit/stats/
mod.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4pub mod haul;
5pub mod power;
6pub mod prelude;
7pub mod ranged_debuff;
8pub mod speed;
9
10use bon::Builder;
11use prelude::*;
12use serde::{Deserialize, Serialize};
13
14#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
15#[serde(rename_all = "camelCase")]
16#[builder(const)]
17pub struct UnitStats {
18  attack: Power,
19  infantry_defense: Power,
20  cavalry_defense: Power,
21  ranged_defense: Power,
22  ranged_debuff: RangedDebuff,
23  speed: Speed,
24  haul: Haul,
25}
26
27impl UnitStats {
28  #[inline]
29  pub fn attack(&self) -> Power {
30    self.attack
31  }
32
33  #[inline]
34  pub fn infantry_defense(&self) -> Power {
35    self.infantry_defense
36  }
37
38  #[inline]
39  pub fn cavalry_defense(&self) -> Power {
40    self.cavalry_defense
41  }
42
43  #[inline]
44  pub fn ranged_defense(&self) -> Power {
45    self.ranged_defense
46  }
47
48  #[inline]
49  pub fn ranged_debuff(&self) -> RangedDebuff {
50    self.ranged_debuff
51  }
52
53  #[inline]
54  pub fn speed(&self) -> Speed {
55    self.speed
56  }
57
58  #[inline]
59  pub fn haul(&self) -> Haul {
60    self.haul
61  }
62}