manabrew_engine/ability/effects/control_exchange_variant_effect.rs
1//! ControlExchangeVariant effect — variant of control exchange.
2//!
3//! Mirrors Java's `ControlExchangeVariantEffect.java`.
4//! Exchanges cards controlled between two players, where the activating
5//! player chooses which cards to exchange.
6
7use super::EffectContext;
8
9/// Resolve exchange of controlled cards between two target players.
10/// Currently delegates to the standard control exchange logic.
11/// Struct form of this effect so it can participate in the
12/// `SpellAbilityEffect` trait hierarchy — mirrors Java's
13/// `ControlExchangeVariantEffect` class extending `SpellAbilityEffect`.
14#[manabrew_engine_macros::spell_effect(ControlExchangeVariantEffect)]
15fn resolve(ctx: &mut EffectContext, sa: &crate::spellability::SpellAbility) {
16 // In Java this allows choosing specific cards from each player to swap.
17 // Delegates to the existing control exchange/gain variant handler for now.
18 super::control_gain_variant_effect::ControlGainVariantEffect::resolve(ctx, sa);
19}