wowlab_engine_combat/builder/spell_builder/
aoe.rs1use super::SpellDefinitionDraft;
2
3impl SpellDefinitionDraft {
4 pub fn max_targets(mut self, n: u8) -> Self {
6 self.aoe_max_targets = n;
7
8 self
9 }
10
11 pub fn reduced_aoe_targets(mut self, n: u8) -> Self {
13 self.aoe_reduced_targets = n;
14
15 self
16 }
17
18 pub fn full_amount_targets(mut self, n: u8) -> Self {
20 self.aoe_full_targets = n;
21
22 self
23 }
24
25 pub fn base_aoe_multiplier(mut self, m: f64) -> Self {
27 self.aoe_base_mult = m;
28
29 self
30 }
31
32 pub fn multi_target(mut self) -> Self {
34 self.is_aoe = true;
35
36 self
37 }
38
39 pub fn chain_targets(mut self, n: u8) -> Self {
41 self.aoe_max_targets = n;
42 self.chain_targeting = n > 0;
43
44 if self.chain_targeting {
45 self.is_aoe = true;
46 }
47
48 self
49 }
50
51 pub fn chain_targeting(mut self, enabled: bool) -> Self {
53 self.chain_targeting = enabled;
54
55 if enabled {
56 self.is_aoe = true;
57 }
58
59 self
60 }
61
62 pub fn chain_multiplier(mut self, m: f64) -> Self {
64 self.chain_multiplier = m;
65
66 self
67 }
68
69 pub fn split_damage(mut self) -> Self {
71 self.split = true;
72
73 self
74 }
75}