Skip to main content

✅ Local ally unaffected

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

Ally shares Vapula's lane — NOT affected (aura is enemy-only).

Preconditions

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

Action

  • Query ap_cost on Murmur
from engine.abilities import get_passive_modifiers, clear_registries
import importlib
import engine.abilities_passive
clear_registries()
importlib.reload(engine.abilities_passive)
import engine.abilities_complex
importlib.reload(engine.abilities_complex)

vapula = make_demon("100", lane=0, owner=Side.PLAYER_1)
murmur = make_demon("002", lane=0, owner=Side.PLAYER_1)
state, placed = _make_state_with_demons(vapula, murmur)
murmur_p = placed[1]

mod = get_passive_modifiers(state, murmur_p, "ap_cost")
# Murmur's own passive returns -2, Vapula aura must not add +1.

Expected Postconditions

  • Murmur has 0 contribution from Vapula's aura (enemy-only).

  • Murmur's own passive (-2 ap_cost) is unaffected — we assert only

  • the +1 is NOT added.

Assertions

assert mod == -2, (
f"Allied Murmur should only have its own -2 ap_cost (Vapula aura is enemy-only). Got {mod}."
)