Skip to main content

manabrew_engine/trigger/
trigger_always.rs

1use serde::{Deserialize, Serialize};
2
3use crate::{
4    event::RunParams, game::GameState, parsing::Params, spellability::SpellAbility,
5    trigger::TriggerType,
6};
7
8use super::trigger::TriggerBehavior;
9
10#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct TriggerAlways;
12
13impl TriggerAlways {
14    pub fn parse(_params: &Params) -> Box<dyn TriggerBehavior> {
15        Box::new(Self)
16    }
17}
18
19#[typetag::serde]
20impl TriggerBehavior for TriggerAlways {
21    fn trigger_type(&self) -> TriggerType {
22        TriggerType::Always
23    }
24
25    fn perform_test(
26        &self,
27        _trigger: &super::trigger::Trigger,
28        _params: &RunParams,
29        _game: &GameState,
30    ) -> bool {
31        true
32    }
33
34    fn set_triggering_objects(
35        &self,
36        _trigger: &super::trigger::Trigger,
37        _sa: &mut SpellAbility,
38        _params: &RunParams,
39        _game: &GameState,
40    ) {
41    }
42
43    fn get_important_stack_objects(
44        &self,
45        _trigger: &super::trigger::Trigger,
46        _sa: &SpellAbility,
47    ) -> String {
48        String::new()
49    }
50}