Skip to main content

Raum

The Unseen Blade

Unit #071

HPPWRCPSpeedRangeTier
15 (+9)4 (+2)4 (+3)NormalLocalB

Abilities

Passive

c: Raum has +Xk and -Xn where X is the number of Local Enemy Demons.
Engine Implementation
def _raum_pwr(state: GameState, demon: DemonInstance) -> dict[str, int]:
"""Return +X PWR where X is the number of enemy demons in Raum's lane."""
opponent = Side.PLAYER_2 if demon.owner == Side.PLAYER_1 else Side.PLAYER_1
x = sum(1 for d in state.demons if d.lane == demon.lane and d.owner == opponent)
return {"pwr": x} if x > 0 else {}

def _raum_def(state: GameState, demon: DemonInstance) -> dict[str, int]:
"""Return -X DEF where X is the number of enemy demons in Raum's lane."""
opponent = Side.PLAYER_2 if demon.owner == Side.PLAYER_1 else Side.PLAYER_1
x = sum(1 for d in state.demons if d.lane == demon.lane and d.owner == opponent)
return {"def": -x} if x > 0 else {}

register_passive("071", 0, _raum_pwr)

Bloodshed — X AP

Bloodshed: X AP - a: Deal k-2 damage to up to X Distinct In Range Target Demons.
Engine Implementation
def _raum_bloodshed(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#071 Raum — Bloodshed
Action, X AP, (exhaust): Deal PWR-2 damage to up to X Distinct In Range Target Demons.

X is read from choices["x"]. Targets may be up to X distinct demons.
Damage = max(0, PWR-2) regular damage (reduced by DEF).
Uses get_effective_pwr which includes fusion bonus fPWR.
"""
from engine.operations import get_effective_pwr, deal_damage

x = choices.get("x", 0) if choices else 0
if x <= 0 or not targets:
return state

pwr = get_effective_pwr(state, demon)
damage_amount = max(0, pwr - 2)

if damage_amount <= 0:
return state

# Only hit up to X distinct targets
for t in targets[:x]:
state = deal_damage(state, demon, t, damage_amount)

return state

register_ability("071", 1, _raum_bloodshed)
Raum