Skip to main content

ControlExchangeVariantEffect

Struct ControlExchangeVariantEffect 

Source
pub struct ControlExchangeVariantEffect;

Trait Implementations§

Source§

impl SpellAbilityEffect for ControlExchangeVariantEffect

Source§

fn resolve(ctx: &mut EffectContext<'_>, sa: &SpellAbility)

Resolve exchange of controlled cards between two target players. Currently delegates to the standard control exchange logic. Struct form of this effect so it can participate in the SpellAbilityEffect trait hierarchy — mirrors Java’s ControlExchangeVariantEffect class extending SpellAbilityEffect.

Source§

fn get_stack_description(sa: &SpellAbility) -> String

Return the stack description for this effect. Defaults to the spell ability’s own description.
Source§

fn build_spell_ability(_sa: &mut SpellAbility)

Build/configure the spell ability after construction. Default is a no-op; some effects override this to add parameters.
Source§

fn tokenize_string(game: &GameState, sa: &SpellAbility, desc: &str) -> String

Tokenize a description string, replacing CARDNAME with the card’s name. Mirrors Java’s SpellAbilityEffect.tokenizeString(SpellAbility, String).
Source§

fn add_forget_on_moved_trigger( game: &mut GameState, host_id: CardId, remembered_card_id: CardId, )

Add a “forget on moved” trigger for remembered cards. Mirrors Java’s SpellAbilityEffect.addForgetOnMovedTrigger(SpellAbility, Card, String).
Source§

fn create_effect( game: &mut GameState, sa: &SpellAbility, name: &str, image: &str, ) -> CardId

Create a temporary effect card in the command zone. Mirrors Java’s SpellAbilityEffect.createEffect(SpellAbility, Player, String, String).
Source§

fn run(ctx: &mut EffectContext<'_>, sa: &SpellAbility)

Run the effect (resolve entry point). Mirrors Java’s SpellAbilityEffect.run(SpellAbility).
Source§

fn handle_exiled_with( game: &mut GameState, sa: &SpellAbility, exiled_card_id: CardId, )

Track which card exiled another card, for “exile until” effects. Mirrors Java’s SpellAbilityEffect.handleExiledWith(SpellAbility, Card).
Source§

fn exile_effect_command( game: &mut GameState, trigger_handler: &mut TriggerHandler, sa: &SpellAbility, card_id: CardId, )

Execute the exile-with command. Mirrors Java’s SpellAbilityEffect.exileEffectCommand(Game, SpellAbility, Card).
Source§

fn get_stack_description_with_subs( game: &GameState, sa: &SpellAbility, ) -> String

Full stack-description with sub-ability concatenation. Mirrors Java SpellAbilityEffect.getStackDescriptionWithSubs(Map, SpellAbility).
Source§

fn get_new_chooser( game: &GameState, agents: &mut [Box<dyn PlayerAgent>], sa: &SpellAbility, loser: PlayerId, ) -> Option<PlayerId>

Resolve a replacement chooser when the original lost the game (CR 800.4g). Mirrors Java SpellAbilityEffect.getNewChooser(SpellAbility, Player).

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

Source§

fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The type for metadata in pointers and references to Self.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V