manabrew_engine/ability/effects/
claim_the_prize_effect.rs1use super::EffectContext;
6use crate::ability::ability_ir::DefinedRef;
7use crate::event::RunParams;
8use crate::trigger::TriggerType;
9
10#[manabrew_engine_macros::spell_effect(ClaimThePrizeEffect)]
14fn resolve(ctx: &mut EffectContext, sa: &crate::spellability::SpellAbility) {
15 let source = match sa.source {
16 Some(s) => s,
17 None => return,
18 };
19
20 let attractions = if let Some(def) = sa.defined_ref() {
22 if matches!(def, DefinedRef::SelfCard) {
23 vec![source]
24 } else {
25 ctx.game.card(source).remembered_cards.clone()
26 }
27 } else {
28 vec![source]
29 };
30
31 for card_id in attractions {
32 ctx.trigger_handler.run_trigger(
33 TriggerType::ClaimPrize,
34 RunParams {
35 card: Some(card_id),
36 player: Some(sa.activating_player),
37 ..Default::default()
38 },
39 false,
40 );
41 }
42}