Skip to main content

manabrew_engine/ability/effects/
intensify_effect.rs

1//! Intensify — increase effect power (escalating).
2
3use super::EffectContext;
4
5/// Struct form of this effect so it can participate in the
6/// `SpellAbilityEffect` trait hierarchy — mirrors Java's
7/// `IntensifyEffect` class extending `SpellAbilityEffect`.
8#[manabrew_engine_macros::spell_effect(IntensifyEffect)]
9fn resolve(ctx: &mut EffectContext, sa: &crate::spellability::SpellAbility) {
10    if let Some(sid) = sa.source {
11        let current = ctx
12            .game
13            .card(sid)
14            .svars
15            .get("IntensifyCount")
16            .and_then(|s| {
17                s.strip_prefix("Number$")
18                    .and_then(|n| n.parse::<i32>().ok())
19            })
20            .unwrap_or(0);
21        ctx.game
22            .card_mut(sid)
23            .set_s_var("IntensifyCount", format!("Number${}", current + 1));
24    }
25}