Skip to main content

Chaos

Unit #054

HPPWRCPSpeedRangeTier
1823SlowLocalB

Abilities

Passive

Chaos is incapable of Fusion.
Engine Implementation
def _chaos_fusion_block_noop(state, demon) -> dict:
"""No-op passive registering ability index 0 for Chaos.

The actual fusion block logic is enforced in fusion.py can_fuse()
which calls chaos_cannot_fuse() when top.unit_id == '054' or
bottom.unit_id == '054'.
"""
return {}

register_passive("054", 0, _chaos_fusion_block_noop)

Chaos — 0 AP

h: Chaos: 0 AP - 1x: e: At the end of this Main Phase, Ready and take control of Any Demon and their potential Familiars. Then, give control of Chaos to your opponent.
Engine Implementation
def _chaos_chaos_ability(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#054 Chaos — Chaos
Start of Turn, 0 AP, 1x: Status: At the end of this Main Phase, Ready and take
control of Any Demon and their potential Familiars. Then, give control of
Chaos to your opponent.

Applies "chaos_control_pending" status marker to Chaos (value = target instance_id).
The target demon instance_id is stored in choices["target_id"] or targets[0].
At end of phase, turn_sequence reads this marker and:
1. Transfers target demon + familiars to Chaos's owner, readied.
2. Transfers Chaos to opponent's control.

Status expires end of current main phase.
"""
from engine.status_effects import apply_status

if choices and "target_id" in choices:
target_id = choices["target_id"]
elif targets:
target_id = targets[0].instance_id
else:
return state

# Mark Chaos with the pending control-steal (value = target instance_id)
state = apply_status(state, demon, demon, "chaos_control_pending", target_id)
return state

register_ability("054", 1, _chaos_chaos_ability)
Chaos