Skip to main content

Judas Iscariot

The Traitor

Unit #029

HPPWRCPSpeedRangeTier
12 (+6)3 (+1)3 (+2)NormalLocalB

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)
Judas Iscariot