manabrew_protocol/prompts/
mod.rs1use 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}