The Erinyes
The Infernal Goddesses
Unit #026
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| — | — | — | Normal | - | D |
warning
This unit is Familiar Only — it cannot be summoned directly.
Abilities
Passive
q: When The Erinyes would come into play, instead, Independently play the 3 Familiars Alecto, Megaera, and Tisiphone in Any Lanes (this card is not played).
Engine Implementation
def _erinyes_deploy_trigger(
state: GameState, event: GameEvent, demon: DemonInstance, depth: int
) -> GameState | None:
"""#026 The Erinyes — Deploy trigger: Replace with Alecto, Megaera, Tisiphone.
Fires on DEMON_DEPLOYED when The Erinyes (unit_id="026") is the deployed demon.
Removes The Erinyes from the field and deploys three familiars in its place:
- 026_1 Alecto → lane 0
- 026_2 Megaera → lane 1
- 026_3 Tisiphone → lane 2
"Independently" means each is placed in any lane (we auto-assign lanes 0/1/2).
A full player-choice implementation would queue 3 lane-pick prompts.
Erinyes familiars must be in the owner's familiar_deck to deploy.
If a familiar is not available (all copies in play), that familiar is skipped.
"""
from engine.operations import deploy_familiar
# Only fire if The Erinyes itself was deployed (event.source = the deployed demon)
if event.source is None:
return None
if event.source.instance_id != demon.instance_id:
return None # A different demon deployed
owner = demon.owner
erinyes_iid = demon.instance_id
# Remove The Erinyes from the field (it never truly comes into play)
new_state = copy.deepcopy(state)
# Return Erinyes card to graveyard (it's a regular unit even if unusual)
erinyes_in_state = next(
(d for d in new_state.demons if d.instance_id == erinyes_iid), None
)
if erinyes_in_state is not None:
new_state.demons = [
d for d in new_state.demons if d.instance_id != erinyes_iid
]
new_state.players[owner].graveyard.append("026")
# Deploy the three Erinyes familiars into lanes 0, 1, 2
ERINYES_FAMILIARS = [
("026_1", 0), # Alecto → lane 0
("026_2", 1), # Megaera → lane 1
("026_3", 2), # Tisiphone → lane 2
]
for fam_id, lane in ERINYES_FAMILIARS:
if fam_id in new_state.players[owner].familiar_deck:
new_state = deploy_familiar(new_state, owner, fam_id, lane)
# If not available, skip that familiar (all copies already in play)
return new_state
register_trigger("026", 0, _erinyes_deploy_trigger)