Taurus
Unit #052
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 15 (+9) | 2 | 4 (+3) | Fast | Local | A |
Abilities
Passive
c: After Any Other Local Demon takes at least 1 damage (after n), you may apply e: The damaged Demon has +2n.
Engine Implementation
def _taurus_damage_def_buff(
state,
event,
demon,
depth: int,
):
"""After any other local demon takes ≥1 damage, apply +2 DEF status to it.
Fires on DAMAGE_RECEIVED.
event.target = the demon that took the damage
event.value = effective damage amount (after DEF)
"""
if event.target is None:
return None
# Only trigger if effective damage was at least 1
if event.value is None or event.value < 1:
return None
# Only trigger for demons in the same lane as Taurus
if event.target.lane != demon.lane:
return None
# Do NOT trigger for Taurus itself ("Any Other Local Demon")
if event.target.instance_id == demon.instance_id:
return None
# Apply +2 DEF status to the damaged demon
from engine.status_effects import apply_status # lazy: avoids circular
# Re-fetch target from state to avoid stale reference
target_in_state = next(
(d for d in state.demons if d.instance_id == event.target.instance_id),
None,
)
if target_in_state is None:
return None
new_state = apply_status(state, demon, target_in_state, "def", 2)
return new_state
register_trigger("052", 0, _taurus_damage_def_buff)
Frenzied Run — 0 AP
g: Frenzied Run: 0 AP - b: Move Taurus 1 Lane. e: Taurus has -2k and -2n.
Engine Implementation
def _taurus_frenzied_run(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#052 Taurus — Frenzied Run
Quick, 0 AP, (ready): Move Taurus 1 Lane. Status: Taurus has -2 PWR and -2 DEF.
Status expires end of current main phase.
Quick timing, (ready) — does NOT exhaust.
Target lane from choices["lane"] (1 adjacent lane).
After moving, Taurus receives -2 PWR and -2 DEF status on itself.
Targets: None
Choices: {"lane": int}
"""
state = _move_to_lane(state, demon, choices["lane"])
demon_in_new = next(d for d in state.demons if d.instance_id == demon.instance_id)
state = apply_status(state, demon_in_new, demon_in_new, "pwr", -2)
state = apply_status(state, demon_in_new, demon_in_new, "def", -2)
return state
register_ability("052", 1, _taurus_frenzied_run)
Related Articles