Skip to main content

✅ Vine spawns parasite on 3cp death

CategoryAbility
StatusPassing
Testtests/test_abilities_complex.py::TestVineCrystalParasite::test_vine_spawns_parasite_on_3cp_death

Vine deploys Crystal Parasite when a 3+ CP demon dies.

Preconditions

  • P1 Main Phase

  • Lane 0: P1's Vine (#085) — HP=15, 0 damage, READIED, NOT fatally_wounded

  • Lane 1: P2's Murmur (#002, CP=3) — fatally_wounded (dying)

  • P1's familiar_deck contains "085_1" (Crystal Parasite)

Action

  • fire FATALLY_WOUNDED with target=Murmur (CP=3 >= threshold)
result = fire_event(state, event)

# Crystal Parasite must appear in lane 1
parasites_in_lane_1 = [
d for d in result.demons if d.unit_id == "085_1" and d.lane == 1
]

Expected Postconditions

  • A Crystal Parasite familiar (085_1) deployed in lane 1 (dead demon's lane)

  • Vine: unchanged (still in lane 0, not fatally_wounded)

  • P1's familiar_deck: "085_1" removed

Assertions

assert len(parasites_in_lane_1) == 1, (
f"Crystal Parasite must be deployed in lane 1 (dead demon's lane). "
f"Found parasites in lane 1: {len(parasites_in_lane_1)}."
)
assert parasites_in_lane_1[0].owner == Side.PLAYER_1, (
"Crystal Parasite must be owned by Vine's owner (P1)."
)
assert "085_1" not in result.players[Side.PLAYER_1].familiar_deck, (
"085_1 must be removed from P1's familiar_deck after deploy."
)