manabrew_engine/ability/effects/
becomes_blocked_effect.rs1use forge_foundation::ZoneType;
6
7use super::EffectContext;
8use crate::event::RunParams;
9use crate::ids::CardId;
10use crate::trigger::TriggerType;
11
12#[manabrew_engine_macros::spell_effect(BecomesBlockedEffect)]
16fn resolve(ctx: &mut EffectContext, sa: &crate::spellability::SpellAbility) {
17 let targets: Vec<CardId> = if let Some(target) = sa.target_chosen.target_card {
19 vec![target]
20 } else if let Some(source) = sa.source {
21 ctx.game.card(source).remembered_cards.clone()
23 } else {
24 return;
25 };
26
27 for card_id in &targets {
28 if ctx.game.card(*card_id).zone != ZoneType::Battlefield {
29 continue;
30 }
31 ctx.trigger_handler.run_trigger(
33 TriggerType::AttackerBlocked,
34 RunParams {
35 card: Some(*card_id),
36 player: Some(sa.activating_player),
37 ..Default::default()
38 },
39 false,
40 );
41 }
42}