wowlab_engine_combat/builder/spell_builder/
gating.rs1use super::SpellDefinitionDraft;
2
3impl SpellDefinitionDraft {
4 pub fn requires_aura_at_min_stacks(mut self, aura_id: u32, min_stacks: u8) -> Self {
6 self.gating_aura_id = aura_id;
7 self.gating_aura_min_stacks = min_stacks;
8
9 self
10 }
11
12 pub fn cost_free_when_aura(mut self, aura_id: u32) -> Self {
14 self.cost_bypass_aura_id = aura_id;
15
16 self
17 }
18
19 pub fn consume_aura_on_cast(mut self, aura_id: u32) -> Self {
21 self.consume_aura_on_cast_id = aura_id;
22
23 self
24 }
25
26 pub fn cooldown_bypass_when_aura(mut self, aura_id: u32) -> Self {
28 self.cooldown_bypass_aura_id = aura_id;
29
30 self
31 }
32
33 pub fn execute_below_pct(mut self, percent: f64) -> Self {
35 self.execute_below_pct = percent;
36
37 self
38 }
39
40 pub fn instant_when_aura(mut self, aura_id: u32) -> Self {
42 self.instant_cast_aura_id = aura_id;
43
44 self
45 }
46
47 pub fn override_shares_base_cooldown(mut self) -> Self {
49 self.override_shares_base_cooldown = true;
50
51 self
52 }
53
54 pub fn override_preserves_aura(mut self) -> Self {
56 self.override_preserves_aura = true;
57
58 self
59 }
60
61 pub fn overridden_by(mut self, spell_id: u32, aura_id: u32) -> Self {
63 self.override_aura_id = aura_id;
64 self.override_spell_id = spell_id;
65
66 self
67 }
68
69 pub fn override_at_min_stacks(mut self, min_stacks: u8) -> Self {
71 self.override_aura_min_stacks = min_stacks;
72
73 self
74 }
75}