Skip to main content

Beelzebub

Demon of Gluttony

Unit #058

HPPWRCPSpeedRangeTier
15 (+9)24 (+3)SlowLocalC

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)
Beelzebub