Beelzebub
Demon of Gluttony
Unit #058
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 15 (+9) | 2 | 4 (+3) | Slow | Local | C |
Abilities
Regurgitate — X AP
q: Regurgitate: X AP - b, 1x: X cannot be greater than 2. Deal 3X Fixed Damage to Beelzebub. Independently play X Locusts Familiar in Any Lane. (This card has 4 Locusts Familiars.) e: Beelzebub cannot perform actions.
Engine Implementation
def _beelzebub_regurgitate(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#058 Beelzebub — Regurgitate
Familiar: X AP (max 2), (ready), 1x: Deal 3X Fixed Damage to Beelzebub.
Play X Locusts Familiars in Any Lane(s). Status: Beelzebub cannot perform actions.
X = min(choices["x"], 2). Deals 3X Fixed Damage to self.
Deploys X Locusts (from familiar_deck) in chosen lanes.
Applies "cannot_act" status to Beelzebub.
(ready) = does NOT exhaust.
"""
from engine.operations import deal_fixed_damage, deploy_familiar
from engine.status_effects import apply_status
x = choices.get("x", 0) if choices else 0
x = max(0, min(x, 2))
if x <= 0:
return state
# Deal 3X Fixed Damage to Beelzebub
state = deal_fixed_damage(state, demon, 3 * x)
# Re-fetch Beelzebub (may now be fatally_wounded but still on field)
bzb_current = next(
(d for d in state.demons if d.instance_id == demon.instance_id), None
)
# Deploy X Locusts in any lane(s)
LOCUST_IDS = ["058_1", "058_2", "058_3", "058_4"]
owner = demon.owner
lanes = choices.get("locust_lanes", [demon.lane] * x) if choices else [demon.lane] * x
deployed = 0
for lid in LOCUST_IDS:
if deployed >= x:
break
if lid in state.players[owner].familiar_deck:
lane = lanes[deployed] if deployed < len(lanes) else demon.lane
state = deploy_familiar(state, owner, lid, lane)
deployed += 1
# Status: Beelzebub cannot perform actions
bzb_current = next(
(d for d in state.demons if d.instance_id == demon.instance_id), None
)
if bzb_current is not None and not bzb_current.fatally_wounded:
state = apply_status(state, demon, bzb_current, "cannot_act", 1)
return state
register_ability("058", 0, _beelzebub_regurgitate)
Related Articles