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