Skip to main content

manabrew_engine/phase/
extra_phase.rs

1//! ExtraPhase — stores an extra phase inserted into the turn.
2//!
3//! Mirrors Java's `ExtraPhase.java`.
4
5use forge_foundation::PhaseType;
6
7/// An extra phase entry — tracks what phase to insert and any delayed triggers.
8/// Mirrors Java's `ExtraPhase` class.
9#[derive(Debug, Clone)]
10pub struct ExtraPhase {
11    phase: PhaseType,
12    delayed_triggers: Vec<String>,
13}
14
15impl ExtraPhase {
16    pub fn new(phase: PhaseType) -> Self {
17        ExtraPhase {
18            phase,
19            delayed_triggers: Vec::new(),
20        }
21    }
22
23    pub fn get_phase(&self) -> PhaseType {
24        self.phase
25    }
26
27    pub fn add_trigger(&mut self, del_trigger: String) {
28        self.delayed_triggers.push(del_trigger);
29    }
30
31    pub fn get_delayed_triggers(&self) -> &[String] {
32        &self.delayed_triggers
33    }
34}