Skip to main content

Module mana

Module mana 

Source

Re-exports§

pub use auto_pay::pay_mana_cost_auto;
pub use auto_pay::pay_mana_cost_auto_with_callback;
pub use auto_pay::pay_mana_cost_auto_with_callback_and_reserved_sacrifices;
pub use auto_pay::pay_mana_cost_auto_with_chooser;
pub use auto_pay::AutoPayResult;
pub use computer_util_mana::auto_tap_lands;
pub use computer_util_mana::auto_tap_lands_allow_reserved_source_reuse;
pub use computer_util_mana::auto_tap_lands_allow_reserved_source_reuse_trace;
pub use computer_util_mana::auto_tap_lands_allow_reserved_source_reuse_trace_with_callbacks_and_reserved_sacrifices;
pub use computer_util_mana::auto_tap_lands_allow_reserved_source_reuse_with_callbacks;
pub use computer_util_mana::auto_tap_lands_allow_reserved_source_reuse_with_callbacks_and_reserved_sacrifices;
pub use computer_util_mana::auto_tap_lands_allow_reserved_source_reuse_with_chooser;
pub use computer_util_mana::auto_tap_lands_generic;
pub use computer_util_mana::auto_tap_lands_trace;
pub use computer_util_mana::auto_tap_lands_trace_with_callbacks;
pub use computer_util_mana::auto_tap_lands_with_callbacks;
pub use computer_util_mana::auto_tap_lands_with_chooser;
pub use computer_util_mana::can_pay_mana_cost_with_reserved_sacrifices;
pub use computer_util_mana::can_pay_spell_mana_cost_for_action_space;
pub use computer_util_mana::collect_mana_payment_sources;
pub use computer_util_mana::next_auto_tap_choice;
pub use computer_util_mana::next_auto_tap_choice_with_reserved_sacrifices;
pub use computer_util_mana::AutoTapChoice;
pub use computer_util_mana::ManaPayCallback;
pub use computer_util_mana::ManaPayCallbackFn;
pub use computer_util_mana::ManaPaymentSources;
pub use computer_util_mana::SacrificeChooser;
pub use mana_pool::ManaPool;

Modules§

auto_pay
computer_util_mana
mana_conversion_matrix
mana_cost_being_paid
mana_pool
ManaPool — floating mana pool for a player.
mana_refund_service
Mana refund service for returning paid mana to the pool.

Structs§

Mana
An individual mana object in the pool, tracking source and properties.
ManaPaymentContext
Context about what a mana payment is for, used to check restrictions.
ManaProductionParams
Parameters that describe metadata to attach to produced mana.

Functions§

add_produced_mana_to_pool
Add produced mana to the pool with full metadata (snow, restriction, keywords, counters, triggers).
apply_player_life_payment_keywords
basic_land_mana_atom
Determine what mana atom a basic land produces based on its subtypes.
calculate_available_mana
Calculate available mana from the current pool plus untapped lands and non-land mana sources.
calculate_available_mana_excluding
Calculate available mana while excluding a specific battlefield source.
calculate_available_mana_excluding_with_reserved
calculate_available_mana_for_casting
calculate_available_mana_for_casting_excluding
calculate_available_mana_with_context
Like calculate_available_mana_excluding_with_reserved but filters mana abilities whose RestrictValid$ cannot be satisfied by the given payment context. Java’s ActionSpace filters per-spell via manaPart.meetsManaRestrictions(saBeingPaid); this mirrors that for Rust’s playability checks.
capitalize_color
Capitalize a lowercase color name: “white” → “White”.
color_name_to_mana_atom
Convert a color name (“Green”, “Blue”, etc.) to its ManaAtom constant. Case-insensitive: accepts “white”, “White”, “WHITE”, etc.
determine_mana_production_ir
Determine what mana to produce from a Produced$ string, handling color choice, combo mana, Amount$ multiplier, and replacement effects.
land_mana_atoms
Returns all ManaAtom values a land can produce from its activated mana abilities. Handles:
mana_atom_from_produced
Convert a Produced$ value (e.g. “G”, “R”, “W”) to a ManaAtom.
mana_letter_to_color_name
Convert a single mana letter (“G”, “U”, etc.) to its color name (“Green”, “Blue”, etc.).
mana_meets_restriction
Check if a mana with the given restriction can be spent in the given context.
payment_context_for_sa