Skip to main content

✅ Local enemy has plus one ap cost

CategoryAbility
StatusPassing
Testtests/test_abilities_complex.py::TestVapulaLocalEnemyApCostAura::test_local_enemy_has_plus_one_ap_cost

Vapula and an enemy share a lane — enemy gets +1 AP Cost.

Preconditions

  • Lane 0: P1's Vapula (#100)

  • Lane 0: P2's Duban (#001, enemy of Vapula)

Action

  • Query ap_cost passive modifier on Duban
from engine.abilities import get_passive_modifiers, clear_registries, FIELD_AURA_MODIFIERS
# Fixture cleared registries + reloaded complex. Also reload passive so
# Vapula's field aura is freshly registered exactly once.
import importlib
import engine.abilities_passive
clear_registries()
importlib.reload(engine.abilities_passive)
# Re-register complex's registrations too (since clear wiped them)
import engine.abilities_complex
importlib.reload(engine.abilities_complex)

vapula = make_demon("100", lane=0, owner=Side.PLAYER_1)
duban = make_demon("001", lane=0, owner=Side.PLAYER_2)
state, placed = _make_state_with_demons(vapula, duban)
duban_p = placed[1]

mod = get_passive_modifiers(state, duban_p, "basic_ap_cost")

Expected Postconditions

  • Duban receives +1 ap_cost modifier from Vapula's field aura

Assertions

assert mod == 1, (
f"Local enemy Duban should have +1 basic_ap_cost from Vapula aura "
f"(applies to Attack/March only, not custom abilities). Got {mod}."
)