manabrew_engine/ability/effects/play_land_variant_effect.rs
1//! PlayLandVariant effect — variant play land.
2//!
3//! Mirrors Java's `PlayLandVariantEffect.java`.
4//! Allows a card to be played as a copy of a basic land matching
5//! one of its colors.
6
7use super::EffectContext;
8
9/// Resolve play land variant.
10/// In Java this clones a random basic land matching the source's colors
11/// and plays it. Currently a stub for structural parity.
12/// Struct form of this effect so it can participate in the
13/// `SpellAbilityEffect` trait hierarchy — mirrors Java's
14/// `PlayLandVariantEffect` class extending `SpellAbilityEffect`.
15#[manabrew_engine_macros::spell_effect(PlayLandVariantEffect)]
16fn resolve(_ctx: &mut EffectContext, _sa: &crate::spellability::SpellAbility) {
17 // PlayLandVariant is a niche effect used by cards like Dryad of the Ilysian Grove.
18 // Full implementation requires the card database for land lookup.
19 let err = crate::ability::IllegalAbilityException::new(
20 "PlayLandVariant effect not yet fully implemented",
21 );
22 eprintln!("{err}");
23}