use forge_foundation::ZoneType;
use super::{emit_zone_trigger, EffectContext};
#[manabrew_engine_macros::spell_effect(HeistEffect)]
fn resolve(ctx: &mut EffectContext, sa: &crate::spellability::SpellAbility) {
let controller = sa.activating_player;
let num = super::resolve_numeric_svar(ctx.game, sa, "Num", 1).max(0) as usize;
let target_player = sa
.target_chosen
.target_player
.unwrap_or_else(|| ctx.game.opponent_of(controller));
for _ in 0..num {
let lib = ctx
.game
.cards_in_zone(ZoneType::Library, target_player)
.to_vec();
let Some(&top) = lib.last() else { break };
let old_zone = ctx.game.card(top).zone;
ctx.game.card_mut(top).set_face_down(true);
ctx.move_card(top, ZoneType::Exile, target_player);
if let Some(sid) = sa.source {
ctx.game.card_mut(top).set_exiled_by(Some(sid));
}
emit_zone_trigger(ctx.trigger_handler, top, old_zone, ZoneType::Exile);
}
}