Skip to main content

manabrew_protocol/prompts/
mod.rs

1use serde::{Deserialize, Serialize};
2use ts_rs::TS;
3
4pub mod common;
5
6pub mod choose_action;
7pub mod choose_attackers;
8pub mod choose_blockers;
9pub mod choose_board_targets;
10pub mod choose_boolean;
11pub mod choose_cards;
12pub mod choose_color;
13pub mod choose_combat_damage_assignment;
14pub mod choose_damage_assignment_order;
15pub mod choose_from_selection;
16pub mod choose_number;
17pub mod dice_rolled;
18pub mod game_over;
19pub mod mulligan;
20pub mod mulligan_put_back;
21pub mod pay_mana_cost;
22pub mod reorder_cards;
23pub mod reveal;
24pub mod scry;
25
26pub use choose_action::{ChooseActionInput, ChooseActionOutput, PassUntil};
27pub use choose_attackers::{ChooseAttackersInput, ChooseAttackersOutput};
28pub use choose_blockers::{ChooseBlockersInput, ChooseBlockersOutput};
29pub use choose_board_targets::{ChooseBoardTargetsInput, ChooseBoardTargetsOutput};
30pub use choose_boolean::{ChooseBooleanInput, ChooseBooleanOutput};
31pub use choose_cards::{ChooseCardsInput, ChooseCardsOutput};
32pub use choose_color::{ChooseColorInput, ChooseColorOutput};
33pub use choose_combat_damage_assignment::{
34    ChooseCombatDamageAssignmentInput, ChooseCombatDamageAssignmentOutput,
35};
36pub use choose_damage_assignment_order::{
37    ChooseDamageAssignmentOrderInput, ChooseDamageAssignmentOrderOutput,
38};
39pub use choose_from_selection::{ChooseFromSelectionInput, ChooseFromSelectionOutput};
40pub use choose_number::{ChooseNumberInput, ChooseNumberOutput};
41pub use common::{ActivatableAbilityInfo, AvailableAction, AvailableActionKind, Mana, ManaColor};
42pub use dice_rolled::{DiceRollEntry, DiceRolledInput, DiceRolledOutput};
43pub use game_over::GameOverInput;
44pub use mulligan::{MulliganInput, MulliganOutput};
45pub use mulligan_put_back::{MulliganPutBackInput, MulliganPutBackOutput};
46pub use pay_mana_cost::{PayManaCostInput, PayManaCostOutput};
47pub use reorder_cards::{ReorderCardsInput, ReorderCardsOutput};
48pub use reveal::{RevealCardsInput, RevealCardsOutput};
49pub use scry::{ScryInput, ScryOutput};
50
51#[derive(Debug, Clone, Serialize, Deserialize, TS)]
52#[serde(tag = "type", rename_all = "camelCase")]
53#[ts(export, export_to = "prompts/promptInput.ts")]
54pub enum PromptInput {
55    Mulligan(mulligan::MulliganInput),
56    MulliganPutBack(mulligan_put_back::MulliganPutBackInput),
57    ChooseAction(choose_action::ChooseActionInput),
58    ChooseAttackers(choose_attackers::ChooseAttackersInput),
59    ChooseBlockers(choose_blockers::ChooseBlockersInput),
60    ChooseBoardTargets(choose_board_targets::ChooseBoardTargetsInput),
61    ChooseBoolean(choose_boolean::ChooseBooleanInput),
62    ChooseFromSelection(choose_from_selection::ChooseFromSelectionInput),
63    GameOver(game_over::GameOverInput),
64    RevealCards(reveal::RevealCardsInput),
65    Scry(scry::ScryInput),
66    ChooseColor(choose_color::ChooseColorInput),
67    ChooseNumber(choose_number::ChooseNumberInput),
68    ChooseDamageAssignmentOrder(choose_damage_assignment_order::ChooseDamageAssignmentOrderInput),
69    ChooseCombatDamageAssignment(
70        choose_combat_damage_assignment::ChooseCombatDamageAssignmentInput,
71    ),
72    PayManaCost(pay_mana_cost::PayManaCostInput),
73    ChooseCards(choose_cards::ChooseCardsInput),
74    ReorderCards(reorder_cards::ReorderCardsInput),
75    DiceRolled(dice_rolled::DiceRolledInput),
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize, TS)]
79#[serde(tag = "type", content = "output", rename_all = "camelCase")]
80#[ts(export, export_to = "prompts/promptOutput.ts")]
81pub enum PromptOutput {
82    Mulligan(mulligan::MulliganOutput),
83    MulliganPutBack(mulligan_put_back::MulliganPutBackOutput),
84    ChooseAction(choose_action::ChooseActionOutput),
85    ChooseAttackers(choose_attackers::ChooseAttackersOutput),
86    ChooseBlockers(choose_blockers::ChooseBlockersOutput),
87    ChooseBoardTargets(choose_board_targets::ChooseBoardTargetsOutput),
88    ChooseBoolean(choose_boolean::ChooseBooleanOutput),
89    ChooseFromSelection(choose_from_selection::ChooseFromSelectionOutput),
90    RevealCards(reveal::RevealCardsOutput),
91    Scry(scry::ScryOutput),
92    ChooseColor(choose_color::ChooseColorOutput),
93    ChooseNumber(choose_number::ChooseNumberOutput),
94    ChooseDamageAssignmentOrder(choose_damage_assignment_order::ChooseDamageAssignmentOrderOutput),
95    ChooseCombatDamageAssignment(
96        choose_combat_damage_assignment::ChooseCombatDamageAssignmentOutput,
97    ),
98    PayManaCost(pay_mana_cost::PayManaCostOutput),
99    ChooseCards(choose_cards::ChooseCardsOutput),
100    ReorderCards(reorder_cards::ReorderCardsOutput),
101    DiceRolled(dice_rolled::DiceRolledOutput),
102}