Skip to main content

Beleth

The Fearless Usurper

Unit #110

HPPWRCPSpeedRangeTier
9 (+3)26 (+5)SlowLocalA

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)
Beleth