Skip to main content

Amdusias

Duke of Thunder

Unit #056

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

Abilities

Thunder Reign — 3 AP

Thunder Reign: 3 AP - b, 1x: When declaring targets for this action, Randomly Target a Distant Lane. Deal k Fixed Damage to All Demons in the targeted Lane e: All Demons in the targeted Lane have -2n.
Engine Implementation
def _amdusias_thunder_reign(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#056 Amdusias — Thunder Reign
Action, 3 AP, (ready), 1x: Randomly Target a Distant Lane. Deal this demon's
PWR Fixed Damage to All Demons in the targeted Lane. Status: All Demons in the
targeted Lane have -2 DEF.

CRITICAL (confusion #21): "All Demons in the targeted Lane" INCLUDES allied demons.
Target lane is distant (different from Amdusias's lane), selected randomly.
rng is used to choose the distant lane.
Fixed Damage bypasses DEF.
(ready) = must be READIED; does NOT exhaust.
"""
from engine.operations import get_effective_pwr, deal_fixed_damage
from engine.status_effects import apply_status
import random as _rng

# Select a distant lane randomly
distant_lanes = [i for i in range(3) if i != demon.lane]
if choices and "lane" in choices:
target_lane = choices["lane"]
elif rng is not None:
target_lane = rng.choice(distant_lanes)
else:
target_lane = _rng.choice(distant_lanes)

pwr = get_effective_pwr(state, demon)
demons_in_lane = [d for d in state.demons if d.lane == target_lane]

for t in demons_in_lane:
state = deal_fixed_damage(state, t, pwr)

# Status: All Demons in targeted lane -2 DEF
for t in [d for d in state.demons if d.lane == target_lane]:
state = apply_status(state, demon, t, "def", -2)

return state

register_ability("056", 0, _amdusias_thunder_reign)
Amdusias