Aamon
The Legion Commander
Unit #096
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 12 (+6) | 2 | 3 (+2) | Normal | Local | C |
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)