Skip to main content

Aamon

The Legion Commander

Unit #096

HPPWRCPSpeedRangeTier
12 (+6)23 (+2)NormalLocalC

Abilities

Passive

q: When Aamon comes into play, play the Familiar Sword of Wrath in Any Lane.
Engine Implementation
def _aamon_deploy_sword_trigger(
state: GameState, event: GameEvent, demon: DemonInstance, depth: int
) -> GameState | None:
"""#096 Aamon — Deploy trigger: When Aamon enters play, deploy Sword of Wrath.

Fires on DEMON_DEPLOYED when the deployed demon IS this Aamon instance.
Deploys Sword of Wrath (familiar_id="096_1") in Aamon's lane.

If Sword of Wrath is not in Aamon's owner's familiar_deck (all copies in play),
the trigger does nothing (cannot summon if all copies in play).
"""
from engine.operations import deploy_familiar

# Only fire if Aamon itself was just deployed
if event.source is None:
return None
if event.source.instance_id != demon.instance_id:
return None

SWORD_OF_WRATH_ID = "096_1"
owner = demon.owner

# Check availability in familiar_deck
if SWORD_OF_WRATH_ID not in state.players[owner].familiar_deck:
return None # Already in play or unavailable

return deploy_familiar(state, owner, SWORD_OF_WRATH_ID, demon.lane)

register_trigger("096", 0, _aamon_deploy_sword_trigger)

Haymaker — 2 AP

g: Haymaker: 2 AP - a: Deal k in damage to Target Local Demon. Move the targeted Demon to Sword of Wrath's Lane.
Engine Implementation
def _aamon_haymaker(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#096 Aamon — Haymaker
Quick, 2 AP, (exhaust): Deal this demon's PWR damage to Target Local Demon.
Move the targeted Demon to Sword of Wrath's Lane.

Regular damage (reduced by DEF). PWR uses get_effective_pwr.
Sword of Wrath familiar ID: "096_1".
If Sword of Wrath is not on field, target stays in place.
"""
from engine.operations import get_effective_pwr, deal_damage

if not targets:
return state

target = targets[0]
pwr = get_effective_pwr(state, demon)
state = deal_damage(state, demon, target, pwr)

# Find Sword of Wrath's lane
sword = next(
(d for d in state.demons if d.unit_id == "096_1"), None
)
if sword is None:
return state # No Sword of Wrath — no movement

new_state = copy.deepcopy(state)
t_in_state = next(
(d for d in new_state.demons if d.instance_id == target.instance_id), None
)
if t_in_state is not None:
t_in_state.lane = sword.lane

return new_state

register_ability("096", 1, _aamon_haymaker)
Aamon