Judas Iscariot
The Traitor
Unit #029
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 12 (+6) | 3 (+1) | 3 (+2) | Normal | Local | B |
Abilities
Passive
c: All Other Local Allied Demons have -2n and +1 AP Cost.
Engine Implementation
def _judas_aura_def(state: GameState, demon: DemonInstance) -> dict[str, int]:
"""Return -2 DEF if there is a Judas Iscariot in the same lane as an
allied demon (excluding Judas itself)."""
for judas in _on_field(state, "029"):
if (
judas.lane == demon.lane
and judas.owner == demon.owner
and judas.instance_id != demon.instance_id
):
return {"def": -2}
return {}
def _judas_aura_ap_cost(state: GameState, demon: DemonInstance) -> dict[str, int]:
"""Return +1 AP Cost if there is a Judas Iscariot in the same lane as an
allied demon (excluding Judas itself)."""
for judas in _on_field(state, "029"):
if (
judas.lane == demon.lane
and judas.owner == demon.owner
and judas.instance_id != demon.instance_id
):
return {"ap_cost": 1}
return {}
register_field_aura("029", 0, _judas_aura_def)
Exile — 2 AP
Exile: 2 AP - a: Give control of Judas (and Judas's potential Familiars) to your opponent.
Engine Implementation
def _judas_exile(state: GameState, demon: DemonInstance, targets, choices, rng) -> GameState:
"""#029 Judas Iscariot — Exile
Action, 2 AP, (exhaust): Give control of Judas (and Judas's potential Familiars)
to your opponent. Placed into a lane chosen by the activating player.
CRITICAL: Judas arrives EXHAUSTED on the opponent's side (confusion #17).
The opponent cannot march him or perform any actions until Rest Phase readies him.
This is the Judas exhaustion lock — multiple cycles of lane disruption.
"""
from engine.operations import exile_demon
opponent = Side.PLAYER_2 if demon.owner == Side.PLAYER_1 else Side.PLAYER_1
# Target lane for Judas's placement (chosen by the activating player)
if choices and "lane" in choices:
exile_lane = choices["lane"]
elif targets:
exile_lane = targets[0].lane
else:
exile_lane = demon.lane # default: same lane
# exile_demon transfers ownership and sets EXHAUSTED (confusion #17)
state = exile_demon(state, demon, opponent, exile_lane)
return state
register_ability("029", 1, _judas_exile)