Decarabia
The Starshield
Unit #008
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 15 (+9) | 2 | 4 (+3) | Fast | Local | B |
Abilities
Passive
Enemy Demons cannot move Decarabia.
Engine Implementation
def _decarabia_immovable(state: GameState, demon: DemonInstance) -> dict:
"""#008 Decarabia — Enemy Demons cannot move Decarabia.
Returns a flag checked by can_be_moved_by(). Allies CAN still move Decarabia."""
return {"cannot_be_moved_by_enemy": 1}
register_passive("008", 0, _decarabia_immovable)
Perfect Defense — 2 AP
h: Perfect Defense: 2 AP - a: e: All Local Allied Demons have +15n.
Engine Implementation
def _decarabia_perfect_defense(state: GameState, demon: DemonInstance, targets, choices, rng) -> GameState:
"""#008 Decarabia — Perfect Defense
Start of Turn, 2 AP, (exhaust): Status: All Local Allied Demons have +15 DEF.
Applies +15 DEF status to all allied demons in Decarabia's lane including Decarabia.
Status expires end of current main phase (confusion #9 — NOT permanent).
"""
from engine.status_effects import apply_status
local_allies = [
d for d in state.demons
if d.lane == demon.lane and d.owner == demon.owner
]
for ally in local_allies:
state = apply_status(state, demon, ally, "def", 15)
return state
register_ability("008", 1, _decarabia_perfect_defense)