Beleth
The Fearless Usurper
Unit #110
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 9 (+3) | 2 | 6 (+5) | Slow | Local | A |
Abilities
Passive
c: All Local Enemy Demons have -2n.
Engine Implementation
def _beleth_aura_def(state: GameState, demon: DemonInstance) -> dict[str, int]:
"""Return -2 DEF if there is a Beleth in the same lane as demon, owned by
demon's opponent."""
for beleth in _on_field(state, "110"):
if (
beleth.lane == demon.lane
and beleth.owner != demon.owner
):
return {"def": -2}
return {}
register_field_aura("110", 0, _beleth_aura_def)
Scorched Earth — X AP
Scorched Earth: X AP - b, 1x: Gain X CP. Deal k damage to up to 2X Distinct, In Range Target Demons.
Engine Implementation
def _beleth_scorched_earth(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#110 Beleth — Scorched Earth
Action, X AP, (ready), 1x: Gain X CP. Deal this demon's PWR damage to
up to 2X Distinct, In Range Target Demons.
CRITICAL (confusion #11, #16): "Gain X CP" means Beleth's OWNER gains X CP.
This is BAD for Beleth's controller — CP is a loss condition.
X is read from choices["x"]. Targets list may have up to 2X demons.
PWR damage is regular (reduced by DEF).
"""
from engine.operations import get_effective_pwr, deal_damage
from engine.scoring import gain_cp
x = choices.get("x", 0) if choices else 0
if x <= 0:
return state
# CRITICAL: Beleth's OWNER gains X CP — this HURTS Beleth's controller
state = gain_cp(state, demon.owner, x)
pwr = get_effective_pwr(state, demon)
max_targets = 2 * x
if targets:
for t in targets[:max_targets]:
state = deal_damage(state, demon, t, pwr)
return state
register_ability("110", 1, _beleth_scorched_earth)
Endless War — X AP
Endless War: X AP - 1x: Gain X CP. Target Other Allied Demon may immediately perform a Special Action with -2X AP Cost and ignoring a and b costs. e: Endless War cannot be performed.
Engine Implementation
def _beleth_endless_war(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#110 Beleth — Endless War
Action, X AP, 1x: Gain X CP. Target Other Allied Demon may immediately
perform a Special Action with -2X AP Cost and ignoring (exhaust) and (ready) costs.
Status: Endless War cannot be performed (this ability locks itself out).
CRITICAL (confusion #11): "Gain X CP" means Beleth's OWNER gains X CP.
This is BAD for Beleth's controller.
The ally discount is modeled as a -2X AP cost status on the target demon.
The "ignoring exhaust/ready" portion requires future engine support.
"""
from engine.scoring import gain_cp
from engine.status_effects import apply_status
x = choices.get("x", 0) if choices else 0
if x <= 0:
return state
# CRITICAL: Beleth's OWNER gains X CP — this HURTS Beleth's controller
state = gain_cp(state, demon.owner, x)
if not targets:
return state
ally = targets[0]
ap_discount = 2 * x
# Apply -2X AP cost status to the ally (the discount for their next action)
state = apply_status(state, demon, ally, "ap_cost", -ap_discount)
return state
register_ability("110", 2, _beleth_endless_war)