manabrew_engine/phase/
extra_turn.rs1use crate::ids::PlayerId;
6
7#[derive(Debug, Clone)]
10pub struct ExtraTurn {
11 pub player: PlayerId,
12 pub skip_untap: bool,
14 delayed_triggers: Vec<String>,
16 pub cant_set_schemes_in_motion: bool,
18}
19
20impl ExtraTurn {
21 pub fn new(player: PlayerId) -> Self {
22 ExtraTurn {
23 player,
24 skip_untap: false,
25 delayed_triggers: Vec::new(),
26 cant_set_schemes_in_motion: false,
27 }
28 }
29
30 pub fn get_player(&self) -> PlayerId {
31 self.player
32 }
33
34 pub fn set_player(&mut self, player: PlayerId) {
35 self.player = player;
36 }
37
38 pub fn add_trigger(&mut self, del_trigger: String) {
39 self.delayed_triggers.push(del_trigger);
40 }
41
42 pub fn get_delayed_triggers(&self) -> &[String] {
43 &self.delayed_triggers
44 }
45
46 pub fn is_skip_untap(&self) -> bool {
47 self.skip_untap
48 }
49
50 pub fn set_skip_untap(&mut self, skip: bool) {
51 self.skip_untap = skip;
52 }
53
54 pub fn is_cant_set_schemes_in_motion(&self) -> bool {
55 self.cant_set_schemes_in_motion
56 }
57
58 pub fn set_cant_set_schemes_in_motion(&mut self, cant: bool) {
59 self.cant_set_schemes_in_motion = cant;
60 }
61}