Skip to main content

Azazel

Demon of Servants

Unit #011

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

Abilities

Passive

c: All Other Local Allied Demons have +1k and +2n.
Engine Implementation
def _azazel_aura_pwr(state: GameState, demon: DemonInstance) -> dict[str, int]:
"""Return +1 PWR per Azazel source in the same lane (allied, excluding self).
Multiple sources stack. Castor/Pollux 'Other' exclusion: if the projector is
Castor or Pollux, BOTH twins are excluded (not just the projector)."""
count = 0
for source in _on_field(state, "011"):
if source.lane != demon.lane or source.owner != demon.owner:
continue
if source.instance_id == demon.instance_id:
continue # Standard self-exclusion
# Castor/Pollux rule: "Other" excludes BOTH twins
if _is_castor_or_pollux(source) and _is_castor_or_pollux(demon):
continue
count += 1
return {"pwr": count} if count else {}

def _azazel_aura_def(state: GameState, demon: DemonInstance) -> dict[str, int]:
"""Return +2 DEF per Azazel source in the same lane (allied, excluding self).
Multiple sources stack. Castor/Pollux 'Other' exclusion applies."""
count = 0
for source in _on_field(state, "011"):
if source.lane != demon.lane or source.owner != demon.owner:
continue
if source.instance_id == demon.instance_id:
continue
if _is_castor_or_pollux(source) and _is_castor_or_pollux(demon):
continue
count += 1
return {"def": 2 * count} if count else {}

register_field_aura("011", 0, _azazel_aura_pwr)

Serve — 1 AP

i: Serve: 1 AP - a: e: Target Demon's next action has +2k.
Engine Implementation
def _azazel_serve(state: GameState, demon: DemonInstance, targets, choices, rng) -> GameState:
"""#011 Azazel — Serve
Allied, 1 AP, (exhaust): Status: Target Demon's next action has +2 PWR.
Status expires end of current main phase.

Allied: any allied demon can perform this (ability_implementation_guide.json).
The performer exhaust is handled by execute_ability (tap_required=True).
The +2 PWR status applies to the TARGET — when the target uses its next
action, get_effective_pwr() picks up the +2 from the status modifier.

Targets: [target_demon]
"""
target = targets[0]
state = apply_status(state, demon, target, "pwr", 2)
return state

register_ability("011", 1, _azazel_serve)
Azazel